Linux 5.15.113
Greg Kroah-Hartman
maintainerI'm announcing the release of the 5.15.113 kernel.
All users of the 5.15 kernel series must upgrade.
The updated 5.15.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.15.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
thanks,
greg k-h
------------
Documentation/devicetree/bindings/display/msm/dsi-controller-main.yaml | 12 MAINTAINERS | 4 Makefile | 2 arch/arm/mach-sa1100/jornada720_ssp.c | 5 arch/arm64/boot/dts/qcom/msm8996.dtsi | 3 arch/parisc/include/asm/pdc.h | 1 arch/parisc/kernel/firmware.c | 27 arch/powerpc/kernel/dma-iommu.c | 4 arch/powerpc/mm/book3s64/radix_pgtable.c | 4 arch/powerpc/platforms/pseries/iommu.c | 13 drivers/acpi/acpica/dbnames.c | 3 drivers/acpi/acpica/dswstate.c | 11 drivers/acpi/ec.c | 1 drivers/base/regmap/regcache.c | 6 drivers/block/nbd.c | 6 drivers/block/null_blk/main.c | 5 drivers/bluetooth/btbcm.c | 47 drivers/bluetooth/btintel.c | 5 drivers/char/tpm/tpm_tis.c | 16 drivers/clk/tegra/clk-tegra20.c | 28 drivers/firmware/arm_sdei.c | 37 drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c | 7 drivers/gpu/drm/amd/display/dc/dce/dce_transform.c | 5 drivers/gpu/drm/drm_displayid.c | 17 drivers/gpu/drm/drm_mipi_dsi.c | 2 drivers/gpu/drm/exynos/exynos_drm_g2d.h | 4 drivers/gpu/drm/i915/display/intel_dp.c | 5 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_interrupts.c | 11 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_interrupts.h | 1 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_intf.c | 5 drivers/gpu/drm/msm/disp/dpu1/dpu_hwio.h | 3 drivers/gpu/drm/msm/dp/dp_audio.c | 12 drivers/gpu/drm/msm/dp/dp_audio.h | 2 drivers/gpu/drm/msm/dp/dp_aux.c | 80 drivers/gpu/drm/msm/dp/dp_catalog.c | 2 drivers/gpu/drm/msm/dp/dp_catalog.h | 2 drivers/gpu/drm/msm/dp/dp_display.c | 1 drivers/gpu/drm/tegra/sor.c | 2 drivers/hid/hid-logitech-hidpp.c | 53 drivers/hid/wacom.h | 3 drivers/hid/wacom_sys.c | 2 drivers/hid/wacom_wac.c | 80 drivers/infiniband/core/user_mad.c | 23 drivers/input/joystick/xpad.c | 5 drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 19 drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 16 drivers/iommu/sprd-iommu.c | 29 drivers/mcb/mcb-pci.c | 27 drivers/media/pci/cx23885/cx23885-core.c | 4 drivers/media/pci/cx23885/cx23885-video.c | 13 drivers/media/pci/netup_unidvb/netup_unidvb_core.c | 2 drivers/media/pci/tw68/tw68-video.c | 16 drivers/media/platform/am437x/am437x-vpfe.c | 15 drivers/media/platform/exynos4-is/fimc-capture.c | 7 drivers/media/platform/ti-vpe/cal-video.c | 8 drivers/media/platform/vsp1/vsp1_drm.c | 18 drivers/media/platform/vsp1/vsp1_entity.c | 11 drivers/media/usb/dvb-usb/cxusb-analog.c | 14 drivers/memstick/host/r592.c | 2 drivers/message/fusion/mptlan.c | 2 drivers/mfd/dln2.c | 1 drivers/net/can/kvaser_pciefd.c | 51 drivers/net/dsa/mv88e6xxx/port.h | 2 drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 2 drivers/net/ethernet/broadcom/genet/bcmgenet.c | 9 drivers/net/ethernet/freescale/fec_main.c | 15 drivers/net/ethernet/google/gve/gve_main.c | 13 drivers/net/ethernet/hisilicon/hns3/hns3_debugfs.c | 2 drivers/net/ethernet/hisilicon/hns3/hns3_debugfs.h | 1 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 15 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c | 4 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.h | 5 drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c | 5 drivers/net/ethernet/intel/igb/e1000_mac.c | 4 drivers/net/ethernet/pasemi/pasemi_mac.c | 2 drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c | 25 drivers/net/ethernet/stmicro/stmmac/dwmac4.h | 4 drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c | 9 drivers/net/ethernet/stmicro/stmmac/stmmac.h | 1 drivers/net/ethernet/stmicro/stmmac/stmmac_hwtstamp.c | 5 drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c | 12 drivers/net/ethernet/sun/cassini.c | 2 drivers/net/ipvlan/ipvlan_core.c | 6 drivers/net/mdio/mdio-mvusb.c | 11 drivers/net/phy/dp83867.c | 22 drivers/net/tap.c | 4 drivers/net/virtio_net.c | 61 drivers/net/wireless/ath/ath.h | 12 drivers/net/wireless/ath/ath11k/dp_rx.c | 9 drivers/net/wireless/ath/key.c | 2 drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 13 drivers/net/wireless/intel/iwlwifi/dvm/sta.c | 5 drivers/net/wireless/intel/iwlwifi/mvm/nvm.c | 10 drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c | 2 drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 3 drivers/net/wireless/intel/iwlwifi/pcie/trans.c | 2 drivers/parisc/power.c | 16 drivers/phy/st/phy-miphy28lp.c | 42 drivers/platform/x86/Kconfig | 42 drivers/platform/x86/Makefile | 4 drivers/platform/x86/hp-wmi.c | 1135 --------- drivers/platform/x86/hp/Kconfig | 63 drivers/platform/x86/hp/Makefile | 10 drivers/platform/x86/hp/hp-wmi.c | 1138 ++++++++++ drivers/platform/x86/hp/hp_accel.c | 405 +++ drivers/platform/x86/hp/tc1100-wmi.c | 265 ++ drivers/platform/x86/hp_accel.c | 405 --- drivers/platform/x86/tc1100-wmi.c | 265 -- drivers/remoteproc/stm32_rproc.c | 8 drivers/s390/cio/device.c | 2 drivers/s390/cio/qdio.h | 2 drivers/scsi/lpfc/lpfc_debugfs.c | 7 drivers/scsi/storvsc_drv.c | 8 drivers/scsi/ufs/ufshcd-pci.c | 1 drivers/scsi/ufs/ufshcd.c | 10 drivers/soundwire/qcom.c | 3 drivers/spi/spi-imx.c | 24 drivers/staging/media/imx/imx-media-capture.c | 12 drivers/staging/media/imx/imx-media-utils.c | 8 drivers/staging/media/omap4iss/iss_video.c | 6 drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 6 drivers/staging/rtl8192e/rtl8192e/rtl_core.h | 5 drivers/target/iscsi/iscsi_target.c | 6 drivers/thunderbolt/nhi.c | 29 drivers/thunderbolt/nhi_regs.h | 2 drivers/tty/serial/8250/8250_bcm7271.c | 7 drivers/tty/serial/8250/8250_core.c | 1 drivers/tty/serial/8250/8250_exar.c | 17 drivers/tty/serial/8250/8250_pci.c | 5 drivers/tty/serial/arc_uart.c | 7 drivers/tty/serial/qcom_geni_serial.c | 9 drivers/tty/vt/vc_screen.c | 11 drivers/usb/class/usbtmc.c | 2 drivers/usb/dwc3/debugfs.c | 109 drivers/usb/gadget/function/u_ether.c | 3 drivers/usb/host/uhci-pci.c | 10 drivers/usb/host/xhci-pci.c | 12 drivers/usb/host/xhci-ring.c | 29 drivers/usb/host/xhci.h | 2 drivers/usb/storage/scsiglue.c | 28 drivers/usb/typec/altmodes/displayport.c | 4 drivers/usb/typec/tcpm/tcpm.c | 16 drivers/video/fbdev/arcfb.c | 15 fs/ceph/snap.c | 13 fs/cifs/cifsglob.h | 4 fs/cifs/file.c | 26 fs/cifs/smb1ops.c | 9 fs/cifs/smb2ops.c | 7 fs/ext2/ext2.h | 1 fs/ext2/super.c | 7 fs/ext4/balloc.c | 18 fs/ext4/ext4.h | 15 fs/ext4/ialloc.c | 12 fs/ext4/mballoc.c | 131 - fs/ext4/mmp.c | 39 fs/ext4/super.c | 28 fs/f2fs/checkpoint.c | 12 fs/f2fs/data.c | 3 fs/f2fs/f2fs.h | 5 fs/f2fs/super.c | 2 fs/gfs2/glops.c | 3 fs/hfsplus/inode.c | 28 fs/ksmbd/connection.c | 3 fs/ksmbd/oplock.c | 5 fs/ksmbd/oplock.h | 2 fs/ksmbd/smb2misc.c | 5 fs/ksmbd/smb2pdu.c | 19 fs/nilfs2/inode.c | 18 fs/ntfs3/frecord.c | 5 fs/ntfs3/fsntfs.c | 1 fs/ntfs3/index.c | 11 fs/ntfs3/inode.c | 6 fs/ntfs3/record.c | 9 fs/statfs.c | 4 include/linux/cpuhotplug.h | 1 include/linux/dim.h | 3 include/linux/if_vlan.h | 17 include/linux/sched/task_stack.h | 2 include/linux/stmmac.h | 1 include/linux/sunrpc/svc.h | 2 include/linux/sunrpc/svc_rdma.h | 2 include/linux/sunrpc/svc_xprt.h | 2 include/net/ip_vs.h | 6 include/net/sock.h | 2 include/trace/bpf_probe.h | 6 include/trace/events/sunrpc.h | 12 include/trace/perf.h | 6 include/trace/trace_events.h | 55 kernel/bpf/bpf_local_storage.c | 16 kernel/bpf/verifier.c | 4 kernel/rcu/refscale.c | 2 kernel/rcu/tree_exp.h | 6 kernel/time/tick-broadcast.c | 120 - lib/cpu_rmap.c | 5 lib/dim/dim.c | 5 lib/dim/net_dim.c | 3 lib/dim/rdma_dim.c | 3 net/8021q/vlan_dev.c | 4 net/bluetooth/l2cap_core.c | 1 net/bridge/br_forward.c | 2 net/bridge/br_private_tunnel.h | 8 net/can/isotp.c | 2 net/can/j1939/socket.c | 2 net/core/datagram.c | 15 net/core/dev.c | 4 net/core/stream.c | 12 net/ipv4/af_inet.c | 2 net/ipv4/tcp.c | 14 net/ipv4/tcp_bpf.c | 2 net/ipv4/tcp_input.c | 4 net/ipv4/tcp_ipv4.c | 5 net/ipv6/ip6_gre.c | 13 net/key/af_key.c | 12 net/llc/af_llc.c | 8 net/mac80211/trace.h | 2 net/netfilter/core.c | 6 net/netfilter/ipvs/ip_vs_sync.c | 2 net/netfilter/nf_conntrack_standalone.c | 3 net/netfilter/nf_tables_api.c | 4 net/netfilter/nft_chain_filter.c | 9 net/netfilter/nft_set_rbtree.c | 20 net/netlink/af_netlink.c | 8 net/nsh/nsh.c | 8 net/packet/af_packet.c | 6 net/smc/smc_close.c | 4 net/smc/smc_rx.c | 4 net/smc/smc_tx.c | 4 net/socket.c | 2 net/sunrpc/svc.c | 2 net/sunrpc/svc_xprt.c | 34 net/sunrpc/svcsock.c | 41 net/sunrpc/xprtrdma/svc_rdma_recvfrom.c | 12 net/sunrpc/xprtrdma/svc_rdma_transport.c | 2 net/tipc/bearer.c | 17 net/tipc/bearer.h | 3 net/tipc/link.c | 9 net/tipc/socket.c | 4 net/tipc/udp_media.c | 5 net/tls/tls_main.c | 3 net/unix/af_unix.c | 22 net/vmw_vsock/af_vsock.c | 2 net/xfrm/xfrm_interface.c | 54 net/xfrm/xfrm_policy.c | 9 samples/bpf/hbm.c | 1 scripts/recordmcount.c | 6 sound/firewire/digi00x/digi00x-stream.c | 4 sound/pci/hda/hda_generic.c | 7 sound/pci/hda/patch_hdmi.c | 5 sound/pci/hda/patch_realtek.c | 5 sound/soc/fsl/fsl_micfil.c | 14 sound/usb/format.c | 1 tools/power/cpupower/utils/idle_monitor/mperf_monitor.c | 31 tools/testing/selftests/net/srv6_end_dt4_l3vpn_test.sh | 17 253 files changed, 3829 insertions(+), 2742 deletions(-)
Abdun Nihaal (1):
fs/ntfs3: Fix NULL dereference in ni_write_inode
Adrian Hunter (1):
scsi: ufs: ufs-pci: Add support for Intel Lunar Lake
Ai Chao (1):
ALSA: hda/realtek: Add a quirk for HP EliteDesk 805
Alain Volmat (1):
phy: st: miphy28lp: use _poll_timeout functions for waits
Alan Stern (1):
USB: usbtmc: Fix direction for 0-length ioctl control messages
Aleksandr Loktionov (1):
igb: fix bit_shift to be in [1..8] range
Alexander Stein (1):
regmap: cache: Return error in cache sync operations for REGCACHE_NONE
Andrea Mayer (2):
selftests: seg6: disable DAD on IPv6 router cfg for srv6_end_dt4_l3vpn_test
selftets: seg6: disable rp_filter by default in srv6_end_dt4_l3vpn_test
Andreas Gruenbacher (1):
gfs2: Fix inode height consistency check
Andrew Davis (1):
serial: 8250_exar: Add support for USR298x PCI Modems
Armin Wolf (1):
ACPI: EC: Fix oops when removing custom query handlers
Arnaud Pouliquen (1):
remoteproc: stm32_rproc: Add mutex protection for workqueue
Arnd Bergmann (3):
clk: tegra20: fix gcc-7 constant overflow warning drm/exynos: fix g2d_open/close helper function definitions
bridge: always declare tunnel functions
Austin Kim (1):
ext4: remove an unused variable warning with CONFIG_QUOTA=n
Badhri Jagan Sridharan (1):
usb: typec: altmodes/displayport: fix pin_assignment_show
Bastien Nocera (2):
HID: logitech-hidpp: Don't use the USB serial for USB devices
HID: logitech-hidpp: Reconcile USB and Unifying serials
Bharath SM (2):
SMB3: Close all deferred handles of inode in case of handle lease break
SMB3: drop reference to cfile before sending oplock break
Bjorn Andersson (1):
drm/msm/dpu: Add INTF_5 interrupts
Chaitanya Kulkarni (1):
null_blk: Always check queue mode setting from configfs
Chao Yu (2):
f2fs: fix to drop all dirty pages during umount() if cp_error is set
f2fs: fix to check readonly condition correctly
Chethan T N (1):
Bluetooth: btintel: Add LE States quirk support
Chih-Yen Chang (3):
ksmbd: allocate one more byte for implied bcc[0]
ksmbd: fix wrong UserName check in session_user
ksmbd: fix global-out-of-bounds in smb2_find_context_vals
Christophe JAILLET (2):
net: mdio: mvusb: Fix an error handling path in mvusb_mdio_probe()
cassini: Fix a memory leak in the error handling path of cas_init_one()
Chuck Lever (5):
tracing: Introduce helpers to safely handle dynamic-sized sockaddrs
SUNRPC: Clean up svc_deferred_class trace events
SUNRPC: Remove dead code in svc_tcp_release_rqst()
SUNRPC: Remove svc_rqst::rq_xprt_hlen
SUNRPC: Fix trace_svc_register() call site
Chunyan Zhang (1):
iommu/sprd: Release dma buffer to avoid memory leak
Dan Carpenter (1):
ALSA: firewire-digi00x: prevent potential use after free
Daniel Gabay (1):
wifi: iwlwifi: pcie: fix possible NULL pointer dereference
Daniel Houldsworth (1):
platform/x86: hp-wmi: Support touchpad on/off
Dmitry Bogdanov (1):
scsi: target: iscsit: Free cmds before session free
Dong Chenchen (1):
net: nsh: Use correct mac_offset to unwind gso skb in nsh_gso_segment()
Doug Berger (2):
serial: 8250_bcm7271: balance clk_enable calls
serial: 8250_bcm7271: fix leak in `brcmuart_probe`Douglas Anderson (1):
drm/msm/dp: Clean up handling of DP AUX interrupts
Duoming Zhou (1):
media: netup_unidvb: fix use-after-free at del_timer()
Edward Lo (3):
fs/ntfs3: Enhance the attribute size check fs/ntfs3: Validate MFT flags before replaying logs fs/ntfs3: Add length check in indx_get_root
Eli Cohen (1):
lib: cpu_rmap: Avoid use after free on rmap->obj array entries
Eric Dumazet (8):
netlink: annotate accesses to nlk->cb_running
net: annotate sk->sk_err write from do_recvmmsg()
net: deal with most data-races in sk_wait_event()
net: add vlan_get_protocol_and_depth() helper
tcp: add annotations around sk->sk_shutdown accesses
net: datagram: fix data-races in datagram_poll()
tcp: fix possible sk_priority leak in tcp_v4_send_reset()
vlan: fix a potential uninit-value in vlan_dev_hard_start_xmit()
Fae (1):
platform/x86: hp-wmi: add micmute to hp_wmi_keymap struct
Feng Liu (1):
virtio_net: Fix error unwinding of XDP initialization
Florian Fainelli (2):
net: bcmgenet: Remove phy_stop() from bcmgenet_netif_stop()
net: bcmgenet: Restore phy_stop() depending upon suspend/close
Florian Westphal (4):
netfilter: nf_tables: always release netdev hooks from notifier
netfilter: conntrack: fix possible bug_on with enable_hooks=1
netfilter: nf_tables: fix nft_trans type confusion
netfilter: nft_set_rbtree: fix null deref on element insertion
Frank Wang (1):
usb: typec: tcpm: fix multiple times discover svids error
Gaurav Batra (1):
powerpc/iommu: Incorrect DDW Table is referenced for SR-IOV device
George Kennedy (1):
vc_screen: reload load of struct vc_data pointer in vcs_write() to avoid UAF
Greg Kroah-Hartman (1):
Linux 5.15.113
Grygorii Strashko (1):
net: phy: dp83867: add w/a for packet errors seen with short cables
Guilherme G. Piccoli (1):
parisc: Replace regular spinlock with spin_trylock on panic path
Gustav Johansson (1):
ksmbd: smb2: Allow messages padded to 8byte boundary
Gustavo A. R. Silva (1):
RDMA/core: Fix multiple -Warray-bounds warnings
Hans de Goede (2):
wifi: iwlwifi: dvm: Fix memcpy: detected field-spanning write backtrace
Bluetooth: hci_bcm: Fall back to getting bdaddr from EFI if not set
Hao Zeng (2):
samples/bpf: Fix fout leak in hbm's run_bpf_prog
recordmcount: Fix memory leaks in the uwrite function
Hector Martin (1):
wifi: brcmfmac: cfg80211: Pass the PMK in binary instead of hex
Heiko Carstens (1):
s390/qdio: fix do_sqbs() inline assembly constraint
Hyunwoo Kim (1):
wifi: iwlwifi: pcie: Fix integer overflow in iwl_write_to_user_buf
Ilya Leoshkevich (1):
statfs: enforce statfs[64] structure initialization
Jan Kara (2):
ext4: fix lockdep warning when enabling MMP
ext2: Check block size validity during mount
Jani Nikula (1):
drm/displayid: add displayid_get_header() and check bounds better
Jason Gerecke (2):
HID: wacom: generic: Set battery quirk only when we see battery data
HID: wacom: Force pen out of prox if no events have been received in a while
Jeremy Soller (1):
ALSA: hda/realtek: Add quirk for Clevo L140AU
Jerry Snitselaar (1):
tpm/tpm_tis: Disable interrupts for more Lenovo devices
Jia-Ju Bai (1):
fs/ntfs3: Fix a possible null-pointer dereference in ni_clear()
Jianhua Lu (1):
dt-bindings: display/msm: dsi-controller-main: Document qcom, master-dsi and qcom, sync-dual-dsi
Jie Wang (2):
net: hns3: fix output information incomplete for dumping tx queue info with debugfs
net: hns3: fix reset delay time to avoid configuration timeout
Jijie Shao (1):
net: hns3: fix sending pfc frames after reset issue
Jimmy Assarsson (6):
can: kvaser_pciefd: Set CAN_STATE_STOPPED in kvaser_pciefd_stop()
can: kvaser_pciefd: Call request_irq() before enabling interrupts
can: kvaser_pciefd: Empty SRB buffer in probe
can: kvaser_pciefd: Clear listen-only bit if not explicitly requested
can: kvaser_pciefd: Do not send EFLUSH command on TFD interrupt
can: kvaser_pciefd: Disable interrupts in probe error path
Johannes Berg (3):
wifi: mac80211: fix min center freq offset tracing
wifi: iwlwifi: mvm: fix cancel_delayed_work_sync() deadlock
wifi: iwlwifi: mvm: don't trust firmware n_channels
Jorge Lopez (1):
platform/x86: Move existing HP drivers to a new hp subdir
Josh Poimboeuf (1):
sched: Fix KCSAN noinstr violation
Justin Tee (1):
scsi: lpfc: Prevent lpfc_debugfs_lockstat_write() buffer overflow
Ke Zhang (1):
serial: arc_uart: fix of_iomap leak in arc_serial_probe
Kees Cook (1):
wifi: ath: Silence memcpy run-time false positive warning
Kemeng Shi (2):
ext4: allow to find by goal if EXT4_MB_HINT_GOAL_ONLY is set
ext4: set goal start correctly in ext4_mb_normalize_request
Keoseong Park (1):
scsi: ufs: core: Fix I/O hang that occurs when BKOPS fails in W-LUN suspend
Kevin Groeneveld (1):
spi: spi-imx: fix MX51_ECSPI_* macros when cs > 3
Konrad Dybcio (1):
arm64: dts: qcom: msm8996: Add missing DWC3 quirks
Konrad Gräfe (1):
usb: gadget: u_ether: Fix host MAC address case
Krzysztof Kozlowski (2):
soundwire: qcom: gracefully handle too many ports in DT
serial: qcom-geni: fix enabling deactivated interrupt
Kumar Kartikeya Dwivedi (1):
bpf: Annotate data races in bpf_local_storage
Kuniyuki Iwashima (3):
net: Fix load-tearing on sk->sk_stamp in sock_recv_cmsgs().
af_unix: Fix a data race of sk->sk_receive_queue->qlen.
af_unix: Fix data races around sk->sk_shutdown.Laurent Pinchart (1):
media: Prefer designated initializers over memset for subdev pad ops
Luke D. Jones (1):
ALSA: hda/realtek: Add quirk for 2nd ASUS GU603
Manivannan Sadhasivam (1):
iommu/arm-smmu-qcom: Limit the SMR groups to 128
Marco Migliore (1):
net: dsa: mv88e6xxx: Fix mv88e6393x EPC write command offset
Marek Vasut (1):
net: stmmac: Initialize MAC_ONEUS_TIC_COUNTER register
Marijn Suijten (2):
drm/msm/dpu: Move non-MDP_TOP INTF_INTR offsets out of hwio header drm/msm/dpu: Remove duplicate register defines from INTF
Mario Limonciello (3):
drm/amd: Fix an out of bounds error in BIOS parser
xhci-pci: Only run d3cold avoidance quirk for s2idle
thunderbolt: Clear registers properly when auto clear isn't in use
Martin Willi (1):
Revert "Fix XFRM-I support for nested ESP tunnels"
Mathias Nyman (1):
xhci: Fix incorrect tracking of free space on transfer rings
Maxim Korotkov (1):
bnxt: avoid overflow in bnxt_get_nvram_directory()
Maxime Bizon (1):
usb-storage: fix deadlock when a scsi command timeouts more than once
Michael Ellerman (1):
powerpc/64s/radix: Fix soft dirty tracking
Michael Kelley (1):
scsi: storvsc: Don't pass unused PFNs to Hyper-V host
Min Li (1):
Bluetooth: L2CAP: fix "bad unlock balance" in l2cap_disconnect_rsp
Nagarajan Maran (1):
wifi: ath11k: Fix SKB corruption in REO destination ring
Nathan Chancellor (1):
net: pasemi: Fix return type of pasemi_mac_start_tx()
NeilBrown (2):
SUNRPC: double free xprt_ctxt while still in use
SUNRPC: always free ctxt when freeing deferred request
Nick Child (1):
net: Catch invalid index in XPS mapping
Nikhil Mahale (1):
ALSA: hda: Add NVIDIA codec IDs a3 through a7 to patch table
Nikita Zhandarovich (1):
drm/i915/dp: prevent potential div-by-zero
Nur Hussein (1):
drm/tegra: Avoid potential 32-bit integer overflow
Ojaswin Mujoo (1):
ext4: Fix best extent lstart adjustment logic in ext4_mb_new_inode_pa()
Oliver Hartkopp (2):
can: j1939: recvmsg(): allow MSG_CMSG_COMPAT flag
can: isotp: recvmsg(): allow MSG_CMSG_COMPAT flag
Parav Pandit (1):
virtio-net: Maintain reverse cleanup order
Paul E. McKenney (1):
refscale: Move shutdown from wait_event() to wait_event_idle()
Philipp Hortmann (1):
staging: rtl8192e: Replace macro RTL_PCI_DEVICE with PCI_DEVICE
Pierre Gondois (1):
firmware: arm_sdei: Fix sleep from invalid context BUG
Ping Cheng (2):
HID: wacom: Add new Intuos Pro Small (PTH-460) device IDs
HID: wacom: add three styli to wacom_intuos_get_tool_type
Qiang Ning (1):
mfd: dln2: Fix memory leak in dln2_probe()
Randy Dunlap (1):
ARM: 9296/1: HP Jornada 7XX: fix kernel-doc warnings
Rodrigo Siqueira (1):
drm/amd/display: Use DC_LOG_DC in the trasform pixel function
Rodríguez Barbarin, José Javier (1):
mcb-pci: Reallocate memory region to avoid memory overlapping
Roy Novich (1):
linux/dim: Do nothing if no time delta between samples
Ryan C. Underwood (1):
ALSA: hda/realtek: Apply HP B&O top speaker profile to Pavilion 15
Ryusuke Konishi (1):
nilfs2: fix use-after-free bug of nilfs_root in nilfs_evict_inode()
Sabrina Dubroca (1):
xfrm: don't check the default policy if the policy allows the packet
Saravana Kannan (1):
drm/mipi-dsi: Set the fwnode for mipi_dsi_device
Shengjiu Wang (1):
ASoC: fsl_micfil: Fix error handler with pm_runtime_enable
Simon Horman (1):
ipvs: Update width of source for ip_vs_sync_conn_options
Srinivas Kandagatla (1):
drm/msm/dp: unregister audio driver during unbind
Takashi Iwai (2):
ALSA: usb-audio: Add a sample rate workaround for Line6 Pod Go
ALSA: hda: Fix Oops by 9.1 surround channel names
Tamir Duberstein (1):
ACPICA: Avoid undefined behavior: applying zero offset to null pointer
Tetsuo Handa (1):
fs: hfsplus: remove WARN_ON() from hfsplus_cat_{read,write}_inode()
Theodore Ts'o (3):
ext4: reflect error codes from ext4_multi_mount_protect() to its callers
ext4: don't clear SB_RDONLY when remounting r/w until quota is re-enabled
ext4: allow ext4_get_group_info() to fail
Thomas Gleixner (1):
tick/broadcast: Make broadcast device replacement work correctly
Tobias Brunner (1):
af_key: Reject optional tunnel/BEET mode templates in outbound policies
Tomas Krcka (1):
iommu/arm-smmu-v3: Acknowledge pri/event queue overflow if any
Tony Lindgren (1):
serial: 8250: Reinit port->pm on port specific driver unbind
Udipto Goswami (1):
usb: dwc3: debugfs: Resume dwc3 before accessing registers
Uwe Kleine-König (1):
net: fec: Better handle pm_runtime_get() failing in .remove()
Vicki Pfau (1):
Input: xpad - add constants for GIP interface numbers
Vineeth Vijayan (1):
s390/cio: include subchannels without devices also for evaluation
Vitaliy Tomin (1):
serial: Add support for Advantech PCI-1611U card
Weitao Wang (1):
USB: UHCI: adjust zhaoxin UHCI controllers OverCurrent bit value
Wong Vee Khee (1):
net: stmmac: switch to use interrupt for hw crosstimestamping
Wyes Karny (1):
cpupower: Make TSC read per CPU for Mperf monitor
Xin Long (4):
erspan: get the proto with the md version for collect_md
tipc: add tipc_bearer_min_mtu to calculate min mtu
tipc: do not update mtu if msg_max is too small in mtu negotiation
tipc: check the bearer min mtu properly when setting it by netlink
Xiubo Li (1):
ceph: force updating the msg pointer in non-split case
Yafang (1):
bpf: Add preempt_count_{sub,add} into btf id deny list
Ye Bin (1):
fs/ntfs3: Fix NULL pointer dereference in 'ni_write_inode'
Zheng Wang (2):
memstick: r592: Fix UAF bug in r592_remove due to race condition
scsi: message: mptlan: Fix use after free bug in mptlan_remove() due to race condition
Zhong Jinghua (1):
nbd: fix incomplete validation of ioctl arg
Zhuang Shengen (1):
vsock: avoid to close connected socket after the timeout
Ziwei Xiao (1):
gve: Remove the code of clearing PBA bit
Zongjie Li (1):
fbdev: arcfb: Fix error handling in arcfb_probe()
Zqiang (1):
rcu: Protect rcu_print_task_exp_stall() ->exp_tasks access
harperchen (2):
media: cx23885: Fix a null-ptr-deref bug in buffer_prepare() and buffer_finish()
media: pci: tw68: Fix null-ptr-deref bug in buf prepare and finish
t.feng (1):
ipvlan:Fix out-of-bounds caused by unclear skb->cb
void0red (1):
ACPICA: ACPICA: check null return of ACPI_ALLOCATE_ZEROED in acpi_db_display_objects
Greg Kroah-Hartman
maintainerDocumentation/devicetree/bindings/display/msm/dsi-controller-main.yaml +12 -0
@@ -64,6 +64,18 @@ properties: Indicates if the DSI controller is driving a panel which needs 2 DSI links. + qcom,master-dsi: + type: boolean + description: | + Indicates if the DSI controller is the master DSI controller when + qcom,dual-dsi-mode enabled. + + qcom,sync-dual-dsi: + type: boolean + description: | + Indicates if the DSI controller needs to sync the other DSI controller + with MIPI DCS commands when qcom,dual-dsi-mode enabled. + assigned-clocks: minItems: 2 maxItems: 2
MAINTAINERS +2 -2
@@ -8568,7 +8568,7 @@ F: drivers/net/wireless/intersil/hostap/ HP COMPAQ TC1100 TABLET WMI EXTRAS DRIVER L: [email protected] S: Orphan -F: drivers/platform/x86/tc1100-wmi.c +F: drivers/platform/x86/hp/tc1100-wmi.c HPET: High Precision Event Timers driver M: Clemens Ladisch <[email protected]>
@@ -10838,7 +10838,7 @@ M: Eric Piel <[email protected]> S: Maintained F: Documentation/misc-devices/lis3lv02d.rst F: drivers/misc/lis3lv02d/ -F: drivers/platform/x86/hp_accel.c +F: drivers/platform/x86/hp/hp_accel.c LIST KUNIT TEST M: David Gow <[email protected]>
Makefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 5 PATCHLEVEL = 15 -SUBLEVEL = 112 +SUBLEVEL = 113 EXTRAVERSION = NAME = Trick or Treat
arch/arm/mach-sa1100/jornada720_ssp.c +4 -1
@@ -1,5 +1,5 @@// SPDX-License-Identifier: GPL-2.0-only -/** +/* * arch/arm/mac-sa1100/jornada720_ssp.c * * Copyright (C) 2006/2007 Kristoffer Ericson <[email protected]>
@@ -26,6 +26,7 @@ static unsigned long jornada_ssp_flags;/** * jornada_ssp_reverse - reverses input byte +* @byte: input byte to reverse * * we need to reverse all data we receive from the mcu due to its physical location * returns : 01110111 -> 11101110
@@ -46,6 +47,7 @@ EXPORT_SYMBOL(jornada_ssp_reverse);/** * jornada_ssp_byte - waits for ready ssp bus and sends byte +* @byte: input byte to transmit * * waits for fifo buffer to clear and then transmits, if it doesn't then we will * timeout after <timeout> rounds. Needs mcu running before its called.
@@ -77,6 +79,7 @@ EXPORT_SYMBOL(jornada_ssp_byte);/** * jornada_ssp_inout - decide if input is command or trading byte +* @byte: input byte to send (may be %TXDUMMY) * * returns : (jornada_ssp_byte(byte)) on success * : %-ETIMEDOUT on timeout failure
arch/arm64/boot/dts/qcom/msm8996.dtsi +3 -0
@@ -2595,8 +2595,11 @@ usb3_dwc3: dwc3@6a00000 { interrupts = <0 131 IRQ_TYPE_LEVEL_HIGH>; phys = <&hsusb_phy1>, <&ssusb_phy_0>; phy-names = "usb2-phy", "usb3-phy"; + snps,hird-threshold = /bits/ 8 <0>; snps,dis_u2_susphy_quirk; snps,dis_enblslpm_quirk; + snps,is-utmi-l1-suspend; + tx-fifo-resize; }; };
arch/parisc/include/asm/pdc.h +1 -0
@@ -81,6 +81,7 @@ int pdc_do_firm_test_reset(unsigned long ftc_bitmap);int pdc_do_reset (void );int pdc_soft_power_info (unsigned long *power_reg);int pdc_soft_power_button (int sw_control); +int pdc_soft_power_button_panic (int sw_control);void pdc_io_reset (void );void pdc_io_reset_devices (void );int pdc_iodc_getc (void );
arch/parisc/kernel/firmware.c +23 -4
@@ -1158,15 +1158,18 @@ int __init pdc_soft_power_info(unsigned long *power_reg) }/* -* pdc_soft_power_button - Control the soft power button behaviour -* @sw_control: 0 for hardware control, 1 for software control +* pdc_soft_power_button{_panic} - Control the soft power button behaviour +* @sw_control: 0 for hardware control, 1 for software control * * * This PDC function places the soft power button under software or * hardware control. -* Under software control the OS may control to when to allow to shut -* down the system. Under hardware control pressing the power button +* Under software control the OS may control to when to allow to shut +* down the system. Under hardware control pressing the power button * powers off the system immediately. +* +* The _panic version relies on spin_trylock to prevent deadlock +* on panic path. */ int pdc_soft_power_button (int sw_control) {
@@ -1180,6 +1183,22 @@ int pdc_soft_power_button(int sw_control)return retval; } +int pdc_soft_power_button_panic (int sw_control) +{ +int retval; +unsigned long flags; + +if (!spin_trylock_irqsave (&pdc_lock, flags)) { +pr_emerg ("Couldn't enable soft power button\n" ); +return -EBUSY ;/* ignored by the panic notifier */ + } + + retval =mem_pdc_call (PDC_SOFT_POWER ,PDC_SOFT_POWER_ENABLE ,__pa (pdc_result), sw_control); +spin_unlock_irqrestore (&pdc_lock, flags); + +return retval; +} +/* * pdc_io_reset - Hack to avoid overlapping range registers of Bridges devices. * Primarily a problem on T600 (which parisc-linux doesn't support) but
arch/powerpc/kernel/dma-iommu.c +3 -1
@@ -144,7 +144,7 @@ static bool dma_iommu_bypass_supported(struct device *dev, u64 mask)/* We support DMA to/from any memory page via the iommu */ int dma_iommu_dma_supported (struct device *dev,u64 mask) { -struct iommu_table *tbl =get_iommu_table_base (dev); +struct iommu_table *tbl;if (dev_is_pci (dev) &&dma_iommu_bypass_supported (dev, mask)) {/*
@@ -162,6 +162,8 @@ int dma_iommu_dma_supported(struct device *dev, u64 mask)return 1 ; } + tbl =get_iommu_table_base (dev); +if (!tbl) {dev_err (dev,"Warning: IOMMU dma not supported: mask 0x%08llx, table unavailable\n" , mask);return 0 ;
arch/powerpc/mm/book3s64/radix_pgtable.c +2 -2
@@ -1045,8 +1045,8 @@ void radix__ptep_set_access_flags(struct vm_area_struct *vma, pte_t *ptep, pte_t entry, unsigned long address, int psize) { struct mm_struct *mm = vma->vm_mm; -unsigned long set =pte_val (entry) & (_PAGE_DIRTY | _PAGE_ACCESSED | - _PAGE_RW | _PAGE_EXEC); +unsigned long set =pte_val (entry) & (_PAGE_DIRTY | _PAGE_SOFT_DIRTY | + _PAGE_ACCESSED | _PAGE_RW | _PAGE_EXEC);unsigned long change =pte_val (entry) ^pte_val (*ptep);/*
arch/powerpc/platforms/pseries/iommu.c +9 -4
@@ -85,19 +85,24 @@ static struct iommu_table_group *iommu_pseries_alloc_group(int node)static void iommu_pseries_free_group (struct iommu_table_group *table_group,const char *node_name) { -struct iommu_table *tbl; -if (!table_group)return ; - tbl = table_group->tables[0 ];#ifdef CONFIG_IOMMU_API if (table_group->group) {iommu_group_put (table_group->group);BUG_ON (table_group->group); }#endif -iommu_tce_table_put (tbl); + +/* Default DMA window table is at index 0, while DDW at 1. SR-IOV +* adapters only have table on index 1. +*/ +if (table_group->tables[0 ]) +iommu_tce_table_put (table_group->tables[0 ]); + +if (table_group->tables[1 ]) +iommu_tce_table_put (table_group->tables[1 ]);kfree (table_group); }
drivers/acpi/acpica/dbnames.c +3 -0
@@ -652,6 +652,9 @@ acpi_status acpi_db_display_objects(char *obj_type_arg, char *display_count_arg) object_info =ACPI_ALLOCATE_ZEROED (sizeof (struct acpi_object_info )); +if (!object_info) +return (AE_NO_MEMORY ); +/* Walk the namespace from the root */ (void)acpi_walk_namespace(ACPI_TYPE_ANY, ACPI_ROOT_OBJECT,
drivers/acpi/acpica/dswstate.c +8 -3
@@ -576,9 +576,14 @@ acpi_ds_init_aml_walk(struct acpi_walk_state *walk_state,ACPI_FUNCTION_TRACE (ds_init_aml_walk); walk_state->parser_state.aml = - walk_state->parser_state.aml_start = aml_start; - walk_state->parser_state.aml_end = - walk_state->parser_state.pkg_end = aml_start + aml_length; + walk_state->parser_state.aml_start = + walk_state->parser_state.aml_end = + walk_state->parser_state.pkg_end = aml_start; +/* Avoid undefined behavior: applying zero offset to null pointer */ +if (aml_length !=0 ) { + walk_state->parser_state.aml_end += aml_length; + walk_state->parser_state.pkg_end += aml_length; + }/* The next_op of the next_walk will be the beginning of the method */
drivers/acpi/ec.c +1 -0
@@ -1101,6 +1101,7 @@ static void acpi_ec_remove_query_handlers(struct acpi_ec *ec,void acpi_ec_remove_query_handler (struct acpi_ec *ec,u8 query_bit) {acpi_ec_remove_query_handlers (ec, false, query_bit); +flush_workqueue (ec_query_wq); }EXPORT_SYMBOL_GPL (acpi_ec_remove_query_handler);
drivers/base/regmap/regcache.c +6 -0
@@ -343,6 +343,9 @@ int regcache_sync(struct regmap *map)const char *name;bool bypass; +if (WARN_ON (map->cache_type ==REGCACHE_NONE )) +return -EINVAL ; +BUG_ON (!map->cache_ops); map->lock (map->lock_arg);
@@ -412,6 +415,9 @@ int regcache_sync_region(struct regmap *map, unsigned int min,const char *name;bool bypass; +if (WARN_ON (map->cache_type ==REGCACHE_NONE )) +return -EINVAL ; +BUG_ON (!map->cache_ops); map->lock (map->lock_arg);
drivers/block/nbd.c +6 -0
@@ -326,6 +326,9 @@ static int nbd_set_size(struct nbd_device *nbd, loff_t bytesize,if (blksize <512 || blksize >PAGE_SIZE || !is_power_of_2 (blksize))return -EINVAL ; +if (bytesize <0 ) +return -EINVAL ; + nbd->config->bytesize = bytesize; nbd->config->blksize_bits =__ffs (blksize);
@@ -1048,6 +1051,9 @@ static int nbd_add_socket(struct nbd_device *nbd, unsigned long arg,struct nbd_sock *nsock;int err; +/* Arg will be cast to int, check it to avoid overflow */ +if (arg >INT_MAX ) +return -EINVAL ; sock =nbd_get_socket (nbd, arg, &err);if (!sock)return err;
drivers/block/null_blk/main.c +5 -0
@@ -1744,6 +1744,11 @@ static int null_init_tag_set(struct nullb *nullb, struct blk_mq_tag_set *set)static int null_validate_conf (struct nullb_device *dev) { +if (dev->queue_mode ==NULL_Q_RQ ) { +pr_err ("legacy IO path is no longer available\n" ); +return -EINVAL ; + } + dev->blocksize =round_down (dev->blocksize,512 ); dev->blocksize = clamp_t(unsigned int, dev->blocksize, 512, 4096);
drivers/bluetooth/btbcm.c +44 -3
65 lines not on this page · raw message
drivers/bluetooth/btintel.c +2 -3
@@ -2381,9 +2381,8 @@ static int btintel_setup_combined(struct hci_dev *hdev)*/ set_bit (HCI_QUIRK_WIDEBAND_SPEECH_SUPPORTED , &hdev->quirks); -/* Valid LE States quirk for GfP */ -if (INTEL_HW_VARIANT (ver_tlv.cnvi_bt) ==0x18 ) -set_bit (HCI_QUIRK_VALID_LE_STATES , &hdev->quirks); +/* Apply LE States quirk from solar onwards */ +set_bit (HCI_QUIRK_VALID_LE_STATES , &hdev->quirks);/* Setup MSFT Extension support */ btintel_set_msft_opcode(hdev,
drivers/char/tpm/tpm_tis.c +16 -0
@@ -83,6 +83,22 @@ static const struct dmi_system_id tpm_tis_dmi_table[] = { DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad T490s"), }, }, + { + .callback = tpm_tis_disable_irq, + .ident = "ThinkStation P360 Tiny", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkStation P360 Tiny"), + }, + }, + { + .callback = tpm_tis_disable_irq, + .ident = "ThinkPad L490", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad L490"), + }, + }, {} };
drivers/clk/tegra/clk-tegra20.c +14 -14
@@ -18,24 +18,24 @@#define MISC_CLK_ENB 0x48#define OSC_CTRL 0x50 -#define OSC_CTRL_OSC_FREQ_MASK (3<<30) -#define OSC_CTRL_OSC_FREQ_13MHZ (0<<30) -#define OSC_CTRL_OSC_FREQ_19_2MHZ (1<<30) -#define OSC_CTRL_OSC_FREQ_12MHZ (2<<30) -#define OSC_CTRL_OSC_FREQ_26MHZ (3<<30) -#define OSC_CTRL_MASK (0x3f2 | OSC_CTRL_OSC_FREQ_MASK) - -#define OSC_CTRL_PLL_REF_DIV_MASK (3<<28) -#define OSC_CTRL_PLL_REF_DIV_1 (0<<28) -#define OSC_CTRL_PLL_REF_DIV_2 (1<<28) -#define OSC_CTRL_PLL_REF_DIV_4 (2<<28) +#define OSC_CTRL_OSC_FREQ_MASK (3u<<30) +#define OSC_CTRL_OSC_FREQ_13MHZ (0u<<30) +#define OSC_CTRL_OSC_FREQ_19_2MHZ (1u<<30) +#define OSC_CTRL_OSC_FREQ_12MHZ (2u<<30) +#define OSC_CTRL_OSC_FREQ_26MHZ (3u<<30) +#define OSC_CTRL_MASK (0x3f2u | OSC_CTRL_OSC_FREQ_MASK) + +#define OSC_CTRL_PLL_REF_DIV_MASK (3u<<28) +#define OSC_CTRL_PLL_REF_DIV_1 (0u<<28) +#define OSC_CTRL_PLL_REF_DIV_2 (1u<<28) +#define OSC_CTRL_PLL_REF_DIV_4 (2u<<28)#define OSC_FREQ_DET 0x58 -#define OSC_FREQ_DET_TRIG (1<<31) +#define OSC_FREQ_DET_TRIG (1u<<31)#define OSC_FREQ_DET_STATUS 0x5c -#define OSC_FREQ_DET_BUSY (1<<31) -#define OSC_FREQ_DET_CNT_MASK 0xFFFF +#define OSC_FREQ_DET_BUSYu (1<<31) +#define OSC_FREQ_DET_CNT_MASK 0xFFFFu#define TEGRA20_CLK_PERIPH_BANKS 3
drivers/firmware/arm_sdei.c +20 -17
@@ -43,6 +43,8 @@ static asmlinkage void (*sdei_firmware_call)(unsigned long function_id,/* entry point from firmware to arch asm code */ static unsigned long sdei_entry_point; +static int sdei_hp_state; +struct sdei_event {/* These three are protected by the sdei_list_lock */ struct list_head list;
@@ -301,8 +303,6 @@ int sdei_mask_local_cpu(void) {int err; -WARN_ON_ONCE (preemptible ()); - err =invoke_sdei_fn (SDEI_1_0_FN_SDEI_PE_MASK ,0 ,0 ,0 ,0 ,0 ,NULL );if (err && err != -EIO ) { pr_warn_once("failed to mask CPU[%u]: %d\n",
@@ -315,6 +315,7 @@ int sdei_mask_local_cpu(void)static void _ipi_mask_cpu (void *ignored) { +WARN_ON_ONCE (preemptible ());sdei_mask_local_cpu (); }
@@ -322,8 +323,6 @@ int sdei_unmask_local_cpu(void) {int err; -WARN_ON_ONCE (preemptible ()); - err =invoke_sdei_fn (SDEI_1_0_FN_SDEI_PE_UNMASK ,0 ,0 ,0 ,0 ,0 ,NULL );if (err && err != -EIO ) { pr_warn_once("failed to unmask CPU[%u]: %d\n",
@@ -336,6 +335,7 @@ int sdei_unmask_local_cpu(void)static void _ipi_unmask_cpu (void *ignored) { +WARN_ON_ONCE (preemptible ());sdei_unmask_local_cpu (); }
@@ -343,6 +343,8 @@ static void _ipi_private_reset(void *ignored) {int err; +WARN_ON_ONCE (preemptible ()); + err =invoke_sdei_fn (SDEI_1_0_FN_SDEI_PRIVATE_RESET ,0 ,0 ,0 ,0 ,0 ,NULL );if (err && err != -EIO )
@@ -389,8 +391,6 @@ static void _local_event_enable(void *data)int err;struct sdei_crosscall_args *arg = data; -WARN_ON_ONCE (preemptible ()); - err =sdei_api_event_enable (arg->event->event_num);sdei_cross_call_return (arg, err);
@@ -479,8 +479,6 @@ static void _local_event_unregister(void *data)int err;struct sdei_crosscall_args *arg = data; -WARN_ON_ONCE (preemptible ()); - err =sdei_api_event_unregister (arg->event->event_num);sdei_cross_call_return (arg, err);
@@ -561,8 +559,6 @@ static void _local_event_register(void *data)struct sdei_registered_event *reg;struct sdei_crosscall_args *arg = data; -WARN_ON (preemptible ()); - reg =per_cpu_ptr (arg->event->private_registered,smp_processor_id ()); err =sdei_api_event_register (arg->event->event_num, sdei_entry_point, reg,0 ,0 );
@@ -717,6 +713,8 @@ static int sdei_pm_notifier(struct notifier_block *nb, unsigned long action, {int rv; +WARN_ON_ONCE (preemptible ()); +switch (action) {case CPU_PM_ENTER : rv =sdei_mask_local_cpu ();
@@ -765,7 +763,7 @@ static int sdei_device_freeze(struct device *dev)int err;/* unregister private events */ -cpuhp_remove_state (CPUHP_AP_ARM_SDEI_STARTING ); +cpuhp_remove_state (sdei_entry_point); err =sdei_unregister_shared ();if (err)
@@ -786,12 +784,15 @@ static int sdei_device_thaw(struct device *dev)return err; } - err =cpuhp_setup_state (CPUHP_AP_ARM_SDEI_STARTING ,"SDEI" , + err =cpuhp_setup_state (CPUHP_AP_ONLINE_DYN ,"SDEI" , &sdei_cpuhp_up, &sdei_cpuhp_down); -if (err) +if (err <0 ) {pr_warn ("Failed to re-register CPU hotplug notifier...\n" ); +return err; + } -return err; + sdei_hp_state = err; +return 0 ; }static int sdei_device_restore (struct device *dev)
@@ -823,7 +824,7 @@ static int sdei_reboot_notifier(struct notifier_block *nb, unsigned long action,* We are going to reset the interface, after this there is no point * doing work when we take CPUs offline. */ -cpuhp_remove_state (CPUHP_AP_ARM_SDEI_STARTING ); +cpuhp_remove_state (sdei_hp_state);sdei_platform_reset ();
@@ -1003,13 +1004,15 @@ static int sdei_probe(struct platform_device *pdev) goto remove_cpupm; } - err =cpuhp_setup_state (CPUHP_AP_ARM_SDEI_STARTING ,"SDEI" , + err =cpuhp_setup_state (CPUHP_AP_ONLINE_DYN ,"SDEI" , &sdei_cpuhp_up, &sdei_cpuhp_down); -if (err) { +if (err <0 ) {pr_warn ("Failed to register CPU hotplug notifier...\n" ); goto remove_reboot; } + sdei_hp_state = err; +return 0 ; remove_reboot:
drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c +2 -5
@@ -406,11 +406,8 @@ static enum bp_result get_gpio_i2c_info( info->i2c_slave_address = record->i2c_slave_addr;/* TODO: check how to get register offset for en, Y, etc. */ - info->gpio_info.clk_a_register_index = -le16_to_cpu ( - header->gpio_pin[table_index].data_a_reg_index); - info->gpio_info.clk_a_shift = - header->gpio_pin[table_index].gpio_bitshift; + info->gpio_info.clk_a_register_index =le16_to_cpu (pin->data_a_reg_index); + info->gpio_info.clk_a_shift = pin->gpio_bitshift;return BP_RESULT_OK ; }
drivers/gpu/drm/amd/display/dc/dce/dce_transform.c +2 -3
@@ -1009,7 +1009,7 @@ static void dce_transform_set_pixel_storage_depth( color_depth =COLOR_DEPTH_101010 ; pixel_depth =0 ; expan_mode =1 ; -BREAK_TO_DEBUGGER (); +DC_LOG_DC ("The pixel depth %d is not valid, set COLOR_DEPTH_101010 instead." , depth);break ; }
@@ -1023,8 +1023,7 @@ static void dce_transform_set_pixel_storage_depth(if (!(xfm_dce->lb_pixel_depth_supported & depth)) {/*we should use unsupported capabilities * unless it is required by w/a*/ -DC_LOG_WARNING ("%s: Capability not supported" , - __func__); +DC_LOG_DC ("%s: Capability not supported" , __func__); } }
drivers/gpu/drm/drm_displayid.c +16 -1
@@ -7,13 +7,28 @@#include <drm/drm_edid.h> #include <drm/drm_print.h> +static const struct displayid_header * +displayid_get_header (const u8 *displayid,int length,int index) +{ +const struct displayid_header *base; + +if (sizeof (*base) > length - index) +return ERR_PTR (-EINVAL ); + + base = (const struct displayid_header *)&displayid[index]; + +return base; +} +static int validate_displayid (const u8 *displayid,int length,int idx) {int i, dispid_length;u8 csum =0 ;const struct displayid_header *base; - base = (const struct displayid_header *)&displayid[idx]; + base =displayid_get_header (displayid, length, idx); +if (IS_ERR (base)) +return PTR_ERR (base);DRM_DEBUG_KMS ("base revision 0x%x, length %d, %d %d\n" , base->rev, base->bytes, base->prod_id, base->ext_count);
drivers/gpu/drm/drm_mipi_dsi.c +1 -1
@@ -221,7 +221,7 @@ mipi_dsi_device_register_full(struct mipi_dsi_host *host,return dsi; } - dsi->dev.of_node = info->node; +device_set_node (&dsi->dev,of_fwnode_handle (info->node)); dsi->channel = info->channel;strlcpy (dsi->name, info->type,sizeof (dsi->name));
drivers/gpu/drm/exynos/exynos_drm_g2d.h +2 -2
@@ -34,11 +34,11 @@ static inline int exynos_g2d_exec_ioctl(struct drm_device *dev, void *data, return -ENODEV; } -int g2d_open (struct drm_device *drm_dev,struct drm_file *file) +static inline int g2d_open (struct drm_device *drm_dev,struct drm_file *file) {return 0 ; } -void g2d_close (struct drm_device *drm_dev,struct drm_file *file) +static inline void g2d_close (struct drm_device *drm_dev,struct drm_file *file) { }#endif
drivers/gpu/drm/i915/display/intel_dp.c +5 -0
@@ -1231,6 +1231,11 @@ static int intel_dp_dsc_compute_config(struct intel_dp *intel_dp, pipe_config->dsc.slice_count =drm_dp_dsc_sink_max_slice_count (intel_dp->dsc_dpcd, true); +if (!pipe_config->dsc.slice_count) { +drm_dbg_kms (&dev_priv->drm,"Unsupported Slice Count %d\n" , + pipe_config->dsc.slice_count); +return -EINVAL ; + } }else {u16 dsc_max_output_bpp;u8 dsc_dp_slice_count;
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_interrupts.c +10 -1
@@ -12,7 +12,7 @@/** * Register offsets in MDSS register file for the interrupt registers -* w.r.t. to the MDP base +* w.r.t. the MDP base */ #define MDP_SSPP_TOP0_OFF 0x0#define MDP_INTF_0_OFF 0x6A000
@@ -20,6 +20,10 @@#define MDP_INTF_2_OFF 0x6B000#define MDP_INTF_3_OFF 0x6B800#define MDP_INTF_4_OFF 0x6C000 +#define MDP_INTF_5_OFF 0x6C800 +#define INTF_INTR_EN 0x1c0 +#define INTF_INTR_STATUS 0x1c4 +#define INTF_INTR_CLEAR 0x1c8#define MDP_AD4_0_OFF 0x7C000#define MDP_AD4_1_OFF 0x7D000#define MDP_AD4_INTR_EN_OFF 0x41c
@@ -87,6 +91,11 @@ static const struct dpu_intr_reg dpu_intr_set[] = {MDP_INTF_4_OFF +INTF_INTR_EN ,MDP_INTF_4_OFF +INTF_INTR_STATUS }, + { +MDP_INTF_5_OFF +INTF_INTR_CLEAR , +MDP_INTF_5_OFF +INTF_INTR_EN , +MDP_INTF_5_OFF +INTF_INTR_STATUS + }, {MDP_AD4_0_OFF +MDP_AD4_INTR_CLEAR_OFF , MDP_AD4_0_OFF + MDP_AD4_INTR_EN_OFF,
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_interrupts.h +1 -0
@@ -22,6 +22,7 @@ enum dpu_hw_intr_reg {MDP_INTF2_INTR ,MDP_INTF3_INTR ,MDP_INTF4_INTR , +MDP_INTF5_INTR ,MDP_AD4_0_INTR ,MDP_AD4_1_INTR , MDP_INTF0_7xxx_INTR,
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_intf.c +0 -5
@@ -53,11 +53,6 @@#define INTF_TPG_RGB_MAPPING 0x11C#define INTF_PROG_FETCH_START 0x170#define INTF_PROG_ROT_START 0x174 - -#define INTF_FRAME_LINE_COUNT_EN 0x0A8 -#define INTF_FRAME_COUNT 0x0AC -#define INTF_LINE_COUNT 0x0B0 -#define INTF_MUX 0x25C static const struct dpu_intf_cfg *_intf_offset(enum dpu_intf intf,
drivers/gpu/drm/msm/disp/dpu1/dpu_hwio.h +0 -3
@@ -20,9 +20,6 @@#define HIST_INTR_EN 0x01c#define HIST_INTR_STATUS 0x020#define HIST_INTR_CLEAR 0x024 -#define INTF_INTR_EN 0x1C0 -#define INTF_INTR_STATUS 0x1C4 -#define INTF_INTR_CLEAR 0x1C8#define SPLIT_DISPLAY_EN 0x2F4#define SPLIT_DISPLAY_UPPER_PIPE_CTRL 0x2F8#define DSPP_IGC_COLOR0_RAM_LUTN 0x300
drivers/gpu/drm/msm/dp/dp_audio.c +12 -0
@@ -577,6 +577,18 @@ static struct hdmi_codec_pdata codec_data = { .i2s = 1, }; +void dp_unregister_audio_driver (struct device *dev,struct dp_audio *dp_audio) +{ +struct dp_audio_private *audio_priv; + + audio_priv = container_of(dp_audio, struct dp_audio_private, dp_audio); + +if (audio_priv->audio_pdev) { +platform_device_unregister (audio_priv->audio_pdev); + audio_priv->audio_pdev =NULL ; + } +} +int dp_register_audio_driver (struct device *dev,struct dp_audio *dp_audio) {
drivers/gpu/drm/msm/dp/dp_audio.h +2 -0
@@ -53,6 +53,8 @@ struct dp_audio *dp_audio_get(struct platform_device *pdev,int dp_register_audio_driver (struct device *dev,struct dp_audio *dp_audio); +void dp_unregister_audio_driver (struct device *dev,struct dp_audio *dp_audio); +/** * dp_audio_put() *
drivers/gpu/drm/msm/dp/dp_aux.c +34 -46
94 lines not on this page · raw message
drivers/gpu/drm/msm/dp/dp_catalog.c +1 -1
@@ -34,7 +34,7 @@#define MSM_DP_CONTROLLER_P0_SIZE 0x0400#define DP_INTERRUPT_STATUS1 \ - (DP_INTR_AUX_I2C_DONE| \ + (DP_INTR_AUX_XFER_DONE| \ DP_INTR_WRONG_ADDR | DP_INTR_TIMEOUT | \ DP_INTR_NACK_DEFER | DP_INTR_WRONG_DATA_CNT | \ DP_INTR_I2C_NACK | DP_INTR_I2C_DEFER | \
drivers/gpu/drm/msm/dp/dp_catalog.h +1 -1
@@ -13,7 +13,7 @@/* interrupts */ #define DP_INTR_HPD BIT(0) -#define DP_INTR_AUX_I2C_DONE BIT(3) +#define DP_INTR_AUX_XFER_DONE BIT(3)#define DP_INTR_WRONG_ADDR BIT(6)#define DP_INTR_TIMEOUT BIT(9)#define DP_INTR_NACK_DEFER BIT(12)
drivers/gpu/drm/msm/dp/dp_display.c +1 -0
@@ -267,6 +267,7 @@ static void dp_display_unbind(struct device *dev, struct device *master,kthread_stop (dp->ev_tsk);dp_power_client_deinit (dp->power); +dp_unregister_audio_driver (dev, dp->audio);dp_aux_unregister (dp->aux); priv->dp =NULL ; }
drivers/gpu/drm/tegra/sor.c +1 -1
@@ -1153,7 +1153,7 @@ static int tegra_sor_compute_config(struct tegra_sor *sor, struct drm_dp_link *link) {const u64 f =100000 , link_rate = link->rate *1000 ; -const u64 pclk = mode->clock *1000 ; +const u64 pclk = (u64 )mode->clock *1000 ;u64 input, output, watermark, num;struct tegra_sor_params params;u32 num_syms_per_line;
drivers/hid/hid-logitech-hidpp.c +51 -2
71 lines not on this page · raw message
drivers/hid/wacom.h +3 -0
@@ -91,6 +91,7 @@#include <linux/leds.h> #include <linux/usb/input.h> #include <linux/power_supply.h> +#include <linux/timer.h> #include <asm/unaligned.h> /*
@@ -167,6 +168,7 @@ struct wacom {struct delayed_work init_work;struct wacom_remote *remote;struct work_struct mode_change_work; +struct timer_list idleprox_timer;bool generic_has_leds;struct wacom_leds {struct wacom_group_leds *groups;
@@ -239,4 +241,5 @@ struct wacom_led *wacom_led_find(struct wacom *wacom, unsigned int group,struct wacom_led *wacom_led_next (struct wacom *wacom,struct wacom_led *cur);int wacom_equivalent_usage (int usage);int wacom_initialize_leds (struct wacom *wacom); +void wacom_idleprox_timeout (struct timer_list *list);#endif
drivers/hid/wacom_sys.c +2 -0
@@ -2787,6 +2787,7 @@ static int wacom_probe(struct hid_device *hdev,INIT_WORK (&wacom->battery_work, wacom_battery_work);INIT_WORK (&wacom->remote_work, wacom_remote_work);INIT_WORK (&wacom->mode_change_work, wacom_mode_change_work); +timer_setup (&wacom->idleprox_timer, &wacom_idleprox_timeout,TIMER_DEFERRABLE );/* ask for the report descriptor to be loaded by HID */ error =hid_parse (hdev);
@@ -2832,6 +2833,7 @@ static void wacom_remove(struct hid_device *hdev)cancel_work_sync (&wacom->battery_work);cancel_work_sync (&wacom->remote_work);cancel_work_sync (&wacom->mode_change_work); +del_timer_sync (&wacom->idleprox_timer);if (hdev->bus ==BUS_BLUETOOTH )device_remove_file (&hdev->dev, &dev_attr_speed);
drivers/hid/wacom_wac.c +58 -22
153 lines not on this page · raw message
drivers/infiniband/core/user_mad.c +14 -9
@@ -131,6 +131,11 @@ struct ib_umad_packet {struct ib_user_mad mad; }; +struct ib_rmpp_mad_hdr { +struct ib_mad_hdr mad_hdr; +struct ib_rmpp_hdr rmpp_hdr; +} __packed; +#define CREATE_TRACE_POINTS #include <trace/events/ib_umad.h>
@@ -494,11 +499,11 @@ static ssize_t ib_umad_write(struct file *filp, const char __user *buf, size_t count, loff_t *pos) { struct ib_umad_file *file = filp->private_data; +struct ib_rmpp_mad_hdr *rmpp_mad_hdr;struct ib_umad_packet *packet;struct ib_mad_agent *agent;struct rdma_ah_attr ah_attr;struct ib_ah *ah; -struct ib_rmpp_mad *rmpp_mad;__be64 *tid;int ret, data_len, hdr_len, copy_offset, rmpp_active;u8 base_version;
@@ -506,7 +511,7 @@ static ssize_t ib_umad_write(struct file *filp, const char __user *buf,if (count <hdr_size (file) +IB_MGMT_RMPP_HDR )return -EINVAL ; - packet =kzalloc (sizeof *packet +IB_MGMT_RMPP_HDR ,GFP_KERNEL ); + packet =kzalloc (sizeof (*packet) +IB_MGMT_RMPP_HDR ,GFP_KERNEL );if (!packet)return -ENOMEM ;
@@ -560,13 +565,13 @@ static ssize_t ib_umad_write(struct file *filp, const char __user *buf, goto err_up; } - rmpp_mad = (struct ib_rmpp_mad *) packet->mad.data; - hdr_len =ib_get_mad_data_offset (rmpp_mad->mad_hdr.mgmt_class); + rmpp_mad_hdr = (struct ib_rmpp_mad_hdr *)packet->mad.data; + hdr_len =ib_get_mad_data_offset (rmpp_mad_hdr->mad_hdr.mgmt_class); -if (ib_is_mad_class_rmpp (rmpp_mad->mad_hdr.mgmt_class) +if (ib_is_mad_class_rmpp (rmpp_mad_hdr->mad_hdr.mgmt_class) &&ib_mad_kernel_rmpp_agent (agent)) { copy_offset =IB_MGMT_RMPP_HDR ; - rmpp_active =ib_get_rmpp_flags (&rmpp_mad->rmpp_hdr) & + rmpp_active =ib_get_rmpp_flags (&rmpp_mad_hdr->rmpp_hdr) &IB_MGMT_RMPP_FLAG_ACTIVE ; }else { copy_offset =IB_MGMT_MAD_HDR ;
@@ -615,12 +620,12 @@ static ssize_t ib_umad_write(struct file *filp, const char __user *buf, tid = &((struct ib_mad_hdr *) packet->msg->mad)->tid; *tid =cpu_to_be64 (((u64 ) agent->hi_tid) <<32 | (be64_to_cpup (tid) &0xffffffff )); - rmpp_mad->mad_hdr.tid = *tid; + rmpp_mad_hdr->mad_hdr.tid = *tid; }if (!ib_mad_kernel_rmpp_agent (agent) - &&ib_is_mad_class_rmpp (rmpp_mad->mad_hdr.mgmt_class) - && (ib_get_rmpp_flags (&rmpp_mad->rmpp_hdr) &IB_MGMT_RMPP_FLAG_ACTIVE )) { + &&ib_is_mad_class_rmpp (rmpp_mad_hdr->mad_hdr.mgmt_class) + && (ib_get_rmpp_flags (&rmpp_mad_hdr->rmpp_hdr) &IB_MGMT_RMPP_FLAG_ACTIVE )) {spin_lock_irq (&file->send_lock);list_add_tail (&packet->list, &file->send_list);spin_unlock_irq (&file->send_lock);
drivers/input/joystick/xpad.c +4 -1
@@ -493,6 +493,9 @@ struct xboxone_init_packet { } +#define GIP_WIRED_INTF_DATA 0 +#define GIP_WIRED_INTF_AUDIO 1 +/* * This packet is required for all Xbox One pads with 2015 * or later firmware installed (or present from the factory).
@@ -1821,7 +1824,7 @@ static int xpad_probe(struct usb_interface *intf, const struct usb_device_id *id }if (xpad->xtype ==XTYPE_XBOXONE && - intf->cur_altsetting->desc.bInterfaceNumber !=0 ) { + intf->cur_altsetting->desc.bInterfaceNumber !=GIP_WIRED_INTF_DATA ) {/* * The Xbox One controller lists three interfaces all with the * same interface class, subclass and protocol. Differentiate by
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c +14 -5
@@ -154,6 +154,18 @@ static void queue_inc_cons(struct arm_smmu_ll_queue *q) q->cons =Q_OVF (q->cons) |Q_WRP (q, cons) |Q_IDX (q, cons); } +static void queue_sync_cons_ovf (struct arm_smmu_queue *q) +{ +struct arm_smmu_ll_queue *llq = &q->llq; + +if (likely (Q_OVF (llq->prod) ==Q_OVF (llq->cons))) +return ; + + llq->cons =Q_OVF (llq->prod) |Q_WRP (llq, llq->cons) | +Q_IDX (llq, llq->cons); +queue_sync_cons_out (q); +} +static int queue_sync_prod_in (struct arm_smmu_queue *q) {u32 prod;
@@ -1564,8 +1576,7 @@ static irqreturn_t arm_smmu_evtq_thread(int irq, void *dev) }while (!queue_empty (llq));/* Sync our overflow flag, as we believe we're up to speed */ - llq->cons =Q_OVF (llq->prod) |Q_WRP (llq, llq->cons) | -Q_IDX (llq, llq->cons); +queue_sync_cons_ovf (q);return IRQ_HANDLED ; }
@@ -1623,9 +1634,7 @@ static irqreturn_t arm_smmu_priq_thread(int irq, void *dev) }while (!queue_empty (llq));/* Sync our overflow flag, as we believe we're up to speed */ - llq->cons =Q_OVF (llq->prod) |Q_WRP (llq, llq->cons) | -Q_IDX (llq, llq->cons); -queue_sync_cons_out (q); +queue_sync_cons_ovf (q);return IRQ_HANDLED ; }
drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c +15 -1
@@ -247,12 +247,26 @@ static int qcom_smmu_init_context(struct arm_smmu_domain *smmu_domain,static int qcom_smmu_cfg_probe (struct arm_smmu_device *smmu) { -unsigned int last_s2cr =ARM_SMMU_GR0_S2CR (smmu->num_mapping_groups -1 );struct qcom_smmu *qsmmu =to_qcom_smmu (smmu); +unsigned int last_s2cr;u32 reg;u32 smr;int i; +/* +* Some platforms support more than the Arm SMMU architected maximum of +* 128 stream matching groups. For unknown reasons, the additional +* groups don't exhibit the same behavior as the architected registers, +* so limit the groups to 128 until the behavior is fixed for the other +* groups. +*/ +if (smmu->num_mapping_groups >128 ) { +dev_notice (smmu->dev,"\tLimiting the stream matching groups to 128\n" ); + smmu->num_mapping_groups =128 ; + } + + last_s2cr =ARM_SMMU_GR0_S2CR (smmu->num_mapping_groups -1 ); +/* * With some firmware versions writes to S2CR of type FAULT are * ignored, and writing BYPASS will end up written as FAULT in the
drivers/iommu/sprd-iommu.c +22 -7
@@ -151,13 +151,6 @@ static struct iommu_domain *sprd_iommu_domain_alloc(unsigned int domain_type)return &dom->domain; } -static void sprd_iommu_domain_free (struct iommu_domain *domain) -{ -struct sprd_iommu_domain *dom =to_sprd_domain (domain); - -kfree (dom); -} -static void sprd_iommu_first_vpn (struct sprd_iommu_domain *dom) {struct sprd_iommu_device *sdev = dom->sdev;
@@ -230,6 +223,28 @@ static void sprd_iommu_hw_en(struct sprd_iommu_device *sdev, bool en)sprd_iommu_update_bits (sdev, reg_cfg, mask,0 , val); } +static void sprd_iommu_cleanup (struct sprd_iommu_domain *dom) +{ +size_t pgt_size; + +/* Nothing need to do if the domain hasn't been attached */ +if (!dom->sdev) +return ; + + pgt_size =sprd_iommu_pgt_size (&dom->domain); +dma_free_coherent (dom->sdev->dev, pgt_size, dom->pgt_va, dom->pgt_pa); + dom->sdev =NULL ; +sprd_iommu_hw_en (dom->sdev, false); +} + +static void sprd_iommu_domain_free (struct iommu_domain *domain) +{ +struct sprd_iommu_domain *dom =to_sprd_domain (domain); + +sprd_iommu_cleanup (dom); +kfree (dom); +} +static int sprd_iommu_attach_device (struct iommu_domain *domain,struct device *dev) {
drivers/mcb/mcb-pci.c +25 -2
@@ -31,7 +31,7 @@ static int mcb_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) {struct resource *res;struct priv *priv; -int ret; +int ret, table_size;unsigned long flags; priv =devm_kzalloc (&pdev->dev,sizeof (struct priv ),GFP_KERNEL );
@@ -90,7 +90,30 @@ static int mcb_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)if (ret <0 ) goto out_mcb_bus; -dev_dbg (&pdev->dev,"Found %d cells\n" , ret); + table_size = ret; + +if (table_size <CHAM_HEADER_SIZE ) { +/* Release the previous resources */ +devm_iounmap (&pdev->dev, priv->base); +devm_release_mem_region (&pdev->dev, priv->mapbase,CHAM_HEADER_SIZE ); + +/* Then, allocate it again with the actual chameleon table size */ + res =devm_request_mem_region (&pdev->dev, priv->mapbase, + table_size, +KBUILD_MODNAME ); +if (!res) { +dev_err (&pdev->dev,"Failed to request PCI memory\n" ); + ret = -EBUSY ; + goto out_mcb_bus; + } + + priv->base =devm_ioremap (&pdev->dev, priv->mapbase, table_size); +if (!priv->base) { +dev_err (&pdev->dev,"Cannot ioremap\n" ); + ret = -ENOMEM ; + goto out_mcb_bus; + } + }mcb_bus_add_devices (priv->bus);
drivers/media/pci/cx23885/cx23885-core.c +3 -1
@@ -1325,7 +1325,9 @@ void cx23885_free_buffer(struct cx23885_dev *dev, struct cx23885_buffer *buf) {struct cx23885_riscmem *risc = &buf->risc; -dma_free_coherent (&dev->pci->dev, risc->size, risc->cpu, risc->dma); +if (risc->cpu) +dma_free_coherent (&dev->pci->dev, risc->size, risc->cpu, risc->dma); +memset (risc,0 ,sizeof (*risc)); }static void cx23885_tsport_reg_dump (struct cx23885_tsport *port)
drivers/media/pci/cx23885/cx23885-video.c +7 -6
@@ -342,6 +342,7 @@ static int queue_setup(struct vb2_queue *q,static int buffer_prepare (struct vb2_buffer *vb) { +int ret;struct vb2_v4l2_buffer *vbuf =to_vb2_v4l2_buffer (vb);struct cx23885_dev *dev = vb->vb2_queue->drv_priv; struct cx23885_buffer *buf =
@@ -358,12 +359,12 @@ static int buffer_prepare(struct vb2_buffer *vb)switch (dev->field) {case V4L2_FIELD_TOP : -cx23885_risc_buffer (dev->pci, &buf->risc, + ret =cx23885_risc_buffer (dev->pci, &buf->risc, sgt->sgl,0 ,UNSET , buf->bpl,0 , dev->height);break ;case V4L2_FIELD_BOTTOM : -cx23885_risc_buffer (dev->pci, &buf->risc, + ret =cx23885_risc_buffer (dev->pci, &buf->risc, sgt->sgl,UNSET ,0 , buf->bpl,0 , dev->height);break ;
@@ -391,21 +392,21 @@ static int buffer_prepare(struct vb2_buffer *vb) line0_offset =0 ; line1_offset = buf->bpl; } -cx23885_risc_buffer (dev->pci, &buf->risc, + ret =cx23885_risc_buffer (dev->pci, &buf->risc, sgt->sgl, line0_offset, line1_offset, buf->bpl, buf->bpl, dev->height >>1 );break ;case V4L2_FIELD_SEQ_TB : -cx23885_risc_buffer (dev->pci, &buf->risc, + ret =cx23885_risc_buffer (dev->pci, &buf->risc, sgt->sgl,0 , buf->bpl * (dev->height >>1 ), buf->bpl,0 , dev->height >>1 );break ;case V4L2_FIELD_SEQ_BT : - cx23885_risc_buffer(dev->pci, &buf->risc, + ret = cx23885_risc_buffer(dev->pci, &buf->risc, sgt->sgl, buf->bpl * (dev->height >> 1), 0, buf->bpl, 0,
@@ -418,7 +419,7 @@ static int buffer_prepare(struct vb2_buffer *vb) buf, buf->vb.vb2_buf.index, dev->width, dev->height, dev->fmt->depth, dev->fmt->fourcc, (unsigned long)buf->risc.dma); -return 0 ; +return ret; }static void buffer_finish (struct vb2_buffer *vb)
drivers/media/pci/netup_unidvb/netup_unidvb_core.c +1 -1
@@ -697,7 +697,7 @@ static void netup_unidvb_dma_fini(struct netup_unidvb_dev *ndev, int num)netup_unidvb_dma_enable (dma,0 );msleep (50 );cancel_work_sync (&dma->work); -del_timer (&dma->timeout); +del_timer_sync (&dma->timeout); }static int netup_unidvb_dma_setup (struct netup_unidvb_dev *ndev)
drivers/media/pci/tw68/tw68-video.c +9 -7
@@ -437,6 +437,7 @@ static void tw68_buf_queue(struct vb2_buffer *vb)*/ static int tw68_buf_prepare (struct vb2_buffer *vb) { +int ret;struct vb2_v4l2_buffer *vbuf =to_vb2_v4l2_buffer (vb);struct vb2_queue *vq = vb->vb2_queue;struct tw68_dev *dev =vb2_get_drv_priv (vq);
@@ -452,30 +453,30 @@ static int tw68_buf_prepare(struct vb2_buffer *vb) bpl = (dev->width * dev->fmt->depth) >>3 ;switch (dev->field) {case V4L2_FIELD_TOP : -tw68_risc_buffer (dev->pci, buf, dma->sgl, + ret =tw68_risc_buffer (dev->pci, buf, dma->sgl,0 ,UNSET , bpl,0 , dev->height);break ;case V4L2_FIELD_BOTTOM : -tw68_risc_buffer (dev->pci, buf, dma->sgl, + ret =tw68_risc_buffer (dev->pci, buf, dma->sgl,UNSET ,0 , bpl,0 , dev->height);break ;case V4L2_FIELD_SEQ_TB : -tw68_risc_buffer (dev->pci, buf, dma->sgl, + ret =tw68_risc_buffer (dev->pci, buf, dma->sgl,0 , bpl * (dev->height >>1 ), bpl,0 , dev->height >>1 );break ;case V4L2_FIELD_SEQ_BT : -tw68_risc_buffer (dev->pci, buf, dma->sgl, + ret =tw68_risc_buffer (dev->pci, buf, dma->sgl, bpl * (dev->height >>1 ),0 , bpl,0 , dev->height >>1 );break ;case V4L2_FIELD_INTERLACED :default : -tw68_risc_buffer (dev->pci, buf, dma->sgl, + ret =tw68_risc_buffer (dev->pci, buf, dma->sgl,0 , bpl, bpl, bpl, dev->height >>1 );break ; } -return 0 ; +return ret; }static void tw68_buf_finish (struct vb2_buffer *vb)
@@ -485,7 +486,8 @@ static void tw68_buf_finish(struct vb2_buffer *vb)struct tw68_dev *dev =vb2_get_drv_priv (vq); struct tw68_buf *buf = container_of(vbuf, struct tw68_buf, vb); -dma_free_coherent (&dev->pci->dev, buf->size, buf->cpu, buf->dma); +if (buf->cpu) +dma_free_coherent (&dev->pci->dev, buf->size, buf->cpu, buf->dma); }static int tw68_start_streaming (struct vb2_queue *q,unsigned int count)
drivers/media/platform/am437x/am437x-vpfe.c +8 -7
@@ -1499,7 +1499,9 @@ static int vpfe_enum_size(struct file *file, void *priv, struct v4l2_frmsizeenum *fsize) {struct vpfe_device *vpfe =video_drvdata (file); -struct v4l2_subdev_frame_size_enum fse; +struct v4l2_subdev_frame_size_enum fse = { + .which =V4L2_SUBDEV_FORMAT_ACTIVE , + };struct v4l2_subdev *sd = vpfe->current_subdev->sd;struct vpfe_fmt *fmt;int ret;
@@ -1514,11 +1516,9 @@ static int vpfe_enum_size(struct file *file, void *priv,memset (fsize->reserved,0x0 ,sizeof (fsize->reserved)); -memset (&fse,0x0 ,sizeof (fse)); fse.index = fsize->index; fse.pad =0 ; fse.code = fmt->code; - fse.which =V4L2_SUBDEV_FORMAT_ACTIVE ; ret =v4l2_subdev_call (sd, pad, enum_frame_size,NULL , &fse);if (ret)return ret;
@@ -2146,7 +2146,6 @@ vpfe_async_bound(struct v4l2_async_notifier *notifier, {struct vpfe_device *vpfe =container_of (notifier->v4l2_dev, struct vpfe_device, v4l2_dev); -struct v4l2_subdev_mbus_code_enum mbus_code;struct vpfe_subdev_info *sdinfo;struct vpfe_fmt *fmt;int ret =0 ;
@@ -2173,9 +2172,11 @@ vpfe_async_bound(struct v4l2_async_notifier *notifier, vpfe->num_active_fmt =0 ;for (j =0 , i =0 ; (ret != -EINVAL ); ++j) { -memset (&mbus_code,0 ,sizeof (mbus_code)); - mbus_code.index = j; - mbus_code.which =V4L2_SUBDEV_FORMAT_ACTIVE ; +struct v4l2_subdev_mbus_code_enum mbus_code = { + .index = j, + .which =V4L2_SUBDEV_FORMAT_ACTIVE , + }; + ret =v4l2_subdev_call (subdev, pad, enum_mbus_code,NULL , &mbus_code);if (ret)
drivers/media/platform/exynos4-is/fimc-capture.c +4 -3
@@ -763,7 +763,10 @@ static int fimc_pipeline_try_format(struct fimc_ctx *ctx,struct fimc_dev *fimc = ctx->fimc_dev;struct fimc_pipeline *p =to_fimc_pipeline (fimc->vid_cap.ve.pipe);struct v4l2_subdev *sd = p->subdevs[IDX_SENSOR ]; -struct v4l2_subdev_format sfmt; +struct v4l2_subdev_format sfmt = { + .which = set ?V4L2_SUBDEV_FORMAT_ACTIVE + :V4L2_SUBDEV_FORMAT_TRY , + };struct v4l2_mbus_framefmt *mf = &sfmt.format;struct media_entity *me;struct fimc_fmt *ffmt;
@@ -774,9 +777,7 @@ static int fimc_pipeline_try_format(struct fimc_ctx *ctx,if (WARN_ON (!sd || !tfmt))return -EINVAL ; -memset (&sfmt,0 ,sizeof (sfmt)); sfmt.format = *tfmt; - sfmt.which = set ?V4L2_SUBDEV_FORMAT_ACTIVE :V4L2_SUBDEV_FORMAT_TRY ; me =fimc_pipeline_get_head (&sd->entity);
drivers/media/platform/ti-vpe/cal-video.c +4 -4
@@ -814,7 +814,6 @@ static const struct v4l2_file_operations cal_fops = {static int cal_ctx_v4l2_init_formats (struct cal_ctx *ctx) { -struct v4l2_subdev_mbus_code_enum mbus_code;struct v4l2_mbus_framefmt mbus_fmt;const struct cal_format_info *fmtinfo;unsigned int i, j, k;
@@ -829,10 +828,11 @@ static int cal_ctx_v4l2_init_formats(struct cal_ctx *ctx) ctx->num_active_fmt =0 ;for (j =0 , i =0 ; ; ++j) { +struct v4l2_subdev_mbus_code_enum mbus_code = { + .index = j, + .which =V4L2_SUBDEV_FORMAT_ACTIVE , + }; -memset (&mbus_code,0 ,sizeof (mbus_code)); - mbus_code.index = j; - mbus_code.which =V4L2_SUBDEV_FORMAT_ACTIVE ; ret =v4l2_subdev_call (ctx->phy->source, pad, enum_mbus_code,NULL , &mbus_code);if (ret == -EINVAL )
drivers/media/platform/vsp1/vsp1_drm.c +9 -9
@@ -66,7 +66,9 @@ static int vsp1_du_insert_uif(struct vsp1_device *vsp1, struct vsp1_entity *prev, unsigned int prev_pad, struct vsp1_entity *next, unsigned int next_pad) { - struct v4l2_subdev_format format; + struct v4l2_subdev_format format = { + .which =V4L2_SUBDEV_FORMAT_ACTIVE , + };int ret;if (!uif) {
@@ -82,8 +84,6 @@ static int vsp1_du_insert_uif(struct vsp1_device *vsp1, prev->sink = uif; prev->sink_pad =UIF_PAD_SINK ; -memset (&format,0 ,sizeof (format)); - format.which =V4L2_SUBDEV_FORMAT_ACTIVE ; format.pad = prev_pad; ret =v4l2_subdev_call (&prev->subdev, pad, get_fmt,NULL , &format);
@@ -118,8 +118,12 @@ static int vsp1_du_pipeline_setup_rpf(struct vsp1_device *vsp1,struct vsp1_entity *uif, unsigned int brx_input) { - struct v4l2_subdev_selection sel; -struct v4l2_subdev_format format; + struct v4l2_subdev_selection sel = { + .which =V4L2_SUBDEV_FORMAT_ACTIVE , + }; +struct v4l2_subdev_format format = { + .which =V4L2_SUBDEV_FORMAT_ACTIVE , + };const struct v4l2_rect *crop;int ret;
@@ -129,8 +133,6 @@ static int vsp1_du_pipeline_setup_rpf(struct vsp1_device *vsp1,*/ crop = &vsp1->drm->inputs[rpf->entity.index].crop; -memset (&format,0 ,sizeof (format)); - format.which =V4L2_SUBDEV_FORMAT_ACTIVE ; format.pad =RWPF_PAD_SINK ; format.format.width = crop->width + crop->left; format.format.height = crop->height + crop->top;
@@ -147,8 +149,6 @@ static int vsp1_du_pipeline_setup_rpf(struct vsp1_device *vsp1, __func__, format.format.width, format.format.height, format.format.code, rpf->entity.index); -memset (&sel,0 ,sizeof (sel)); - sel.which =V4L2_SUBDEV_FORMAT_ACTIVE ; sel.pad =RWPF_PAD_SINK ; sel.target =V4L2_SEL_TGT_CROP ; sel.r = *crop;
drivers/media/platform/vsp1/vsp1_entity.c +5 -6
@@ -184,15 +184,14 @@ vsp1_entity_get_pad_selection(struct vsp1_entity *entity,int vsp1_entity_init_cfg (struct v4l2_subdev *subdev,struct v4l2_subdev_state *sd_state) { -struct v4l2_subdev_format format;unsigned int pad;for (pad =0 ; pad < subdev->entity.num_pads -1 ; ++pad) { -memset (&format,0 ,sizeof (format)); - - format.pad = pad; - format.which = sd_state ?V4L2_SUBDEV_FORMAT_TRY - :V4L2_SUBDEV_FORMAT_ACTIVE ; +struct v4l2_subdev_format format = { + .pad = pad, + .which = sd_state ?V4L2_SUBDEV_FORMAT_TRY + :V4L2_SUBDEV_FORMAT_ACTIVE , + };v4l2_subdev_call (subdev, pad, set_fmt, sd_state, &format); }
drivers/media/usb/dvb-usb/cxusb-analog.c +7 -7
@@ -1014,7 +1014,10 @@ static int cxusb_medion_try_s_fmt_vid_cap(struct file *file, {struct dvb_usb_device *dvbdev =video_drvdata (file);struct cxusb_medion_dev *cxdev = dvbdev->priv; -struct v4l2_subdev_format subfmt; +struct v4l2_subdev_format subfmt = { + .which = isset ?V4L2_SUBDEV_FORMAT_ACTIVE : +V4L2_SUBDEV_FORMAT_TRY , + };u32 field;int ret;
@@ -1024,9 +1027,6 @@ static int cxusb_medion_try_s_fmt_vid_cap(struct file *file, field =vb2_start_streaming_called (&cxdev->videoqueue) ? cxdev->field_order :cxusb_medion_field_order (cxdev); -memset (&subfmt,0 ,sizeof (subfmt)); - subfmt.which = isset ?V4L2_SUBDEV_FORMAT_ACTIVE : -V4L2_SUBDEV_FORMAT_TRY ; subfmt.format.width = f->fmt.pix.width & ~1 ; subfmt.format.height = f->fmt.pix.height & ~1 ; subfmt.format.code =MEDIA_BUS_FMT_FIXED ;
@@ -1464,7 +1464,9 @@ int cxusb_medion_analog_init(struct dvb_usb_device *dvbdev) .buf = tuner_analog_msg_data, .len = sizeof(tuner_analog_msg_data) }; -struct v4l2_subdev_format subfmt; +struct v4l2_subdev_format subfmt = { + .which =V4L2_SUBDEV_FORMAT_ACTIVE , + };int ret;/* switch tuner to analog mode so IF demod will become accessible */
@@ -1507,8 +1509,6 @@ int cxusb_medion_analog_init(struct dvb_usb_device *dvbdev)v4l2_subdev_call (cxdev->tuner, video, s_std, cxdev->norm);v4l2_subdev_call (cxdev->cx25840, video, s_std, cxdev->norm); -memset (&subfmt,0 ,sizeof (subfmt)); - subfmt.which =V4L2_SUBDEV_FORMAT_ACTIVE ; subfmt.format.width = cxdev->width; subfmt.format.height = cxdev->height; subfmt.format.code =MEDIA_BUS_FMT_FIXED ;
drivers/memstick/host/r592.c +1 -1
@@ -829,7 +829,7 @@ static void r592_remove(struct pci_dev *pdev)/* Stop the processing thread. That ensures that we won't take any more requests */ kthread_stop (dev->io_thread); - +del_timer_sync (&dev->detect_timer);r592_enable_device (dev, false);while (!error && dev->req) {
drivers/message/fusion/mptlan.c +2 -0
@@ -1427,7 +1427,9 @@ mptlan_remove(struct pci_dev *pdev) {MPT_ADAPTER *ioc =pci_get_drvdata (pdev);struct net_device *dev = ioc->netdev; +struct mpt_lan_priv *priv =netdev_priv (dev); +cancel_delayed_work_sync (&priv->post_buckets_task);if (dev !=NULL ) {unregister_netdev (dev);free_netdev (dev);
drivers/mfd/dln2.c +1 -0
@@ -836,6 +836,7 @@ static int dln2_probe(struct usb_interface *interface,dln2_stop_rx_urbs (dln2); out_free: +usb_put_dev (dln2->usb_dev);dln2_free (dln2);return ret;
drivers/net/can/kvaser_pciefd.c +29 -22
145 lines not on this page · raw message
drivers/net/dsa/mv88e6xxx/port.h +1 -1
@@ -267,7 +267,7 @@/* Offset 0x10: Extended Port Control Command */ #define MV88E6393X_PORT_EPC_CMD 0x10#define MV88E6393X_PORT_EPC_CMD_BUSY 0x8000 -#define MV88E6393X_PORT_EPC_CMD_WRITE 0x0300 +#define MV88E6393X_PORT_EPC_CMD_WRITE 0x3000#define MV88E6393X_PORT_EPC_INDEX_PORT_ETYPE 0x02/* Offset 0x11: Extended Port Control Data */
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c +1 -1
@@ -2709,7 +2709,7 @@ static int bnxt_get_nvram_directory(struct net_device *dev, u32 len, u8 *data)if (rc)return rc; - buflen = dir_entries * entry_length; + buflen =mul_u32_u32 (dir_entries, entry_length); buf =hwrm_req_dma_slice (bp, req, buflen, &dma_handle);if (!buf) {hwrm_req_drop (bp, req);
drivers/net/ethernet/broadcom/genet/bcmgenet.c +5 -4
@@ -3401,7 +3401,7 @@ static int bcmgenet_open(struct net_device *dev)return ret; } -static void bcmgenet_netif_stop (struct net_device *dev) +static void bcmgenet_netif_stop (struct net_device *dev,bool stop_phy) {struct bcmgenet_priv *priv =netdev_priv (dev);
@@ -3416,7 +3416,8 @@ static void bcmgenet_netif_stop(struct net_device *dev)/* Disable MAC transmit. TX DMA disabled must be done before this */ umac_enable_set (priv,CMD_TX_EN , false); -phy_stop (dev->phydev); +if (stop_phy) +phy_stop (dev->phydev);bcmgenet_disable_rx_napi (priv);bcmgenet_intr_disable (priv);
@@ -3442,7 +3443,7 @@ static int bcmgenet_close(struct net_device *dev)netif_dbg (priv, ifdown, dev,"bcmgenet_close\n" ); -bcmgenet_netif_stop (dev); +bcmgenet_netif_stop (dev, false);/* Really kill the PHY state machine and disconnect from it */ phy_disconnect (dev->phydev);
@@ -4242,7 +4243,7 @@ static int bcmgenet_suspend(struct device *d)netif_device_detach (dev); -bcmgenet_netif_stop (dev); +bcmgenet_netif_stop (dev, true);if (!device_may_wakeup (d))phy_suspend (dev->phydev);
drivers/net/ethernet/freescale/fec_main.c +11 -4
@@ -4054,9 +4054,11 @@ fec_drv_remove(struct platform_device *pdev)struct device_node *np = pdev->dev.of_node;int ret; - ret =pm_runtime_resume_and_get (&pdev->dev); + ret =pm_runtime_get_sync (&pdev->dev);if (ret <0 ) -return ret; +dev_err (&pdev->dev, +"Failed to resume device in remove callback (%pe)\n" , +ERR_PTR (ret));cancel_work_sync (&fep->tx_timeout_work);fec_ptp_stop (pdev);
@@ -4069,8 +4071,13 @@ fec_drv_remove(struct platform_device *pdev)of_phy_deregister_fixed_link (np);of_node_put (fep->phy_node); -clk_disable_unprepare (fep->clk_ahb); -clk_disable_unprepare (fep->clk_ipg); +/* After pm_runtime_get_sync() failed, the clks are still off, so skip +* disabling them again. +*/ +if (ret >=0 ) { +clk_disable_unprepare (fep->clk_ahb); +clk_disable_unprepare (fep->clk_ipg); + }pm_runtime_put_noidle (&pdev->dev);pm_runtime_disable (&pdev->dev);
drivers/net/ethernet/google/gve/gve_main.c +0 -13
@@ -233,19 +233,6 @@ static int gve_napi_poll_dqo(struct napi_struct *napi, int budget)bool reschedule = false;int work_done =0 ; -/* Clear PCI MSI-X Pending Bit Array (PBA) -* -* This bit is set if an interrupt event occurs while the vector is -* masked. If this bit is set and we reenable the interrupt, it will -* fire again. Since we're just about to poll the queue state, we don't -* need it to fire again. -* -* Under high softirq load, it's possible that the interrupt condition -* is triggered twice before we got the chance to process it. -*/ -gve_write_irq_doorbell_dqo (priv, block, -GVE_ITR_NO_UPDATE_DQO |GVE_ITR_CLEAR_PBA_BIT_DQO ); -if (block->tx) reschedule |=gve_tx_poll_dqo (block,/*do_clean=*/ true);
drivers/net/ethernet/hisilicon/hns3/hns3_debugfs.c +1 -1
@@ -123,7 +123,7 @@ static struct hns3_dbg_cmd_info hns3_dbg_cmd[] = { .name = "tx_bd_queue", .cmd = HNAE3_DBG_CMD_TX_BD, .dentry = HNS3_DBG_DENTRY_TX_BD, - .buf_len = HNS3_DBG_READ_LEN_4MB, + .buf_len = HNS3_DBG_READ_LEN_5MB, .init = hns3_dbg_bd_file_init, }, {
drivers/net/ethernet/hisilicon/hns3/hns3_debugfs.h +1 -0
@@ -8,6 +8,7 @@#define HNS3_DBG_READ_LEN_128KB 0x20000#define HNS3_DBG_READ_LEN_1MB 0x100000#define HNS3_DBG_READ_LEN_4MB 0x400000 +#define HNS3_DBG_READ_LEN_5MB 0x500000#define HNS3_DBG_WRITE_LEN 1024#define HNS3_DBG_DATA_STR_LEN 32
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c +9 -6
@@ -8134,12 +8134,15 @@ static void hclge_ae_stop(struct hnae3_handle *handle)/* If it is not PF reset or FLR, the firmware will disable the MAC, * so it only need to stop phy here. */ -if (test_bit (HCLGE_STATE_RST_HANDLING , &hdev->state) && - hdev->reset_type !=HNAE3_FUNC_RESET && - hdev->reset_type !=HNAE3_FLR_RESET ) { -hclge_mac_stop_phy (hdev); -hclge_update_link_status (hdev); -return ; +if (test_bit (HCLGE_STATE_RST_HANDLING , &hdev->state)) { +hclge_pfc_pause_en_cfg (hdev,HCLGE_PFC_TX_RX_DISABLE , +HCLGE_PFC_DISABLE ); +if (hdev->reset_type !=HNAE3_FUNC_RESET && + hdev->reset_type !=HNAE3_FLR_RESET ) { +hclge_mac_stop_phy (hdev); +hclge_update_link_status (hdev); +return ; + } }hclge_reset_tqp (handle);
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c +2 -2
@@ -171,8 +171,8 @@ int hclge_mac_pause_en_cfg(struct hclge_dev *hdev, bool tx, bool rx)return hclge_cmd_send (&hdev->hw, &desc,1 ); } -static int hclge_pfc_pause_en_cfg (struct hclge_dev *hdev,u8 tx_rx_bitmap, -u8 pfc_bitmap) +int hclge_pfc_pause_en_cfg (struct hclge_dev *hdev,u8 tx_rx_bitmap, +u8 pfc_bitmap) {struct hclge_desc desc;struct hclge_pfc_en_cmd *pfc = (struct hclge_pfc_en_cmd *)desc.data;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.h +5 -0
@@ -155,6 +155,9 @@ struct hclge_bp_to_qs_map_cmd {u32 rsvd1; }; +#define HCLGE_PFC_DISABLE 0 +#define HCLGE_PFC_TX_RX_DISABLE 0 +struct hclge_pfc_en_cmd {u8 tx_rx_en_bitmap;u8 pri_en_bitmap;
@@ -226,6 +229,8 @@ void hclge_tm_schd_info_update(struct hclge_dev *hdev, u8 num_tc);void hclge_tm_pfc_info_update (struct hclge_dev *hdev);int hclge_tm_dwrr_cfg (struct hclge_dev *hdev);int hclge_tm_init_hw (struct hclge_dev *hdev,bool init); +int hclge_pfc_pause_en_cfg (struct hclge_dev *hdev,u8 tx_rx_bitmap, +u8 pfc_bitmap);int hclge_mac_pause_en_cfg (struct hclge_dev *hdev,bool tx,bool rx);int hclge_pause_addr_cfg (struct hclge_dev *hdev,const u8 *mac_addr);void hclge_pfc_rx_stats_get (struct hclge_dev *hdev,u64 *stats);
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c +4 -1
@@ -1885,7 +1885,10 @@ static int hclgevf_reset_wait(struct hclgevf_dev *hdev)* might happen in case reset assertion was made by PF. Yes, this also * means we might end up waiting bit more even for VF reset. */ -msleep (5000 ); +if (hdev->reset_type ==HNAE3_VF_FULL_RESET ) +msleep (5000 ); +else +msleep (500 );return 0 ; }
drivers/net/ethernet/intel/igb/e1000_mac.c +2 -2
@@ -426,7 +426,7 @@ void igb_mta_set(struct e1000_hw *hw, u32 hash_value)static u32 igb_hash_mc_addr (struct e1000_hw *hw,u8 *mc_addr) {u32 hash_value, hash_mask; -u8 bit_shift =0 ; +u8 bit_shift =1 ;/* Register count multiplied by bits per register */ hash_mask = (hw->mac.mta_reg_count *32 ) -1 ;
@@ -434,7 +434,7 @@ static u32 igb_hash_mc_addr(struct e1000_hw *hw, u8 *mc_addr)/* For a mc_filter_type of 0, bit_shift is the number of left-shifts * where 0xFF would still fall within the hash mask. */ -while (hash_mask >> bit_shift !=0xFF ) +while (hash_mask >> bit_shift !=0xFF && bit_shift <4 ) bit_shift++;/* The portion of the address that is used for the hash table
drivers/net/ethernet/pasemi/pasemi_mac.c +1 -1
@@ -1423,7 +1423,7 @@ static void pasemi_mac_queue_csdesc(const struct sk_buff *skb,write_dma_reg (PAS_DMA_TXCHAN_INCR (txring->chan.chno),2 ); } -static int pasemi_mac_start_tx (struct sk_buff *skb,struct net_device *dev) +static netdev_tx_t pasemi_mac_start_tx (struct sk_buff *skb,struct net_device *dev) {struct pasemi_mac *const mac =netdev_priv (dev);struct pasemi_mac_txring *const txring =tx_ring (mac);
drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c +16 -9
@@ -298,6 +298,11 @@ static void get_arttime(struct mii_bus *mii, int intel_adhoc_addr, *art_time = ns; } +static int stmmac_cross_ts_isr (struct stmmac_priv *priv) +{ +return (readl (priv->ioaddr +GMAC_INT_STATUS ) &GMAC_INT_TSIE ); +} +static int intel_crosststamp (ktime_t *device,struct system_counterval_t *system,void *ctx)
@@ -313,8 +318,6 @@ static int intel_crosststamp(ktime_t *device,u32 num_snapshot;u32 gpio_value;u32 acr_value; -int ret; -u32 v;int i;if (!boot_cpu_has (X86_FEATURE_ART ))
@@ -328,6 +331,8 @@ static int intel_crosststamp(ktime_t *device,if (priv->plat->ext_snapshot_en)return -EBUSY ; + priv->plat->int_snapshot_en =1 ; +mutex_lock (&priv->aux_ts_lock);/* Enable Internal snapshot trigger */ acr_value =readl (ptpaddr +PTP_ACR );
@@ -347,6 +352,7 @@ static int intel_crosststamp(ktime_t *device,break ;default :mutex_unlock (&priv->aux_ts_lock); + priv->plat->int_snapshot_en =0 ;return -EINVAL ; }writel (acr_value, ptpaddr +PTP_ACR );
@@ -368,13 +374,12 @@ static int intel_crosststamp(ktime_t *device, gpio_value |=GMAC_GPO1 ;writel (gpio_value, ioaddr +GMAC_GPIO_STATUS ); -/* Poll for time sync operation done */ - ret =readl_poll_timeout (priv->ioaddr +GMAC_INT_STATUS , v, - (v &GMAC_INT_TSIE ),100 ,10000 ); - -if (ret == -ETIMEDOUT ) { -pr_err ("%s: Wait for time sync operation timeout\n" , __func__); -return ret; +/* Time sync done Indication - Interrupt method */ +if (!wait_event_interruptible_timeout (priv->tstamp_busy_wait, +stmmac_cross_ts_isr (priv), +HZ /100 )) { + priv->plat->int_snapshot_en =0 ; +return -ETIMEDOUT ; } num_snapshot = (readl(ioaddr + GMAC_TIMESTAMP_STATUS) &
@@ -392,6 +397,7 @@ static int intel_crosststamp(ktime_t *device, } system->cycles *= intel_priv->crossts_adj; + priv->plat->int_snapshot_en =0 ;return 0 ; }
@@ -576,6 +582,7 @@ static int intel_mgbe_common_data(struct pci_dev *pdev, plat->has_crossts = true; plat->crosststamp = intel_crosststamp; + plat->int_snapshot_en =0 ;/* Setup MSI vector offset specific to Intel mGbE controller */ plat->msi_mac_vec =29 ;
drivers/net/ethernet/stmicro/stmmac/dwmac4.h +3 -1
@@ -150,7 +150,8 @@#define GMAC_PCS_IRQ_DEFAULT (GMAC_INT_RGSMIIS | GMAC_INT_PCS_LINK | \ GMAC_INT_PCS_ANE) -#define GMAC_INT_DEFAULT_ENABLE (GMAC_INT_PMT_EN | GMAC_INT_LPI_EN) +#define GMAC_INT_DEFAULT_ENABLE (GMAC_INT_PMT_EN | GMAC_INT_LPI_EN | \ + GMAC_INT_TSIE)enum dwmac4_irq_status { time_stamp_irq =0x00001000 ,
@@ -180,6 +181,7 @@ enum power_event {#define GMAC4_LPI_CTRL_STATUS 0xd0#define GMAC4_LPI_TIMER_CTRL 0xd4#define GMAC4_LPI_ENTRY_TIMER 0xd8 +#define GMAC4_MAC_ONEUS_TIC_COUNTER 0xdc/* LPI control and status defines */ #define GMAC4_LPI_CTRL_STATUS_LPITCSE BIT(21)/* LPI Tx Clock Stop Enable */
drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c +9 -0
@@ -23,8 +23,10 @@static void dwmac4_core_init (struct mac_device_info *hw,struct net_device *dev) { +struct stmmac_priv *priv =netdev_priv (dev);void __iomem *ioaddr = hw->pcsr;u32 value =readl (ioaddr +GMAC_CONFIG ); +u32 clk_rate; value |=GMAC_CORE_INIT ;
@@ -47,6 +49,10 @@ static void dwmac4_core_init(struct mac_device_info *hw,writel (value, ioaddr +GMAC_CONFIG ); +/* Configure LPI 1us counter to number of CSR clock ticks in 1us - 1 */ + clk_rate =clk_get_rate (priv->plat->stmmac_clk); +writel ((clk_rate /1000000 ) -1 , ioaddr +GMAC4_MAC_ONEUS_TIC_COUNTER ); +/* Enable GMAC interrupts */ value =GMAC_INT_DEFAULT_ENABLE ;
@@ -58,6 +64,9 @@ static void dwmac4_core_init(struct mac_device_info *hw, value |=GMAC_INT_FPE_EN ;writel (value, ioaddr +GMAC_INT_EN ); + +if (GMAC_INT_DEFAULT_ENABLE &GMAC_INT_TSIE ) +init_waitqueue_head (&priv->tstamp_busy_wait); } static void dwmac4_rx_queue_enable(struct mac_device_info *hw,
drivers/net/ethernet/stmicro/stmmac/stmmac.h +1 -0
@@ -265,6 +265,7 @@ struct stmmac_priv {spinlock_t ptp_lock;/* Protects auxiliary snapshot registers from concurrent access. */ struct mutex aux_ts_lock; +wait_queue_head_t tstamp_busy_wait;void __iomem *mmcaddr;void __iomem *ptpaddr;
drivers/net/ethernet/stmicro/stmmac/stmmac_hwtstamp.c +5 -0
@@ -180,6 +180,11 @@ static void timestamp_interrupt(struct stmmac_priv *priv)u64 ptp_time;int i; +if (priv->plat->int_snapshot_en) { +wake_up (&priv->tstamp_busy_wait); +return ; + } + tsync_int =readl (priv->ioaddr +GMAC_INT_STATUS ) &GMAC_INT_TSIE ;if (!tsync_int)
drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c +1 -11
@@ -175,11 +175,10 @@ static int stmmac_enable(struct ptp_clock_info *ptp,struct stmmac_priv *priv = container_of(ptp, struct stmmac_priv, ptp_clock_ops);void __iomem *ptpaddr = priv->ptpaddr; -void __iomem *ioaddr = priv->hw->pcsr;struct stmmac_pps_cfg *cfg; -u32 intr_value, acr_value;int ret = -EOPNOTSUPP ;unsigned long flags; +u32 acr_value;switch (rq->type) {case PTP_CLK_REQ_PEROUT :
@@ -213,19 +212,10 @@ static int stmmac_enable(struct ptp_clock_info *ptp,netdev_dbg (priv->dev,"Auxiliary Snapshot %d enabled.\n" , priv->plat->ext_snapshot_num >>PTP_ACR_ATSEN_SHIFT ); -/* Enable Timestamp Interrupt */ - intr_value =readl (ioaddr +GMAC_INT_EN ); - intr_value |=GMAC_INT_TSIE ; -writel (intr_value, ioaddr +GMAC_INT_EN ); - }else {netdev_dbg (priv->dev,"Auxiliary Snapshot %d disabled.\n" , priv->plat->ext_snapshot_num >>PTP_ACR_ATSEN_SHIFT ); -/* Disable Timestamp Interrupt */ - intr_value =readl (ioaddr +GMAC_INT_EN ); - intr_value &= ~GMAC_INT_TSIE ; -writel (intr_value, ioaddr +GMAC_INT_EN ); }writel (acr_value, ptpaddr +PTP_ACR );mutex_unlock (&priv->aux_ts_lock);
drivers/net/ethernet/sun/cassini.c +2 -0
@@ -5123,6 +5123,8 @@ static int cas_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)cas_shutdown (cp);mutex_unlock (&cp->pm_mutex); +vfree (cp->fw_data); +pci_iounmap (pdev, cp->regs);
drivers/net/ipvlan/ipvlan_core.c +6 -0
@@ -437,6 +437,9 @@ static int ipvlan_process_v4_outbound(struct sk_buff *skb) goto err; }skb_dst_set (skb, &rt->dst); + +memset (IPCB (skb),0 ,sizeof (*IPCB (skb))); + err =ip_local_out (net, skb->sk, skb);if (unlikely (net_xmit_eval (err))) dev->stats.tx_errors++;
@@ -475,6 +478,9 @@ static int ipvlan_process_v6_outbound(struct sk_buff *skb) goto err; }skb_dst_set (skb, dst); + +memset (IP6CB (skb),0 ,sizeof (*IP6CB (skb))); + err =ip6_local_out (net, skb->sk, skb);if (unlikely (net_xmit_eval (err))) dev->stats.tx_errors++;
drivers/net/mdio/mdio-mvusb.c +10 -1
@@ -73,6 +73,7 @@ static int mvusb_mdio_probe(struct usb_interface *interface,struct device *dev = &interface->dev;struct mvusb_mdio *mvusb;struct mii_bus *mdio; +int ret; mdio =devm_mdiobus_alloc_size (dev,sizeof (*mvusb));if (!mdio)
@@ -93,7 +94,15 @@ static int mvusb_mdio_probe(struct usb_interface *interface, mdio->write = mvusb_mdio_write;usb_set_intfdata (interface, mvusb); -return of_mdiobus_register (mdio, dev->of_node); + ret =of_mdiobus_register (mdio, dev->of_node); +if (ret) + goto put_dev; + +return 0 ; + +put_dev: +usb_put_dev (mvusb->udev); +return ret; }static void mvusb_mdio_disconnect (struct usb_interface *interface)
drivers/net/phy/dp83867.c +21 -1
@@ -41,6 +41,7 @@#define DP83867_STRAP_STS1 0x006E#define DP83867_STRAP_STS2 0x006f#define DP83867_RGMIIDCTL 0x0086 +#define DP83867_DSP_FFE_CFG 0x012c#define DP83867_RXFCFG 0x0134#define DP83867_RXFPMD1 0x0136#define DP83867_RXFPMD2 0x0137
@@ -841,8 +842,27 @@ static int dp83867_phy_reset(struct phy_device *phydev)usleep_range (10 ,20 ); -return phy_modify (phydev,MII_DP83867_PHYCTRL , + err =phy_modify (phydev,MII_DP83867_PHYCTRL ,DP83867_PHYCR_FORCE_LINK_GOOD ,0 ); +if (err <0 ) +return err; + +/* Configure the DSP Feedforward Equalizer Configuration register to +* improve short cable (< 1 meter) performance. This will not affect +* long cable performance. +*/ + err =phy_write_mmd (phydev,DP83867_DEVADDR ,DP83867_DSP_FFE_CFG , +0x0e81 ); +if (err <0 ) +return err; + + err =phy_write (phydev,DP83867_CTRL ,DP83867_SW_RESTART ); +if (err <0 ) +return err; + +usleep_range (10 ,20 ); + +return 0 ; }static void dp83867_link_change_notify (struct phy_device *phydev)
drivers/net/tap.c +2 -2
@@ -714,7 +714,7 @@ static ssize_t tap_get_user(struct tap_queue *q, void *msg_control,/* Move network header to the right position for VLAN tagged packets */ if (eth_type_vlan (skb->protocol) && -__vlan_get_protocol (skb, skb->protocol, &depth) !=0 ) +vlan_get_protocol_and_depth (skb, skb->protocol, &depth) !=0 )skb_set_network_header (skb, depth);rcu_read_lock ();
@@ -1163,7 +1163,7 @@ static int tap_get_user_xdp(struct tap_queue *q, struct xdp_buff *xdp)/* Move network header to the right position for VLAN tagged packets */ if (eth_type_vlan (skb->protocol) && -__vlan_get_protocol (skb, skb->protocol, &depth) !=0 ) +vlan_get_protocol_and_depth (skb, skb->protocol, &depth) !=0 )skb_set_network_header (skb, depth);rcu_read_lock ();
drivers/net/virtio_net.c +44 -17
83 lines not on this page · raw message
drivers/net/wireless/ath/ath.h +7 -5
@@ -96,11 +96,13 @@ struct ath_keyval {u8 kv_type;u8 kv_pad;u16 kv_len; -u8 kv_val[16 ];/* TK */ -u8 kv_mic[8 ];/* Michael MIC key */ -u8 kv_txmic[8 ];/* Michael MIC TX key (used only if the hardware -* supports both MIC keys in the same key cache entry; -* in that case, kv_mic is the RX key) */ +struct_group (kv_values, + u8 kv_val[16]; /* TK */ +u8 kv_mic[8 ];/* Michael MIC key */ +u8 kv_txmic[8 ];/* Michael MIC TX key (used only if the hardware +* supports both MIC keys in the same key cache entry; +* in that case, kv_mic is the RX key) */ + ); };enum ath_cipher {
drivers/net/wireless/ath/ath11k/dp_rx.c +6 -3
@@ -354,10 +354,10 @@ int ath11k_dp_rxbufs_replenish(struct ath11k_base *ab, int mac_id, goto fail_free_skb;spin_lock_bh (&rx_ring->idr_lock); - buf_id =idr_alloc (&rx_ring->bufs_idr, skb,0 , - rx_ring->bufs_max *3 ,GFP_ATOMIC ); + buf_id =idr_alloc (&rx_ring->bufs_idr, skb,1 , + (rx_ring->bufs_max *3 ) +1 ,GFP_ATOMIC );spin_unlock_bh (&rx_ring->idr_lock); -if (buf_id <0 ) +if (buf_id <=0 ) goto fail_dma_unmap; desc =ath11k_hal_srng_src_get_next_entry (ab, srng);
@@ -2602,6 +2602,9 @@ int ath11k_dp_process_rx(struct ath11k_base *ab, int ring_id, cookie); mac_id =FIELD_GET (DP_RXDMA_BUF_COOKIE_PDEV_ID , cookie); +if (unlikely (buf_id ==0 )) +continue ; + ar = ab->pdevs[mac_id].ar; rx_ring = &ar->dp.rx_refill_buf_ring;spin_lock_bh (&rx_ring->idr_lock);
drivers/net/wireless/ath/key.c +1 -1
@@ -503,7 +503,7 @@ int ath_key_config(struct ath_common *common, hk.kv_len = key->keylen;if (key->keylen) -memcpy (hk.kv_val, key->key, key->keylen); +memcpy (&hk.kv_values, key->key, key->keylen);if (!(key->flags &IEEE80211_KEY_FLAG_PAIRWISE )) {switch (vif->type) {
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +7 -6
@@ -1350,13 +1350,14 @@ static int brcmf_set_pmk(struct brcmf_if *ifp, const u8 *pmk_data, u16 pmk_len) {struct brcmf_pub *drvr = ifp->drvr;struct brcmf_wsec_pmk_le pmk; -int i, err; +int err; + +memset (&pmk,0 ,sizeof (pmk)); -/* convert to firmware key format */ - pmk.key_len =cpu_to_le16 (pmk_len <<1 ); - pmk.flags =cpu_to_le16 (BRCMF_WSEC_PASSPHRASE ); -for (i =0 ; i < pmk_len; i++) -snprintf (&pmk.key[2 * i],3 ,"%02x" , pmk_data[i]); +/* pass pmk directly */ + pmk.key_len =cpu_to_le16 (pmk_len); + pmk.flags =cpu_to_le16 (0 ); +memcpy (pmk.key, pmk_data, pmk_len);/* store psk in firmware */ err = brcmf_fil_cmd_data_set(ifp, BRCMF_C_SET_WSEC_PMK,
drivers/net/wireless/intel/iwlwifi/dvm/sta.c +4 -1
@@ -1086,6 +1086,7 @@ static int iwlagn_send_sta_key(struct iwl_priv *priv, {__le16 key_flags;struct iwl_addsta_cmd sta_cmd; +size_t to_copy;int i;spin_lock_bh (&priv->sta_lock);
@@ -1105,7 +1106,9 @@ static int iwlagn_send_sta_key(struct iwl_priv *priv, sta_cmd.key.tkip_rx_tsc_byte2 = tkip_iv32;for (i =0 ; i <5 ; i++) sta_cmd.key.tkip_rx_ttak[i] =cpu_to_le16 (tkip_p1k[i]); -memcpy (sta_cmd.key.key, keyconf->key, keyconf->keylen); +/* keyconf may contain MIC rx/tx keys which iwl does not use */ + to_copy =min_t (size_t,sizeof (sta_cmd.key.key), keyconf->keylen); +memcpy (sta_cmd.key.key, keyconf->key, to_copy);break ;case WLAN_CIPHER_SUITE_WEP104 : key_flags |=STA_KEY_FLG_KEY_SIZE_MSK ;
drivers/net/wireless/intel/iwlwifi/mvm/nvm.c +10 -0
@@ -445,6 +445,11 @@ iwl_mvm_update_mcc(struct iwl_mvm *mvm, const char *alpha2,struct iwl_mcc_update_resp *mcc_resp = (void *)pkt->data; n_channels =__le32_to_cpu (mcc_resp->n_channels); +if (iwl_rx_packet_payload_len (pkt) != +struct_size (mcc_resp, channels, n_channels)) { + resp_cp =ERR_PTR (-EINVAL ); + goto exit; + } resp_len =sizeof (struct iwl_mcc_update_resp ) + n_channels *sizeof (__le32); resp_cp =kmemdup (mcc_resp, resp_len,GFP_KERNEL );
@@ -456,6 +461,11 @@ iwl_mvm_update_mcc(struct iwl_mvm *mvm, const char *alpha2,struct iwl_mcc_update_resp_v3 *mcc_resp_v3 = (void *)pkt->data; n_channels =__le32_to_cpu (mcc_resp_v3->n_channels); +if (iwl_rx_packet_payload_len (pkt) != +struct_size (mcc_resp_v3, channels, n_channels)) { + resp_cp =ERR_PTR (-EINVAL ); + goto exit; + } resp_len =sizeof (struct iwl_mcc_update_resp ) + n_channels *sizeof (__le32); resp_cp =kzalloc (resp_len,GFP_KERNEL );
drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c +1 -1
@@ -1907,7 +1907,7 @@ void iwl_mvm_rx_mpdu_mq(struct iwl_mvm *mvm, struct napi_struct *napi,RCU_INIT_POINTER (mvm->csa_tx_blocked_vif,NULL );/* Unblock BCAST / MCAST station */ iwl_mvm_modify_all_sta_disable_tx (mvm, mvmvif, false); -cancel_delayed_work_sync (&mvm->cs_tx_unblock_dwork); +cancel_delayed_work (&mvm->cs_tx_unblock_dwork); } }
drivers/net/wireless/intel/iwlwifi/pcie/drv.c +3 -0
@@ -1380,6 +1380,9 @@ static void iwl_pci_remove(struct pci_dev *pdev) {struct iwl_trans *trans =pci_get_drvdata (pdev); +if (!trans) +return ; +iwl_drv_stop (trans->drv);iwl_trans_pcie_free (trans);
drivers/net/wireless/intel/iwlwifi/pcie/trans.c +1 -1
@@ -2778,7 +2778,7 @@ static bool iwl_write_to_user_buf(char __user *user_buf, ssize_t count, void *buf, ssize_t *size, ssize_t *bytes_copied) { - int buf_size_left = count - *bytes_copied; + ssize_t buf_size_left = count - *bytes_copied; buf_size_left = buf_size_left - (buf_size_left %sizeof (u32));if (*size > buf_size_left)
drivers/parisc/power.c +10 -6
@@ -37,7 +37,6 @@#include <linux/module.h> #include <linux/init.h> #include <linux/kernel.h> -#include <linux/notifier.h> #include <linux/panic_notifier.h> #include <linux/reboot.h> #include <linux/sched/signal.h>
@@ -175,16 +174,21 @@ static void powerfail_interrupt(int code, void *x) -/* parisc_panic_event() is called by the panic handler. -* As soon as a panic occurs, our tasklets above will not be -* executed any longer. This function then re-enables the -* soft-power switch and allows the user to switch off the system +/* +* parisc_panic_event() is called by the panic handler. +* +* As soon as a panic occurs, our tasklets above will not +* be executed any longer. This function then re-enables +* the soft-power switch and allows the user to switch off +* the system. We rely in pdc_soft_power_button_panic() +* since this version spin_trylocks (instead of regular +* spinlock), preventing deadlocks on panic path. */ static int parisc_panic_event (struct notifier_block *this,unsigned long event,void *ptr) {/* re-enable the soft-power switch */ -pdc_soft_power_button (0 ); +pdc_soft_power_button_panic (0 );return NOTIFY_DONE ; }
drivers/phy/st/phy-miphy28lp.c +10 -32
80 lines not on this page · raw message
drivers/platform/x86/Kconfig +1 -41
54 lines not on this page · raw message
drivers/platform/x86/Makefile +1 -3
@@ -52,9 +52,7 @@ obj-$(CONFIG_FUJITSU_TABLET) += fujitsu-tablet.o obj-$(CONFIG_GPD_POCKET_FAN) += gpd-pocket-fan.o # Hewlett Packard -obj-$(CONFIG_HP_ACCEL) += hp_accel.o -obj-$(CONFIG_HP_WMI) += hp-wmi.o -obj-$(CONFIG_TC1100_WMI) += tc1100-wmi.o +obj-$(CONFIG_X86_PLATFORM_DRIVERS_HP) += hp/ # Hewlett Packard Enterprise obj-$(CONFIG_UV_SYSFS) += uv_sysfs.o
drivers/platform/x86/hp-wmi.c deleted +0 -1135
363 lines not on this page · raw message
drivers/platform/x86/hp/Kconfig new file +63 -0
63 lines not on this page · raw message
drivers/platform/x86/hp/Makefile new file +10 -0
Lines of this file are not shown. View the raw message.
drivers/platform/x86/hp/hp-wmi.c new file +1138 -0
1,138 lines not on this page · raw message
drivers/platform/x86/hp/hp_accel.c new file +405 -0
405 lines not on this page · raw message
drivers/platform/x86/hp/tc1100-wmi.c new file +265 -0
265 lines not on this page · raw message
drivers/platform/x86/hp_accel.c deleted +0 -405
405 lines not on this page · raw message
drivers/platform/x86/tc1100-wmi.c deleted +0 -265
265 lines not on this page · raw message
drivers/staging/media/imx/imx-media-capture.c +6 -6
Lines of this file are not shown. View the raw message.
drivers/staging/media/imx/imx-media-utils.c +4 -4
Lines of this file are not shown. View the raw message.
drivers/staging/media/omap4iss/iss_video.c +3 -3
Lines of this file are not shown. View the raw message.
drivers/staging/rtl8192e/rtl8192e/rtl_core.c +3 -3
Lines of this file are not shown. View the raw message.
drivers/staging/rtl8192e/rtl8192e/rtl_core.h +0 -5
Lines of this file are not shown. View the raw message.
drivers/usb/dwc3/debugfs.c +109 -0
109 lines not on this page · raw message
drivers/usb/typec/altmodes/displayport.c +4 -0
Lines of this file are not shown. View the raw message.
fs/ext4/mballoc.c +95 -36
131 lines not on this page · raw message
include/trace/trace_events.h +53 -2
55 lines not on this page · raw message
kernel/time/tick-broadcast.c +88 -32
120 lines not on this page · raw message
net/netfilter/nf_conntrack_standalone.c +2 -1
Lines of this file are not shown. View the raw message.
net/sunrpc/svcsock.c +16 -25
41 lines not on this page · raw message
net/sunrpc/xprtrdma/svc_rdma_recvfrom.c +5 -7
Lines of this file are not shown. View the raw message.
net/sunrpc/xprtrdma/svc_rdma_transport.c +1 -1
Lines of this file are not shown. View the raw message.
net/xfrm/xfrm_interface.c +4 -50
54 lines not on this page · raw message
sound/firewire/digi00x/digi00x-stream.c +3 -1
Lines of this file are not shown. View the raw message.
tools/power/cpupower/utils/idle_monitor/mperf_monitor.c +14 -17
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/srv6_end_dt4_l3vpn_test.sh +11 -6
Lines of this file are not shown. View the raw message.
The rest of this diff is not shown. View the raw message.
Part of the diff is not shown here. View the raw message.