Skip to contentSkip to conversation

Linux 5.15.113

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages May 24, 2023 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'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

author maintainer
#1 lore raw
Documentation/devicetree/bindings/display/msm/dsi-controller-main.yaml +12 -0
index 283a12cd3e14..4b2cd556483c 100644
@@ -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
index 2d3d2155c744..95374d582574 100644
@@ -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
index 774c2de28fa8..19f8af8266bb 100644
@@ -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
index 1dbe98948ce3..9627c4cf3e41 100644
@@ -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
index b22d3c8db3b3..cd66bb16c739 100644
@@ -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
index b388d8176588..2f48e0a80d9c 100644
@@ -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
index 8e5a906df917..5385e0fe9842 100644
@@ -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
index 038ce8d9061d..8920862ffd79 100644
@@ -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
index feb24313e2e3..1d9d7efacbc7 100644
@@ -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
index 8322ca86d5ac..33a9102b7cab 100644
@@ -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
index 3615e1a6efd8..b91155ea9c34 100644
@@ -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
index fbe2ba05c82a..1c862940cc5b 100644
@@ -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
index 4e583a8cb562..472418a0e0ca 100644
@@ -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
index f2469d3435ca..0b517a83c449 100644
@@ -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
index ade8b839e445..394355f12d4e 100644
@@ -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
index 033b0f64f2b9..686ec6bcdef3 100644
@@ -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
index d707aa63e944..2a4cc5d8c2d4 100644
@@ -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
index e53164c82808..dfb463ee7ca1 100644
@@ -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
index d246a39a6b4f..cc57ababc882 100644
@@ -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
index 1e1a51510e83..f9040bd61081 100644
@@ -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
index 1d86fd5610c0..228f098e5d88 100644
@@ -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
index d9fd4ec60588..670d5ab9d998 100644
@@ -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
index 32da557b960f..82b7f0bb4409 100644
@@ -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
index 19fb1d93a4f0..0c806e99e869 100644
@@ -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
index 74ea3c26dead..1a5ae781b56c 100644
@@ -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
index 64a15b636e8d..6cc125857808 100644
@@ -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
index 2e816f232e85..ac0c221f8aa1 100644
@@ -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
index ac83c1159815..d90dac77c26f 100644
@@ -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
index 284f5610dc35..916e2a4756c0 100644
@@ -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
index c8156ed4b7fb..93081e82c6d7 100644
@@ -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
index d7e4a39a904e..0eaaaa94563a 100644
@@ -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
index 84e5f4a5d26b..4ab78880af82 100644
@@ -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
index 9ef24ced6586..8df5dfd6ad17 100644
@@ -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
index 6965afa81aad..32d3e14c98f7 100644
@@ -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
index 15e38ad7aefb..38d37345c216 100644
@@ -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
index 0ea320c1092b..f2f76a0897a8 100644
@@ -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
index 203d27d198b8..3f8b24a57014 100644
@@ -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
index 2b6388da545e..d29773a799b4 100644
@@ -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
index 98cb594cd9a6..a61c9ede4338 100644
@@ -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
index dbfabd229a7c..a7af9b56e338 100644
@@ -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
index e7da4a47ce52..bcdb2cbdda97 100644
@@ -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
index c998960495b4..50453d38400c 100644
@@ -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
index 27ac818b0354..723940e84161 100644
@@ -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
index dc88232d9af8..53d9202ff9a7 100644
@@ -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
index a07b18f2034e..8019cdf5dbae 100644
@@ -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
index a380e0920a21..b01499f81069 100644
@@ -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
index 77bae1468551..a71814e2772d 100644
@@ -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
index fe94944d0531..0d1120abc647 100644
@@ -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
index 1c9cb9e05fdf..c1ce93efc655 100644
@@ -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
index 7ff4024003f4..0b3cf01e9537 100644
@@ -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
index 3e936a2ca36c..d87177d04e92 100644
@@ -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
index 06f74d410973..706d48601bf2 100644
@@ -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
index 823c15facd1b..b40926270c14 100644
@@ -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
index e93183ddd797..deba5224cb8d 100644
@@ -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
index 1d35d147552d..42bfc46842b8 100644
@@ -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
index 3261cac762de..ec3ee356078d 100644
@@ -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
index 852129ea0766..fc65f9e25fda 100644
@@ -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
index 03382b66f800..3e68d534eaca 100644
@@ -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
index bc9812a0a91c..3c9ba116d5af 100644
@@ -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
index 92cd2916e801..9d4f406408c9 100644
@@ -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
index afb30d679a47..c0c96de7a9de 100644
@@ -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
index 49850cf7cfaf..c0ea1b185e1b 100644
@@ -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
index 15ce1a33649e..3158c08a3aa9 100644
@@ -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
index 814f7491ca08..fb0c907cec85 100644
@@ -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
index f4d58fcdba27..bfdc021f4a19 100644
@@ -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
index afc47c9b5ec4..97a6864f60ef 100644
@@ -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
index 5df18cc3ee55..2c5256d7f996 100644
@@ -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
index 3c1ff3313221..bc140e3620d6 100644
@@ -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
index 1277c5c7d099..7be0c7ce9394 100644
@@ -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
index 7e096b2888b9..b223488318ad 100644
@@ -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
index fb9ff4ce9453..c9e88df9e866 100644
@@ -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
index 462ca7ed095a..12c0e60809f4 100644
@@ -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
index cd85a2d076c9..29480314a486 100644
@@ -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
index 05b5371ca036..f03779205ade 100644
@@ -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
index 4538e4fd8189..2c6245b2281c 100644
@@ -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
index 487418ef9b4f..e6221c33572d 100644
@@ -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
index 6472425539e1..21e4df8466c9 100644
@@ -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
index d7fb6302d699..1f5125698e83 100644
@@ -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
index d5eabddfdf51..11e048136ac2 100644
@@ -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
index 783e30451e30..6230dd5e2990 100644
@@ -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
index 854ed2f21d32..663ce0e09c2d 100644
@@ -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
index f083fb9038c3..f02a308a9ffc 100644
@@ -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
index 3c64d33d0133..357abd87d549 100644
@@ -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
index 61b59a804e30..b7b61d4f02ba 100644
@@ -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
index 5a1b01db02e6..b14c54da56ed 100644
@@ -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
index ddc14059b07d..7c3168145e58 100644
@@ -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
index da705fcaf0fc..8a9732b5b965 100644
@@ -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
index efccdd3f3377..49c28c96fdf2 100644
@@ -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
index 3b974388d834..5d324d64c879 100644
@@ -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
index ee325950de9d..04e1f3829e96 100644
@@ -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
index 456776bd8ee6..6f5e5f0230d3 100644
@@ -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
index 2734a771d1f0..5dba9fe23fb1 100644
@@ -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
new file mode 100644
index 000000000000..db1eed4cd7c7

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/remoteproc/stm32_rproc.c +8 -0
index a0fabc3f13dc..aba3df1d1bf5 100644

Lines of this file are not shown. View the raw message.

drivers/s390/cio/device.c +2 -0
index 61cde02b23fe..b21fa57d1a46 100644

Lines of this file are not shown. View the raw message.

drivers/s390/cio/qdio.h +1 -1
index 99c2212dc6a6..a3230c5093b0 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/lpfc/lpfc_debugfs.c +5 -2
index 8e8bbe734e87..560b2504e674 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/storvsc_drv.c +4 -4
index 83a3d9f085d8..c9b1500c2ab8 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/ufs/ufshcd-pci.c +1 -0
index e892b9feffb1..0920530a72d2 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/ufs/ufshcd.c +9 -1
index bc2b16701a11..d00d263705e1 100644

Lines of this file are not shown. View the raw message.

drivers/soundwire/qcom.c +3 -0
index 52d0e4164c6b..2ba0911f5d0c 100644

Lines of this file are not shown. View the raw message.

drivers/spi/spi-imx.c +18 -6
index 2f06f2840d61..f201653931d8 100644

Lines of this file are not shown. View the raw message.

drivers/staging/media/imx/imx-media-capture.c +6 -6
index 93ba09236010..5cc67786b916 100644

Lines of this file are not shown. View the raw message.

drivers/staging/media/imx/imx-media-utils.c +4 -4
index 6f90acf9c725..49ba521dd9ed 100644

Lines of this file are not shown. View the raw message.

drivers/staging/media/omap4iss/iss_video.c +3 -3
index d0da083deed5..801e145ea976 100644

Lines of this file are not shown. View the raw message.

drivers/staging/rtl8192e/rtl8192e/rtl_core.c +3 -3
index 48c696df8d01..52d7dc5b2905 100644

Lines of this file are not shown. View the raw message.

drivers/staging/rtl8192e/rtl8192e/rtl_core.h +0 -5
index 698552a92100..197f1e3d7aca 100644

Lines of this file are not shown. View the raw message.

drivers/target/iscsi/iscsi_target.c +3 -3
index 9c6b98438f98..686a9e5918e2 100644

Lines of this file are not shown. View the raw message.

drivers/thunderbolt/nhi.c +24 -5
index f1e4f39bda2d..0e61c1c70247 100644

Lines of this file are not shown. View the raw message.

drivers/thunderbolt/nhi_regs.h +2 -0
index faef165a919c..6ba295815477 100644

Lines of this file are not shown. View the raw message.

drivers/tty/serial/8250/8250_bcm7271.c +5 -2
index 87ff28a3a94c..f95047160b4d 100644

Lines of this file are not shown. View the raw message.

drivers/tty/serial/8250/8250_core.c +1 -0
index f3bfaa1a794b..1890f342f090 100644

Lines of this file are not shown. View the raw message.

drivers/tty/serial/8250/8250_exar.c +17 -0
index c767636d9bb0..0b1976ceb01f 100644

Lines of this file are not shown. View the raw message.

drivers/tty/serial/8250/8250_pci.c +5 -0
index 8f0dafbab3bf..980ce0b5e5e6 100644

Lines of this file are not shown. View the raw message.

drivers/tty/serial/arc_uart.c +4 -3
index 596217d10d5c..4d0e992f7844 100644

Lines of this file are not shown. View the raw message.

drivers/tty/serial/qcom_geni_serial.c +4 -5
index ce1c81731a2a..5157ddffaf68 100644

Lines of this file are not shown. View the raw message.

drivers/tty/vt/vc_screen.c +9 -2
index 1dc07f9214d5..01c96537fa36 100644

Lines of this file are not shown. View the raw message.

drivers/usb/class/usbtmc.c +2 -0
index 4bb6d304eb4b..311007b1d904 100644

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/gadget/function/u_ether.c +3 -0
index ef253599dcf9..116dbc2ae04d 100644

Lines of this file are not shown. View the raw message.

drivers/usb/host/uhci-pci.c +6 -4
index 9b88745d247f..3316533b8bc2 100644

Lines of this file are not shown. View the raw message.

drivers/usb/host/xhci-pci.c +10 -2
index 7308b388c92b..131a6dc2ecff 100644

Lines of this file are not shown. View the raw message.

drivers/usb/host/xhci-ring.c +28 -1
index 220d836428d2..73f2ff83e1ad 100644

Lines of this file are not shown. View the raw message.

drivers/usb/host/xhci.h +1 -1
index b8ad9676312b..0b22e8580863 100644

Lines of this file are not shown. View the raw message.

drivers/usb/storage/scsiglue.c +21 -7
index e5a971b83e3f..b8e1109f0e0d 100644

Lines of this file are not shown. View the raw message.

drivers/usb/typec/altmodes/displayport.c +4 -0
index 9378b44e0628..8f0c6da27dd1 100644

Lines of this file are not shown. View the raw message.

drivers/usb/typec/tcpm/tcpm.c +15 -1
index 81329605757f..c6e5991b3868 100644

Lines of this file are not shown. View the raw message.

drivers/video/fbdev/arcfb.c +9 -6
index 45e64016db32..024d0ee4f04f 100644

Lines of this file are not shown. View the raw message.

fs/ceph/snap.c +13 -0
index b512c82f9ccd..f7dd1dfd07f2 100644

Lines of this file are not shown. View the raw message.

fs/cifs/cifsglob.h +2 -2
index 0f1b9c48838c..2ee67a27020d 100644

Lines of this file are not shown. View the raw message.

fs/cifs/file.c +13 -13
index ebf2877dbe76..872aebac9f68 100644

Lines of this file are not shown. View the raw message.

fs/cifs/smb1ops.c +4 -5
index 3b83839fc2c2..41e468d06b5b 100644

Lines of this file are not shown. View the raw message.

fs/cifs/smb2ops.c +3 -4
index 54058a9ada74..560c4ababfe1 100644

Lines of this file are not shown. View the raw message.

fs/ext2/ext2.h +1 -0
index 3be9dd6412b7..a610c096f3a9 100644

Lines of this file are not shown. View the raw message.

fs/ext2/super.c +7 -0
index 02d82f8fe85d..486a43e34795 100644

Lines of this file are not shown. View the raw message.

fs/ext4/balloc.c +17 -1
index 05ff34e92562..fadcb94e80fa 100644

Lines of this file are not shown. View the raw message.

fs/ext4/ext4.h +2 -13
index 80f0942fa165..b6e2bb6a736b 100644

Lines of this file are not shown. View the raw message.

fs/ext4/ialloc.c +8 -4
index 208b87ce8858..745d781da891 100644

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

fs/ext4/mmp.c +29 -10
index cebea4270817..3e8bce19ad16 100644

Lines of this file are not shown. View the raw message.

fs/ext4/super.c +19 -9
index e6cd2bf9508e..bf8a780cd69b 100644

Lines of this file are not shown. View the raw message.

fs/f2fs/checkpoint.c +10 -2
index c68f1f8000f1..d6ae6de35af2 100644

Lines of this file are not shown. View the raw message.

fs/f2fs/data.c +2 -1
index d38bffe28b03..3956852ad1de 100644

Lines of this file are not shown. View the raw message.

fs/f2fs/f2fs.h +5 -0
index 7424470c68cb..5c0920e11e4b 100644

Lines of this file are not shown. View the raw message.

fs/f2fs/super.c +1 -1
index 4cc9b948139a..5c0b2b300aa1 100644

Lines of this file are not shown. View the raw message.

fs/gfs2/glops.c +2 -1
index 450032b4c886..558932ad89d5 100644

Lines of this file are not shown. View the raw message.

fs/hfsplus/inode.c +23 -5
index bf6f75f569e4..87bc222dc906 100644

Lines of this file are not shown. View the raw message.

fs/ksmbd/connection.c +2 -1
index b4c79359ef8b..cab274b77727 100644

Lines of this file are not shown. View the raw message.

fs/ksmbd/oplock.c +3 -2
index 3f759f9123ea..2e2df6ede583 100644

Lines of this file are not shown. View the raw message.

fs/ksmbd/oplock.h +1 -1
index 119b8047cfbd..2c4f4a0512b7 100644

Lines of this file are not shown. View the raw message.

fs/ksmbd/smb2misc.c +4 -1
index c579d0e09c13..33a927df64f1 100644

Lines of this file are not shown. View the raw message.

fs/ksmbd/smb2pdu.c +9 -10
index 51d495688f45..c73cf11223f7 100644

Lines of this file are not shown. View the raw message.

fs/nilfs2/inode.c +18 -0
index f4e74fac2c51..c1ab0bfc3ed5 100644

Lines of this file are not shown. View the raw message.

fs/ntfs3/frecord.c +4 -1
index cdeb0b51f0ba..d24e12d348d4 100644

Lines of this file are not shown. View the raw message.

fs/ntfs3/fsntfs.c +1 -0
index 4a97a28cb8f2..3c823613de97 100644

Lines of this file are not shown. View the raw message.

fs/ntfs3/index.c +10 -1
index f62e0df7a7b4..1ae3b310869d 100644

Lines of this file are not shown. View the raw message.

fs/ntfs3/inode.c +6 -0
index 359eff346910..2034c0ae6549 100644

Lines of this file are not shown. View the raw message.

fs/ntfs3/record.c +2 -7
index fd342da398be..41f6e578966b 100644

Lines of this file are not shown. View the raw message.

fs/statfs.c +2 -2
index 0ba34c135593..96d1c3edf289 100644

Lines of this file are not shown. View the raw message.

include/linux/cpuhotplug.h +0 -1
index c88ccc48877d..dbca858ffa6d 100644

Lines of this file are not shown. View the raw message.

include/linux/dim.h +2 -1
index 6c5733981563..f343bc9aa2ec 100644

Lines of this file are not shown. View the raw message.

include/linux/if_vlan.h +17 -0
index 41a518336673..4e7e72f3da5b 100644

Lines of this file are not shown. View the raw message.

include/linux/sched/task_stack.h +1 -1
index 1009b6b5ce40..879a5c8f930b 100644

Lines of this file are not shown. View the raw message.

include/linux/stmmac.h +1 -0
index cc338c6c7495..24bc3f7967c3 100644

Lines of this file are not shown. View the raw message.

include/linux/sunrpc/svc.h +0 -2
index 045f34add206..664a54e330af 100644

Lines of this file are not shown. View the raw message.

include/linux/sunrpc/svc_rdma.h +1 -1
index 24aa159d29a7..fbc4bd423b35 100644

Lines of this file are not shown. View the raw message.

include/linux/sunrpc/svc_xprt.h +1 -1
index 571f605bc91e..154eee6bc6a0 100644

Lines of this file are not shown. View the raw message.

include/net/ip_vs.h +4 -2
index 7cb5a1aace40..59f8412de45a 100644

Lines of this file are not shown. View the raw message.

include/net/sock.h +1 -1
index 3a4e81399edc..0309d2311487 100644

Lines of this file are not shown. View the raw message.

include/trace/bpf_probe.h +6 -0
index 04939b2d2f19..26ec024c3d58 100644

Lines of this file are not shown. View the raw message.

include/trace/events/sunrpc.h +5 -7
index 2a598fb45bf4..f09bbb6c918e 100644

Lines of this file are not shown. View the raw message.

include/trace/perf.h +6 -0
index 5d48c46a3008..5800d13146c3 100644

Lines of this file are not shown. View the raw message.

include/trace/trace_events.h +53 -2

55 lines not on this page · raw message

kernel/bpf/bpf_local_storage.c +13 -3
index 6c2d39a3d558..5ef8eaf4985e 100644

Lines of this file are not shown. View the raw message.

kernel/bpf/verifier.c +4 -0
index 261c2ed3adb1..d0db1c7e2645 100644

Lines of this file are not shown. View the raw message.

kernel/rcu/refscale.c +1 -1
index 66dc14cf5687..5abb0cf52803 100644

Lines of this file are not shown. View the raw message.

kernel/rcu/tree_exp.h +4 -2
index f9fb2793b019..f46c0c1a5eb3 100644

Lines of this file are not shown. View the raw message.

kernel/time/tick-broadcast.c +88 -32

120 lines not on this page · raw message

lib/cpu_rmap.c +4 -1
index f08d9c56f712..e77f12bb3c77 100644

Lines of this file are not shown. View the raw message.

lib/dim/dim.c +3 -2
index 38045d6d0538..e89aaf07bde5 100644

Lines of this file are not shown. View the raw message.

lib/dim/net_dim.c +2 -1
index 53f6b9c6e936..4e32f7aaac86 100644

Lines of this file are not shown. View the raw message.

lib/dim/rdma_dim.c +2 -1
index 15462d54758d..88f779486707 100644

Lines of this file are not shown. View the raw message.

net/8021q/vlan_dev.c +2 -2
index b6d456c7952e..3d0f0d0a323b 100644

Lines of this file are not shown. View the raw message.

net/bluetooth/l2cap_core.c +0 -1
index 446343348329..f01b77b03787 100644

Lines of this file are not shown. View the raw message.

net/bridge/br_forward.c +1 -1
index ec646656dbf1..3d69ad5463a9 100644

Lines of this file are not shown. View the raw message.

net/bridge/br_private_tunnel.h +4 -4
index 2b053289f016..efb096025151 100644

Lines of this file are not shown. View the raw message.

net/can/isotp.c +1 -1
index 2a891f47b815..ca69ca39c8fd 100644

Lines of this file are not shown. View the raw message.

net/can/j1939/socket.c +1 -1
index 41016aff21c5..d1d4bdc1de46 100644

Lines of this file are not shown. View the raw message.

net/core/datagram.c +10 -5
index 28e5f921dcaf..1ff8241217a9 100644

Lines of this file are not shown. View the raw message.

net/core/dev.c +3 -1
index 7fc8ae7f3cd5..56a3bff7249d 100644

Lines of this file are not shown. View the raw message.

net/core/stream.c +6 -6
index cd60746877b1..422ee97e4f2b 100644

Lines of this file are not shown. View the raw message.

net/ipv4/af_inet.c +1 -1
index 91710e5eedff..7fa1b0a45176 100644

Lines of this file are not shown. View the raw message.

net/ipv4/tcp.c +8 -6
index 51f34560a9d6..b91ddd2a2f96 100644

Lines of this file are not shown. View the raw message.

net/ipv4/tcp_bpf.c +1 -1
index 20ad554af369..e3a9477293ce 100644

Lines of this file are not shown. View the raw message.

net/ipv4/tcp_input.c +2 -2
index 102a0436eb29..65f5d07cd83d 100644

Lines of this file are not shown. View the raw message.

net/ipv4/tcp_ipv4.c +3 -2
index 63472c9b39ae..db05ab4287e3 100644

Lines of this file are not shown. View the raw message.

net/ipv6/ip6_gre.c +8 -5
index a91f93ec7d2b..0b041ab79ad9 100644

Lines of this file are not shown. View the raw message.

net/key/af_key.c +8 -4
index 1d6ae1df3886..d34fed1a484a 100644

Lines of this file are not shown. View the raw message.

net/llc/af_llc.c +5 -3
index 99305aadaa08..8b9a10d10036 100644

Lines of this file are not shown. View the raw message.

net/mac80211/trace.h +1 -1
index 9e8381bef7ed..8a9b62f6e923 100644

Lines of this file are not shown. View the raw message.

net/netfilter/core.c +4 -2
index cca0762a9010..8eed6536e7e7 100644

Lines of this file are not shown. View the raw message.

net/netfilter/ipvs/ip_vs_sync.c +1 -1
index a56fd0b5a430..0d89e68dc9d1 100644

Lines of this file are not shown. View the raw message.

net/netfilter/nf_conntrack_standalone.c +2 -1
index 338f02a12076..7515705583bc 100644

Lines of this file are not shown. View the raw message.

net/netfilter/nf_tables_api.c +1 -3
index 091df8a7cb1e..f20244a91d78 100644

Lines of this file are not shown. View the raw message.

net/netfilter/nft_chain_filter.c +6 -3
index 3ced0eb6b7c3..5b02408a920b 100644

Lines of this file are not shown. View the raw message.

net/netfilter/nft_set_rbtree.c +13 -7
index 19ea4d3c3553..2f114aa10f1a 100644

Lines of this file are not shown. View the raw message.

net/netlink/af_netlink.c +4 -4
index 84a7a29be49d..998c736d3ae8 100644

Lines of this file are not shown. View the raw message.

net/nsh/nsh.c +3 -5
index e9ca007718b7..0f23e5e8e03e 100644

Lines of this file are not shown. View the raw message.

net/packet/af_packet.c +2 -4
index f5d430bd372c..ce484305be88 100644

Lines of this file are not shown. View the raw message.

net/smc/smc_close.c +2 -2
index 84102db5bb31..149a59ecd299 100644

Lines of this file are not shown. View the raw message.

net/smc/smc_rx.c +2 -2
index 45b0575520da..5b63c250ba60 100644

Lines of this file are not shown. View the raw message.

net/smc/smc_tx.c +2 -2
index 31ee76131a79..a878ea084dbd 100644

Lines of this file are not shown. View the raw message.

net/socket.c +1 -1
index 73666b878f2c..5c49074ef7f2 100644

Lines of this file are not shown. View the raw message.

net/sunrpc/svc.c +1 -1
index 74a1c9116a78..36a3ad9336d6 100644

Lines of this file are not shown. View the raw message.

net/sunrpc/svc_xprt.c +22 -12
index 935bba065636..5ff8f902f14d 100644

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
index 387a5da09daf..3ad4291148a6 100644

Lines of this file are not shown. View the raw message.

net/sunrpc/xprtrdma/svc_rdma_transport.c +1 -1
index 94b20fb47135..f776f0cb471f 100644

Lines of this file are not shown. View the raw message.

net/tipc/bearer.c +15 -2
index b0ad61b4b101..1048607a1528 100644

Lines of this file are not shown. View the raw message.

net/tipc/bearer.h +3 -0
index 57c6a1a719e2..483f90958857 100644

Lines of this file are not shown. View the raw message.

net/tipc/link.c +6 -3
index 8fdd3b23bd12..655a2e1b6dfe 100644

Lines of this file are not shown. View the raw message.

net/tipc/socket.c +2 -2
index f1c3b8eb4b3d..b34857217fde 100644

Lines of this file are not shown. View the raw message.

net/tipc/udp_media.c +3 -2
index c2bb818704c8..0a85244fd618 100644

Lines of this file are not shown. View the raw message.

net/tls/tls_main.c +2 -1
index abd0c4557cb9..20b8ba4d1dfc 100644

Lines of this file are not shown. View the raw message.

net/unix/af_unix.c +13 -9
index a96026dbdf94..d326540e4938 100644

Lines of this file are not shown. View the raw message.

net/vmw_vsock/af_vsock.c +1 -1
index dc36a46ce0e7..9a65a2f19585 100644

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

net/xfrm/xfrm_policy.c +0 -9
index 0540e9f72b2f..c15ef8003caa 100644

Lines of this file are not shown. View the raw message.

samples/bpf/hbm.c +1 -0
index b0c18efe7928..a271099603fe 100644

Lines of this file are not shown. View the raw message.

scripts/recordmcount.c +5 -1
index cce12e1971d8..ec692af8ce9e 100644

Lines of this file are not shown. View the raw message.

sound/firewire/digi00x/digi00x-stream.c +3 -1
index a15f55b0dce3..295163bb8abb 100644

Lines of this file are not shown. View the raw message.

sound/pci/hda/hda_generic.c +4 -3
index fc114e522480..dbf7aa88e0e3 100644

Lines of this file are not shown. View the raw message.

sound/pci/hda/patch_hdmi.c +5 -0
index 8ed66c416c0e..8ed5a499af4b 100644

Lines of this file are not shown. View the raw message.

sound/pci/hda/patch_realtek.c +4 -1
index 86d07d06bd0c..ac0ccfd73f69 100644

Lines of this file are not shown. View the raw message.

sound/soc/fsl/fsl_micfil.c +13 -1
index 38d4d1b7cfe3..acc820da46eb 100644

Lines of this file are not shown. View the raw message.

sound/usb/format.c +1 -0
index 4b1c5ba121f3..ab5fed9f55b6 100644

Lines of this file are not shown. View the raw message.

tools/power/cpupower/utils/idle_monitor/mperf_monitor.c +14 -17
index e7d48cb563c0..ae6af354a81d 100644

Lines of this file are not shown. View the raw message.

tools/testing/selftests/net/srv6_end_dt4_l3vpn_test.sh +11 -6
index 1003119773e5..f96282362811 100755

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.