Skip to contentSkip to conversation

Linux 6.18.54

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Sep 25 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 6.18.54 kernel.

All users of the 6.18 kernel series must upgrade.

The updated 6.18.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.18.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/ABI/testing/sysfs-devices-platform-trackpoint    |    2 
 Documentation/hwmon/cgbc-hwmon.rst                             |   42 
 Documentation/netlink/specs/rt-neigh.yaml                      |    3 
 Documentation/networking/ip-sysctl.rst                         |    4 
 Makefile                                                       |    2 
 arch/arm/mach-socfpga/Kconfig                                  |    2 
 arch/arm64/boot/dts/renesas/r8a779f0.dtsi                      |    1 
 arch/arm64/boot/dts/renesas/r9a09g047.dtsi                     |   10 
 arch/arm64/boot/dts/renesas/r9a09g056.dtsi                     |   10 
 arch/arm64/boot/dts/renesas/r9a09g057.dtsi                     |   10 
 arch/arm64/include/asm/percpu.h                                |   20 
 arch/arm64/kernel/hibernate-asm.S                              |    2 
 arch/arm64/kernel/hibernate.c                                  |    4 
 arch/mips/cavium-octeon/octeon-platform.c                      |    4 
 arch/powerpc/kernel/iommu.c                                    |    2 
 arch/powerpc/kvm/book3s_hv_nested.c                            |    2 
 arch/powerpc/kvm/book3s_hv_uvmem.c                             |    5 
 arch/x86/Kconfig.cpu                                           |   11 
 arch/x86/Makefile                                              |    5 
 arch/x86/entry/entry_fred.c                                    |   11 
 arch/x86/include/asm/text-patching.h                           |    4 
 arch/x86/kernel/alternative.c                                  |   53 
 arch/x86/kernel/cpu/microcode/intel.c                          |   26 
 arch/x86/kernel/kprobes/core.c                                 |    5 
 drivers/acpi/processor_driver.c                                |    2 
 drivers/ata/libahci.c                                          |   15 
 drivers/ata/libahci_platform.c                                 |    2 
 drivers/block/sunvdc.c                                         |    9 
 drivers/bluetooth/btintel_pcie.c                               |    8 
 drivers/bluetooth/btmtk.c                                      |    7 
 drivers/bluetooth/btmtksdio.c                                  |    4 
 drivers/bluetooth/btqca.c                                      |   37 
 drivers/bluetooth/btusb.c                                      |   17 
 drivers/bluetooth/hci_qca.c                                    |   80 
 drivers/clk/clk-scpi.c                                         |    2 
 drivers/dma/dmaengine.c                                        |   10 
 drivers/dma/mmp_pdma.c                                         |    2 
 drivers/dma/sprd-dma.c                                         |    3 
 drivers/dma/sun6i-dma.c                                        |    9 
 drivers/dma/ti/k3-udma-glue.c                                  |    5 
 drivers/dma/xilinx/xilinx_dma.c                                |   26 
 drivers/firmware/arm_scpi.c                                    |    4 
 drivers/gpio/gpio-virtuser.c                                   |    3 
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c                     |    6 
 drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c                    |   48 
 drivers/gpu/drm/amd/amdgpu/nbio_v7_9.c                         |    2 
 drivers/gpu/drm/drm_atomic_uapi.c                              |   13 
 drivers/gpu/drm/gud/gud_pipe.c                                 |    7 
 drivers/gpu/drm/msm/adreno/adreno_device.c                     |    2 
 drivers/gpu/drm/msm/adreno/adreno_gpu.c                        |    2 
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c                     |    1 
 drivers/gpu/drm/msm/dp/dp_display.c                            |   21 
 drivers/gpu/drm/msm/dsi/dsi_host.c                             |   36 
 drivers/gpu/drm/msm/hdmi/hdmi_phy.c                            |    8 
 drivers/gpu/drm/msm/msm_drv.c                                  |    2 
 drivers/gpu/drm/msm/msm_gem.h                                  |    3 
 drivers/gpu/drm/msm/msm_gem_vma.c                              |    2 
 drivers/gpu/drm/msm/msm_ringbuffer.c                           |    2 
 drivers/gpu/drm/msm/msm_ringbuffer.h                           |    1 
 drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fbsr.c         |    2 
 drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/gsp.c          |    8 
 drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r570/fbsr.c         |    8 
 drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r570/gsp.c          |    3 
 drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r570/nvrm/gsp.h     |    8 
 drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/rm.h                |    2 
 drivers/gpu/drm/vc4/vc4_kms.c                                  |    2 
 drivers/gpu/drm/xe/xe_mmio_gem.c                               |   33 
 drivers/gpu/drm/xe/xe_mmio_gem.h                               |    2 
 drivers/gpu/drm/xe/xe_shrinker.c                               |   62 
 drivers/hid/hid-asus.c                                         |   34 
 drivers/hid/hid-logitech-hidpp.c                               |   24 
 drivers/hwmon/cgbc-hwmon.c                                     |  129 
 drivers/hwmon/gpio-fan.c                                       |    4 
 drivers/hwmon/hp-wmi-sensors.c                                 |   32 
 drivers/hwmon/pmbus/pmbus.h                                    |    3 
 drivers/hwmon/pmbus/tps53679.c                                 |   11 
 drivers/hwmon/pwm-fan.c                                        |   13 
 drivers/hwmon/w83791d.c                                        |    1 
 drivers/hwmon/w83793.c                                         |    4 
 drivers/i2c/busses/i2c-at91-core.c                             |    3 
 drivers/i2c/busses/i2c-at91-master.c                           |   12 
 drivers/i2c/busses/i2c-at91.h                                  |    1 
 drivers/i2c/busses/i2c-imx.c                                   |    3 
 drivers/i2c/busses/i2c-qcom-cci.c                              |   20 
 drivers/i2c/i2c-atr.c                                          |    1 
 drivers/infiniband/core/iwpm_util.c                            |    9 
 drivers/infiniband/core/mad.c                                  |    3 
 drivers/infiniband/core/ucma.c                                 |    7 
 drivers/infiniband/core/verbs.c                                |   12 
 drivers/infiniband/hw/bnxt_re/main.c                           |   10 
 drivers/infiniband/hw/efa/efa_com.c                            |    7 
 drivers/infiniband/hw/efa/efa_com.h                            |    1 
 drivers/infiniband/hw/efa/efa_main.c                           |   33 
 drivers/infiniband/hw/hfi1/file_ops.c                          |   23 
 drivers/infiniband/hw/irdma/verbs.c                            |    2 
 drivers/infiniband/hw/mlx4/sysfs.c                             |    4 
 drivers/infiniband/hw/mlx5/main.c                              |    7 
 drivers/infiniband/sw/rxe/rxe_mcast.c                          |   50 
 drivers/infiniband/sw/rxe/rxe_mr.c                             |    3 
 drivers/infiniband/sw/rxe/rxe_odp.c                            |   16 
 drivers/infiniband/sw/rxe/rxe_verbs.c                          |   13 
 drivers/infiniband/sw/siw/siw_cm.c                             |    7 
 drivers/infiniband/sw/siw/siw_qp_rx.c                          |    2 
 drivers/infiniband/ulp/ipoib/ipoib.h                           |    7 
 drivers/infiniband/ulp/ipoib/ipoib_ib.c                        |   12 
 drivers/infiniband/ulp/ipoib/ipoib_multicast.c                 |   16 
 drivers/infiniband/ulp/iser/iser_initiator.c                   |   16 
 drivers/infiniband/ulp/isert/ib_isert.c                        |   22 
 drivers/infiniband/ulp/isert/ib_isert.h                        |    2 
 drivers/infiniband/ulp/rtrs/rtrs-clt.c                         |    8 
 drivers/infiniband/ulp/rtrs/rtrs-clt.h                         |    2 
 drivers/input/evdev.c                                          |    2 
 drivers/input/input-compat.c                                   |    2 
 drivers/input/joystick/xpad.c                                  |   10 
 drivers/input/keyboard/adp5588-keys.c                          |   12 
 drivers/input/keyboard/atkbd.c                                 |    8 
 drivers/input/misc/soc_button_array.c                          |   16 
 drivers/input/mouse/synaptics.c                                |    8 
 drivers/input/rmi4/rmi_driver.c                                |   13 
 drivers/input/rmi4/rmi_smbus.c                                 |   10 
 drivers/input/serio/hp_sdc.c                                   |    2 
 drivers/input/serio/i8042-acpipnpio.h                          |    7 
 drivers/input/touchscreen/cyttsp5.c                            |    1 
 drivers/input/touchscreen/eeti_ts.c                            |    1 
 drivers/media/i2c/video-i2c.c                                  |    5 
 drivers/memstick/core/ms_block.c                               |    2 
 drivers/misc/ntsync.c                                          |    6 
 drivers/mmc/core/bus.c                                         |    2 
 drivers/mmc/core/host.c                                        |    1 
 drivers/mmc/core/sdio_uart.c                                   |    3 
 drivers/mmc/host/mmc_hsq.c                                     |    8 
 drivers/mmc/host/mmc_spi.c                                     |    1 
 drivers/mmc/host/mmci.c                                        |    3 
 drivers/mmc/host/mxcmmc.c                                      |    4 
 drivers/mmc/host/rtsx_pci_sdmmc.c                              |    5 
 drivers/mmc/host/sdhci-of-aspeed.c                             |    5 
 drivers/mmc/host/sdhci_am654.c                                 |   43 
 drivers/mmc/host/sh_mmcif.c                                    |    3 
 drivers/net/ethernet/broadcom/Kconfig                          |    1 
 drivers/net/ethernet/broadcom/genet/bcmgenet.c                 |  239 -
 drivers/net/ethernet/broadcom/genet/bcmgenet.h                 |    5 
 drivers/net/ethernet/cadence/macb_ptp.c                        |    9 
 drivers/net/ethernet/cortina/gemini.c                          |    2 
 drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c                |    3 
 drivers/net/ethernet/meta/fbnic/fbnic_txrx.c                   |   42 
 drivers/net/ethernet/meta/fbnic/fbnic_txrx.h                   |    9 
 drivers/net/ethernet/microchip/lan743x_main.c                  |    2 
 drivers/net/ethernet/socionext/netsec.c                        |    2 
 drivers/net/ethernet/stmicro/stmmac/hwif.h                     |    2 
 drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c           |    2 
 drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c                |   19 
 drivers/net/fddi/skfp/skfddi.c                                 |    3 
 drivers/net/phy/mediatek/mtk-phy-lib.c                         |   27 
 drivers/net/wireless/ath/ath11k/mac.c                          |   25 
 drivers/net/wireless/ath/wcn36xx/dxe.c                         |    2 
 drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c        |    2 
 drivers/net/wireless/broadcom/brcm80211/brcmfmac/cyw/core.c    |    5 
 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c |    4 
 drivers/net/wireless/intel/ipw2x00/Kconfig                     |    1 
 drivers/net/wireless/intel/ipw2x00/libipw_crypto_tkip.c        |  130 
 drivers/net/wireless/intel/ipw2x00/libipw_rx.c                 |    6 
 drivers/net/wireless/intel/iwlegacy/common.c                   |    2 
 drivers/net/wireless/intersil/p54/eeprom.c                     |   22 
 drivers/net/wireless/marvell/libertas_tf/main.c                |    2 
 drivers/net/wireless/marvell/mwifiex/cfg80211.c                |   12 
 drivers/net/wireless/marvell/mwifiex/pcie.c                    |    2 
 drivers/net/wireless/marvell/mwifiex/scan.c                    |   54 
 drivers/net/wireless/marvell/mwifiex/util.c                    |   10 
 drivers/net/wireless/microchip/wilc1000/cfg80211.c             |   14 
 drivers/net/wireless/microchip/wilc1000/wlan.c                 |    9 
 drivers/net/wireless/realtek/rtw88/tx.c                        |    2 
 drivers/net/wireless/rsi/rsi_91x_mgmt.c                        |    2 
 drivers/net/wireless/ti/wlcore/main.c                          |    4 
 drivers/net/wireless/virtual/mac80211_hwsim.c                  |   39 
 drivers/net/wireless/virtual/virt_wifi.c                       |    4 
 drivers/net/wwan/mhi_wwan_mbim.c                               |   28 
 drivers/net/wwan/t7xx/t7xx_netdev.c                            |    4 
 drivers/perf/arm-cmn.c                                         |   10 
 drivers/phy/mediatek/phy-mtk-hdmi-mt8195.c                     |    4 
 drivers/phy/mediatek/phy-mtk-hdmi-mt8195.h                     |    3 
 drivers/phy/renesas/phy-rcar-gen3-usb2.c                       |  310 +
 drivers/power/sequencing/Kconfig                               |    3 
 drivers/power/sequencing/core.c                                |   11 
 drivers/scsi/fnic/fdls_disc.c                                  |  730 +--
 drivers/scsi/fnic/fip.c                                        |  119 
 drivers/scsi/fnic/fip.h                                        |    2 
 drivers/scsi/fnic/fnic.h                                       |   79 
 drivers/scsi/fnic/fnic_fcs.c                                   |  166 
 drivers/scsi/fnic/fnic_fdls.h                                  |    2 
 drivers/scsi/fnic/fnic_isr.c                                   |   41 
 drivers/scsi/fnic/fnic_main.c                                  |   89 
 drivers/scsi/fnic/fnic_scsi.c                                  |  264 -
 drivers/scsi/qla2xxx/qla_os.c                                  |    2 
 drivers/scsi/scsi.c                                            |   24 
 drivers/soc/samsung/exynos-pmu.c                               |    7 
 drivers/soundwire/cadence_master.c                             |    7 
 drivers/spi/spi-fsl-qspi.c                                     |    5 
 drivers/spi/spi-qpic-snand.c                                   |    4 
 drivers/spi/spi-virtio.c                                       |    2 
 drivers/spi/spi-zynqmp-gqspi.c                                 |   34 
 drivers/watchdog/da9062_wdt.c                                  |    4 
 drivers/watchdog/da9063_wdt.c                                  |    4 
 drivers/watchdog/digicolor_wdt.c                               |   13 
 drivers/watchdog/msc313e_wdt.c                                 |   16 
 drivers/watchdog/rtd119x_wdt.c                                 |    7 
 drivers/watchdog/rzv2h_wdt.c                                   |    7 
 drivers/watchdog/sp5100_tco.c                                  |    6 
 drivers/watchdog/starfive-wdt.c                                |    2 
 fs/9p/vfs_addr.c                                               |   29 
 fs/btrfs/dev-replace.c                                         |    1 
 fs/btrfs/disk-io.c                                             |    4 
 fs/btrfs/file.c                                                |    4 
 fs/btrfs/free-space-tree.c                                     |   14 
 fs/btrfs/inode.c                                               |    3 
 fs/btrfs/tree-checker.c                                        |    2 
 fs/btrfs/uuid-tree.c                                           |  120 
 fs/btrfs/verity.c                                              |   47 
 fs/btrfs/volumes.c                                             |  153 
 fs/btrfs/xattr.c                                               |   36 
 fs/dax.c                                                       |    9 
 fs/exec.c                                                      |   29 
 fs/smb/client/cifs_fs_sb.h                                     |    1 
 fs/smb/client/cifsfs.c                                         |   12 
 fs/smb/client/cifssmb.c                                        |    2 
 fs/smb/client/connect.c                                        |   10 
 fs/smb/client/file.c                                           |   28 
 fs/smb/client/misc.c                                           |   12 
 fs/smb/client/reparse.c                                        |    4 
 fs/smb/client/reparse.h                                        |    7 
 fs/smb/client/sess.c                                           |  106 
 fs/smb/client/smb2inode.c                                      |   11 
 fs/smb/client/smb2ops.c                                        |   51 
 fs/smb/client/smb2pdu.c                                        |   13 
 fs/smb/client/trace.h                                          |    1 
 fs/smb/server/server.c                                         |    2 
 fs/smb/server/smb2pdu.c                                        |   89 
 fs/smb/server/smb2pdu.h                                        |    1 
 fs/smb/server/smb_common.c                                     |   20 
 fs/xfs/libxfs/xfs_bmap.c                                       |    2 
 fs/xfs/libxfs/xfs_da_btree.c                                   |    2 
 fs/xfs/libxfs/xfs_da_btree.h                                   |    2 
 fs/xfs/libxfs/xfs_rmap.h                                       |    2 
 fs/xfs/scrub/attr_repair.c                                     |    4 
 fs/xfs/scrub/bmap.c                                            |    6 
 fs/xfs/scrub/common.c                                          |    6 
 fs/xfs/scrub/common.h                                          |    4 
 fs/xfs/scrub/dir_repair.c                                      |    4 
 fs/xfs/scrub/dirtree.c                                         |    4 
 fs/xfs/scrub/inode.c                                           |    6 
 fs/xfs/scrub/nlinks.c                                          |    2 
 fs/xfs/scrub/reap.c                                            |    3 
 fs/xfs/scrub/rtbitmap.c                                        |    4 
 fs/xfs/scrub/rtsummary.c                                       |    4 
 fs/xfs/scrub/tempfile.c                                        |   29 
 fs/xfs/xfs_inode.h                                             |    3 
 include/keys/request_key_auth-type.h                           |    2 
 include/linux/ieee80211.h                                      |    5 
 include/linux/mm.h                                             |    4 
 include/net/bluetooth/coredump.h                               |    2 
 include/net/mac80211.h                                         |    5 
 include/net/netns/xfrm.h                                       |    2 
 include/net/sock.h                                             |    2 
 include/sound/soc.h                                            |    3 
 include/sound/soc_sdw_utils.h                                  |   42 
 kernel/dma/coherent.c                                          |    3 
 kernel/dma/swiotlb.c                                           |    4 
 kernel/exit.c                                                  |   12 
 kernel/fork.c                                                  |    4 
 kernel/sched/core.c                                            |    6 
 kernel/signal.c                                                |  117 
 kernel/time/namespace.c                                        |    2 
 kernel/time/posix-cpu-timers.c                                 |   40 
 mm/filemap.c                                                   |    2 
 mm/huge_memory.c                                               |   86 
 mm/memblock.c                                                  |   18 
 mm/memcontrol.c                                                |    2 
 mm/mlock.c                                                     |    2 
 mm/mremap.c                                                    |    9 
 mm/swapfile.c                                                  |    2 
 mm/vma.c                                                       |    6 
 net/atm/pppoatm.c                                              |   42 
 net/bluetooth/coredump.c                                       |   65 
 net/bluetooth/eir.c                                            |   10 
 net/bluetooth/hci_codec.c                                      |   36 
 net/bluetooth/hci_core.c                                       |   18 
 net/bluetooth/hci_sync.c                                       |    2 
 net/bluetooth/iso.c                                            |   53 
 net/bluetooth/rfcomm/sock.c                                    |   13 
 net/bridge/br_mst.c                                            |   20 
 net/core/drop_monitor.c                                        |   12 
 net/core/neighbour.c                                           |   56 
 net/core/skbuff.c                                              |   32 
 net/core/sock.c                                                |   16 
 net/ipv4/esp4.c                                                |    6 
 net/ipv4/icmp.c                                                |   17 
 net/ipv4/ip_tunnel_core.c                                      |   16 
 net/ipv4/sysctl_net_ipv4.c                                     |    4 
 net/ipv4/tcp_input.c                                           |    3 
 net/ipv4/tcp_ulp.c                                             |    4 
 net/ipv4/xfrm4_input.c                                         |    2 
 net/ipv6/esp6.c                                                |    6 
 net/ipv6/route.c                                               |   22 
 net/ipv6/seg6_local.c                                          |    3 
 net/ipv6/tcp_ipv6.c                                            |    3 
 net/ipv6/xfrm6_input.c                                         |    2 
 net/ipv6/xfrm6_output.c                                        |   10 
 net/mac80211/Makefile                                          |    1 
 net/mac80211/cfg.c                                             |   63 
 net/mac80211/debugfs.c                                         |    2 
 net/mac80211/debugfs_netdev.c                                  |    9 
 net/mac80211/ieee80211_i.h                                     |    5 
 net/mac80211/iface.c                                           |   79 
 net/mac80211/main.c                                            |    4 
 net/mac80211/mesh.c                                            |   34 
 net/mac80211/michael.c                                         |   83 
 net/mac80211/michael.h                                         |   22 
 net/mac80211/offchannel.c                                      |    7 
 net/mac80211/pm.c                                              |    8 
 net/mac80211/scan.c                                            |    2 
 net/mac80211/tdls.c                                            |   19 
 net/mac80211/tx.c                                              |  107 
 net/mac80211/util.c                                            |    3 
 net/mac80211/wpa.c                                             |    1 
 net/netfilter/nf_flow_table_core.c                             |   12 
 net/netfilter/nf_nat_core.c                                    |   46 
 net/netfilter/nf_tables_api.c                                  |   22 
 net/netfilter/nft_nat.c                                        |    2 
 net/openvswitch/conntrack.c                                    |    2 
 net/packet/af_packet.c                                         |    4 
 net/packet/internal.h                                          |    2 
 net/psp/psp_sock.c                                             |    4 
 net/rds/ib_cm.c                                                |    2 
 net/sched/act_api.c                                            |   11 
 net/sched/sch_hhf.c                                            |    9 
 net/unix/garbage.c                                             |   17 
 net/wireless/Makefile                                          |    2 
 net/wireless/core.c                                            |  126 
 net/wireless/core.h                                            |   10 
 net/wireless/michael-mic.c                                     |   86 
 net/wireless/rdev-ops.h                                        |    3 
 net/wireless/scan.c                                            |   43 
 net/wireless/util.c                                            |   35 
 net/xfrm/espintcp.c                                            |    6 
 net/xfrm/xfrm_input.c                                          |   65 
 net/xfrm/xfrm_iptfs.c                                          |   12 
 net/xfrm/xfrm_state.c                                          |    9 
 net/xfrm/xfrm_user.c                                           |   37 
 rust/kernel/net/phy.rs                                         |   38 
 scripts/generate_rust_target.rs                                |    5 
 security/keys/encrypted-keys/encrypted.c                       |   20 
 security/keys/gc.c                                             |    4 
 security/keys/request_key_auth.c                               |   12 
 security/keys/trusted-keys/trusted_tpm2.c                      |   12 
 security/landlock/net.c                                        |   14 
 security/selinux/avc.c                                         |    5 
 security/selinux/hooks.c                                       |  150 
 security/selinux/include/objsec.h                              |   10 
 sound/core/init.c                                              |    3 
 sound/core/pcm_timer.c                                         |    7 
 sound/hda/common/controller.c                                  |    2 
 sound/soc/amd/acp/acp-sdw-legacy-mach.c                        |   33 
 sound/soc/amd/acp/acp-sdw-sof-mach.c                           |   31 
 sound/soc/codecs/hdmi-codec.c                                  |    6 
 sound/soc/codecs/rt712-sdca-dmic.c                             |   14 
 sound/soc/intel/boards/sof_sdw.c                               |   21 
 sound/soc/sdw_utils/soc_sdw_bridge_cs35l56.c                   |    4 
 sound/soc/sdw_utils/soc_sdw_utils.c                            |   59 
 sound/soc/soc-pcm.c                                            |   18 
 sound/soc/ux500/ux500_msp_i2s.h                                |    4 
 sound/usb/6fire/comm.c                                         |   42 
 sound/usb/6fire/comm.h                                         |    2 
 sound/usb/6fire/midi.c                                         |   43 
 sound/usb/6fire/midi.h                                         |    2 
 sound/usb/6fire/pcm.c                                          |  138 
 sound/usb/6fire/pcm.h                                          |    5 
 sound/usb/bcd2000/bcd2000.c                                    |   33 
 sound/usb/card.h                                               |    3 
 sound/usb/endpoint.c                                           |   16 
 sound/virtio/virtio_card.c                                     |    4 
 tools/perf/util/hist.h                                         |    8 
 tools/testing/selftests/arm64/mte/check_gcr_el1_cswitch.c      |    2 
 tools/testing/selftests/landlock/audit.h                       |  121 
 tools/testing/selftests/landlock/audit_test.c                  |    4 
 tools/testing/selftests/landlock/fs_test.c                     | 1874 +++++++++-
 tools/testing/selftests/landlock/net_test.c                    |  169 
 385 files changed, 7026 insertions(+), 2963 deletions(-)

Aamir Ahmed (1):
Bluetooth: eir: validate service data length before reading UUID

Ahmed Naseef (1):
net: phy: mediatek: do not report link and per-speed LED rules together

Alberto Carboneri (1):
scsi: core: Validate MODE SENSE lengths in scsi_cdl_enable()

Alex Bereza (2):
dmaengine: xilinx_dma: Fix hardware buffer descriptor reuse order
dmaengine: xilinx_dma: Fix hardware buffer descriptor chain after cyclic DMA

Alexander Chesnokov (1):
dmaengine: ti: k3-udma-glue: fix NULL dereference in k3_udma_glue_release_rx_chn()

Alexei Turtanov (1):
Input: atkbd - skip deactivate for Xiaomi Redmi Book Pro 16 2026

Alexey Klimov (1):
soc: samsung: exynos-pmu: fix use-after-free of interrupt generator node

Ali Ahmet Memis (1):
wifi: wilc1000: fix out-of-bounds read in P2P public action frames

Alvin Šipraga (1):
Input: adp5588-keys - cache GPIO state before registering the gpiochip

Amit Machhiwal (2):
KVM: PPC: Book3S HV: fix use-after-free in kvmhv_emulate_tlbie_all_lpid()
KVM: PPC: Book3S HV: fix secure device page leak on uv_page_in() failure

Andrea Mayer (1):
seg6: set IPSKB_L3SLAVE from IP6SKB_L3SLAVE on IPIP decapsulation

AngeloGioacchino Del Regno (2):
phy: mediatek: phy-mtk-hdmi-mt8195: Fix PLL calc divisor overflow
phy: mediatek: phy-mtk-hdmi-mt8195: Fix TMDS clk bit ratio setting

Antheas Kapenekakis (1):
HID: asus: fortify keyboard handshake

Aohan Mei (1):
rds: ib: use rds_conn_drop() on protocol version mismatch

April Cardenas (1):
smb/client: send lease break ACKs thru correct session for multiuser mounts

Arash Golgol (1):
media: video-i2c: fix buffer queue ordering

Arun Easi (1):
scsi: fnic: Fix missed link-up when critical IRQ targets offline CPU

Baineng Shou (1):
dmaengine: mmp_pdma: fix wrong sg length in mmp_pdma_prep_slave_sg()

Bard Liao (2):
soundwire: cadence_master: wait and cancel cdns->work before clock stop
ASoC: sdw_utils: subtract the endpoint that is not present

Bartosz Golaszewski (3):
power: sequencing: don't call .post_enable() if pwrseq_unit_enable() failed
power: sequencing: fix NULL-pointer dereference in pwrseq_unit_new()
power: sequencing: fix NULL-pointer dereference in pwrseq_device_register()

Benjamin Berg (1):
wifi: mac80211: track MU-MIMO configuration on disabled interfaces

Benoît Sevens (1):
HID: logitech-hidpp: fix race condition when accessing stale stack pointer

Biju Das (1):
power: sequencing: Fix build issue with COMPILE_TEST

Bitterblue Smith (1):
wifi: rtw88: TX QOS Null data the same way as Null data

Bogdan Nicolae (1):
wifi: brcmfmac: cyw: pass PMKID to firmware if present

Bradley Morgan (1):
arm64: hibernate: pass HVC_SET_VECTORS args to the resume hvc

Breno Leitao (1):
arm64: hibernate: clone only the linear map that exists at runtime

Carolina Jubran (1):
IB/IPoIB: Avoid restoring OPER_UP after multicast flush

Cen Zhang (1):
KEYS: encrypted: fix integer overflow of datablob_len

Chandrashekar Devegowda (1):
Bluetooth: btintel_pcie: validate TX skb length in send_sync

Chang S. Bae (2):
x86/build/64: Prevent native builds from generating EGPR use x86/microcode/intel: Reject problematic loading on Granite Rapids systems

Charles Keepax (2):
ASoC: sdw_utils: Add codec_conf for every DAI
ASoC: intel: sof_sdw: Add ability to have auxiliary devices

Chengfeng Ye (2):
Bluetooth: hci_sync: Serialize local codec list cleanup
xfrm: serialize state GC with device state flush

Chengjun Yao (1):
drm/amdgpu: fix rmmio iounmap skipped on device removal

Chris Lu (1):
Bluetooth: btmtk: fix wrong status for short WMT FUNC_CTRL events

Chris Sommers (1):
Input: i8042 - add quirk for Acer Aspire Go 15 AG15-42P

Christian Göttsche (1):
selinux: always fill AVC decision in avc_has_perm_noaudit()

Christian Lugnberg (2):
dmaengine: sun6i: fix non-atomic read of DMA position registers
dmaengine: sun6i: fix undefined behaviour in sun6i_dma_tx_status

Christoph Hellwig (3):
xfs: add a xfs_rmap_inode_owner helper
xfs: convert xchk_inode_xref_set_corrupt to xchk_ip_xref_set_corrupt
xfs: remove the i_ino field in struct xfs_inode

Chunfeng Song (1):
rust: net: phy: fix off-by-one bit positions in device status accessors

Claudiu Beznea (1):
phy: renesas: rcar-gen3-usb2: Avoid long delay in atomic context

Cong Nguyen (1):
hwmon: (gpio-fan) return IRQ_HANDLED from the shared alarm IRQ handler

Daehyeon Ko (1):
wifi: libipw: reject TKIP frames without a full MIC

Daniel Linjama (1):
btrfs: handle lack of space when cleaning up verity items

Daniel Zahka (1):

      net: psp: avoid conflicts with skb->decrypted and sk_validate_xmit_skb()

Darrick J. Wong (1):
xfs: fix under-reservation of blocks when repairing sf directories

David Howells (1):
9p: Fix v9fs_issue_write() to update i_size and remote_i_size

Devin Wittmayer (1):
wifi: mac80211: refuse to make a monitor active when it has no queue

Diogo Ivo (Schneider Electric) (4):
mmc: sdhci_am654: Move tuning_loop to local variable
mmc: sdhci_am654: Reset command and data lines on failed tuning
mmc: sdhci_am654: Clear ITAPDLY on tuning failure
mmc: sdhci_am654: Fallback to DT-provided itap delay on DDR50 tuning failure

Dmitriy Chumachenko (1):
drm/amdgpu: check ras and obj before dereference

Dmitriy Okunev (1):
net: mvpp2: prevent buffer overflow in page_pool allocation

Dmitry Antipov (1):
wifi: mac80211: fix list iteration in ieee80211_add_virtual_monitor()

Dmitry Baryshkov (2):
drm/msm/dsi: round the byte clock rate after reparenting to the PHY PLL
Bluetooth: qca: enable pwrseq support for WCN39xx devices

Dmitry Torokhov (2):
Input: rmi_smbus - fix out-of-bounds read in rmi_smb_write_block()
Input: synaptics-rmi4 - fix GPF in suspend and resume when unbound

Dong Chenchen (2):
ipv4: icmp: reject RTN_UNREACHABLE input routes in icmp_route_lookup
xfrm: Fix dev use-after-free in xfrm async resumption

Donggeun Yoo (2):
dma-coherent: report a failed reserved memory assignment
swiotlb: use the adjusted address for the highmem page lookup

Doruk Tan Ozturk (1):
wifi: mwifiex: bound the pairwise-cipher OUI walk to the IE length

Eric Biggers (3):

      wifi: ipw2x00: Rename michael_mic() to libipw_michael_mic()
      wifi: mac80211, cfg80211: Export michael_mic() and move it to cfg80211
      wifi: ipw2x00: Use michael_mic() from cfg80211

Eric Dumazet (8):
xfrm: add missing rcu_read_lock(), skb_dst_force() and dev_hold() for xfrm_trans_reinject()
tcp: do not let tcp_rmem be set below 4096
pppoatm: ensure a writable skb header and linear data
drop_monitor: synchronize tracepoint unregistration on error path
drop_monitor: use timer_shutdown_sync() to prevent timer rearming during teardown
drop_monitor: fix out-of-bounds write in reset_per_cpu_data()
net: lock the socket in sock_gettstamp()
net: skbuff: do not leave stale header offsets after pskb_carve()

Erich Sartison (1):
Input: xpad - add support for Victrix Pro BFG Controller

Fan Wu (6):
mmc: core: Cancel SDIO IRQ work before freeing host
mmc: hsq: Fix use-after-free in retry work
mmc: mmci: Fix use-after-free in busy-timeout work
mmc: mxcmmc: cancel data work and watchdog on remove
wifi: wcn36xx: Fix potential use-after-free in TX ack timer teardown
smb: client: fix cifsFileInfo reference leak in deferred close

Felix Gu (1):
mmc: sdio_uart: fix xmit_fifo leak when the port table is full

Fernando Fernandez Mancera (1):
netfilter: nf_tables: fix device name and prefix match in hook lookup

Filipe Manana (3):
btrfs: tree-checker: print dev extent offset in error message
btrfs: abort transaction on failure to update inode for hole punching and reflinking
btrfs: check if there is space for chunk item when validating sys chunk array

Florian Maillard (1):
mmc: rtsx_pci_sdmmc: ignore broken write-protect on ThinkPad X260

Frank Sorenson (8):
smb: client: reject short Next offsets in parse_server_interfaces()
smb: client: fix next_buffer UAF and NextCommand bounds in compound PDUs
smb: client: fix OOB struct field reads in move_smb2_ea_to_cifs()
smb: client: fix potential OOB read in smb3_enum_snapshots()
smb: client: fix server->total_read for compound encrypted PDUs
smb: client: fix missing lower-bound check on DFS referral string offsets
smb: client: fix missing iov bounds check in parse_posix_sids()
smb: client: fix reparse buffer bounds in cifs_query_reparse_point()

Frieder Schrempf (1):
spi: fsl-qspi: Reprogram the clock rate when the operation frequency changes

Gabor Juhos (1):
spi: spi-qpic-snand: avoid writing QPIC_EBI2_ECC_BUF_CFG register

Gang Yan (1):
RDMA/rxe: Fix integer overflow in mr_check_range() leading to OOB access

Greg Kroah-Hartman (1):

      Linux 6.18.54

Gris Ge (1):
net: ip_tunnel: initialize options_len before referencing options

Guanghui Yang (1):
btrfs: clear free space tree creation state on rebuild failure

Guanglei Zhu (3):
net: wwan: t7xx: validate the netif index in t7xx_ccmni_recv_skb()
net: wwan: mhi_wwan_mbim: guard against a cyclic NDP chain
net: wwan: mhi_wwan_mbim: check skb_copy_bits() return value

Guangshuo Li (5):
i2c: imx: disable autosuspend on remove
hwmon: (w83791d) remove fan/pwm 4-5 sysfs group on remove
hwmon: (w83793) release probe data through kref drm/msm/adreno: fix autosuspend cleanup during teardown drm/msm/hdmi_phy: fix runtime PM cleanup on probe failure

Guoqing Jiang (1):
RDMA/siw: Clear association under lock if siw_qp_modify fails in siw_accept

Günther Noack (3):
selftests/landlock: Use an actual chardev for MAKE_CHAR audit test selftests/landlock: Add tests for whiteout object creation selftests/landlock: Add audit test for whiteout object creation

Hans de Goede (2):
Input: soc_button_array - fix MS Surface Pro 11 probe failure
Input: soc_button_array - check btns_desc->package.count

Hao-Qun Huang (1):
spi: virtio: Use the per-transfer bits per word

Henry Martin (1):
xfrm: iptfs: fix runt reassembly panic from short inner tot_len

Hohyun Sim (1):
net: fddi: skfp: fix NULL deref when setting the MAC address while down

Hongling Zeng (1):
btrfs: take commit root semaphore when iterating in mark_block_group_to_copy()

HyeongJun An (1):
ASoC: hdmi-codec: Report a change when the channel status moves

Hyunwoo Kim (1):
exec: Cleanup POSIX timers right after de_thread()

Ibrahim Abdelkader (1):
Bluetooth: hci_qca: Do not write to the serial port after it is closed

Ido Schimmel (2):
ipv6: Select best matching nexthop object in fib6_table_lookup()
ipv6: Honor oif when choosing nexthop for locally generated traffic

Ilia Levi (2):
drm/xe/mmio_gem: forbid VMA split drm/xe/mmio_gem: use write-back mapping for dummy page

Inbal Schussheim (1):
tcp: exclude old ACKs from tcp fast path

Itai Handler (1):
spi: spi-zynqmp-gqspi: stop the controller on shutdown

Iván Ezequiel Rodriguez (3):
Input: evdev - zero absinfo before partial copy in EVIOCSABS
Input: zero ff_effect before compat copy in input_ff_effect_from_user
ntsync: reject wait ioctls with zero owner

Jacob Moroni (1):
RDMA/irdma: Enforce local fence for IB_WR_REG_MR

Jakub Kicinski (1):
eth: fbnic: ring the doorbell if a burst ends in a drop

Jamal Hadi Salim (1):
net/sched: hhf: cap hh_flows_limit at change time

James Clark (1):
net: macb: fix ordering around PTP timestamp read

James Seo (1):
hwmon: (hp-wmi-sensors) Improve raw WMI string handling

Jarkko Sakkinen (1):
KEYS: trusted: Fix tpm2_load_cmd() boundary check

Jeffin Philip (1):
RDMA/core: fix refcount bug in iwpm_get_nlmsg_request()

Jens Axboe (1):
sunvdc: fix -EIO issue due to lack of retries

Jeremy Nyberg (1):
Input: xpad - fix PDP Marvel Xbox 360 controller

Jesse Casco (1):
drm/msm/dp: skip PUSH_IDLE when the link was never enabled

Jianbo Liu (1):
xfrm: Refactor xfrm_input lock to reduce contention with RSS

Jiangshan Yi (3):
ASoC: codecs: rt712-sdca-dmic: fix uninitialized stream_config->type
wifi: brcmsmac: fix UAF in brcms_free_timer()
wifi: libertas_tf: fix UAF in lbtf_free_adapter()

Jinke Han (1):
x86/kprobes: Fix crash when probing CS CALL instructions

Johannes Berg (26):
wifi: cfg80211: don't get the radio mask for netdev-less wdevs
wifi: cfg80211: check IP header size in cfg80211_classify8021d()
wifi: cfg80211: don't free driver-owned scan requests
wifi: cfg80211: only group hidden BSSes with beacon entries
wifi: cfg80211: don't filter by BSS type when removing stale entries
wifi: mac80211: don't start a ROC while scanning
wifi: mac80211: don't warn when an IBSS has no channel to scan
wifi: mac80211: don't offload TC setup on AP_VLAN interfaces
wifi: mac80211: suppress chanctx warning for debugfs reset
wifi: mac80211: abort chanswitch when leaving a mesh
wifi: mac80211: reset state when starting AP fails
wifi: cfg80211: restore netns_immutable on failures
wifi: cfg80211: undo netns switch if renaming the wiphy fails
wifi: mac80211: unlist vifs when their netdev is unregistered
wifi: cfg80211: get the wiphy out of a dying network namespace
wifi: mac80211_hwsim: don't hand frames to mac80211 while stopping
wifi: mac80211: don't allow injecting frames wider than the chanctx
wifi: mac80211: reset the AP_VLAN tailroom counter on ifdown
wifi: mac80211: require a peer station for TDLS setup confirm
wifi: mac80211: don't allow link changes when iface is down
wifi: mac80211: don't RCU-dereference the mesh CSA settings we just set
wifi: mac80211: don't access the TSF of a down interface
wifi: mac80211: add HE 6 GHz capability in the scan elems len
wifi: mac80211: mesh: reset the CSA state when leaving
wifi: mac80211: mesh: release the channel if start fails
wifi: mac80211: set up the TX info early to fix failure paths

Jonghyuk Kim(MalHyuk) (1):
drm/msm: RCU-free the scheduler-containing ring and VM objects

Joseph Qi (1):
smb: client: fix use-after-free of iface in cifs_try_adding_channels()

Josh Poimboeuf (1):
x86/alternative: Refactor INT3 call emulation selftest

Juan Perdomo (1):
Bluetooth: RFCOMM: avoid socket lock inversion in listener cleanup

Jérémy Jean (1):
RDMA/siw: Bound fragmented header copies by the remaining length

Karan Tilak Kumar (4):
scsi: fnic: Rename fnic_scsi_fcpio_reset()
scsi: fnic: Bump up version number
scsi: fnic: Make debug logging protocol independent
scsi: fnic: Bump up version number again

Karl Mehltretter (9):
scsi: qla2xxx: Fix the ql2xfc2target parameter description drm/msm: Fix the separate_gpu_kms parameter description drm/msm/adreno: Fix the skip_gpu parameter description
keys: fix lost wakeup when reaping a dead key type
Input: trackpoint - fix the inertia attribute name in the ABI document drm/vc4: Use managed KMS polling to fix UAF on unbind
wifi: brcmfmac: fix lost 802.1x TX completion wakeup
selinux: preserve user SID across nested backing files
selinux: recheck intermediate backing files on mprotect()

Koichiro Den (1):
arm64: dts: renesas: r8a779f0: Set UFS lane count

Krystian Kaniewski (1):
RDMA/core: Reject unregistering netdevs in ib_get_eth_speed

Kuninori Morimoto (2):
ASoC: sdw_utils: tidyup .count_sidecar
ASoC: sdw_utils: tidyup asoc_sdw_parse_sdw_endpoints()

Kuniyuki Iwashima (6):
neighbour: Enforce min/max to NDTPA_INTERVAL_PROBE_TIME_MS.
neighbour: Convert RTM_GETNEIGHTBL to RCU.
neighbour: Add missing RCU annotation for neightbl_dump_info().
neighbour: Skip default parms when resumed in neightbl_dump_info().
tcp: Don't call skb_clone_and_charge_r() for close()d listener in tcp_v6_do_rcv().
af_unix: Unify scc_index when finalising SCC in __unix_walk_scc().

Kyle Zeng (1):
xfrm: fix compat ALLOCSPI request use-after-free

Lachlan Hodges (1):
wifi: mac80211: include TIM bitmap control for buffered S1G mcast traffic

Laxman Acharya Padhya (1):
Bluetooth: hci_codec: validate vendor codec count length

Leon Romanovsky (2):
RDMA/efa: Keep admin queues alive while IRQ is registered RDMA/efa: Keep EQ resources alive while IRQ is registered

Li Jun (2):
watchdog: da9062: fix suspend/resume handling of HW_RUNNING watchdog
watchdog: da9063: fix suspend/resume handling of HW_RUNNING watchdog

Li RongQing (1):
RDMA/mad: Fix receive buffer leak when PKey enforcement fails

Linkai Gong (3):
RDMA/bnxt_re: check create_singlethread_workqueue() in DCB setup
i2c: atr: fix dangling adapter pointer on add failure
Input: cyttsp5 - clamp the HID report size before memcpy

Linmao Li (1):
wifi: mwifiex: prevent authentication frame length truncation

Linus Walleij (1):
net: ethernet: cortina: Ack RX overrun interrupt correctly

Liu Zhenlong (1):
i2c: qcom-cci: fix device_node refcount leak in cci_probe()/cci_remove()

Lorenzo Bianconi (2):
net: stmmac: do not overwrite phc_index when no PTP clock is registered
net: stmmac: propagate FPE preemption-class mapping errors

Lorenzo Stoakes (ARM) (3):
mm/mremap: account mm->locked_vm correctly for MREMAP_DONTUNMAP mm/huge_memory: bypass THP tuneables for huge pfnmap mappings mm/vma: correctly unaccount on mmap_prepare() failure

Luiz Augusto von Dentz (2):
Bluetooth: ISO: Fix parent socket leak in iso_conn_ready()
Bluetooth: ISO: set BT_LISTEN before requesting a BIG sync

Lyude Paul (4):
Revert "nouveau/gsp: fix suspend/resume regression on r570 firmware" drm/nouveau/gsp: Increase delay for magic sleep in r535_gsp_fini() drm/nouveau/gsp/r570: Set GcOff = 0 in fbsr drm/nouveau/gsp/r570: Enable S/R Display workaround in GSP

Maher Azzouzi (1):
esp: downgrade zerocopy managed frags before mutating skb frags

Maoyi Xie (3):
keys: translate request_key_auth pid for the reading procfs instance time/namespace: Export init_time_ns and do_timens_ktime_to_host()
ntsync: Honour caller's time namespace for absolute MONOTONIC timeouts

Mariano Baragiola (1):
wifi: virt_wifi: free skb when disconnected

Mark Amirkan (3):
net: lan743x: fix RX checksum use-after-free net/packet: clear RX owner on VNET header error net/packet: avoid truncating TPACKET_V3 private size

Mark Rutland (3):
arm64: percpu: Fix this_cpu_write() casting
arm64: percpu: Fix this_cpu_and() mask generation
arm64: percpu: Fix LSE operations on {8,16}-bit types

Matthew Schwartz (1):
x86/fred: Reconstruct the #GP context for rejected INT instructions

Matthieu Buffet (3):
landlock: Fix TCP Fast Open connection bypass selftests/landlock: Add test for TCP fast open selftests/landlock: Add missing connect(minimal AF_UNSPEC) test

Maximilian Heyne (1):
selftests/landlock: Explicitly disable audit in teardowns

Meijing Zhao (1):
mm: memblock: show all region flags in debugfs

Mengshi Wu (1):
Bluetooth: hci_qca: Refactor HFP hardware offload capability handling

Michael Bommarito (1):
RDMA/rxe: insert mcg into mcg_tree only after rxe_mcast_add() succeeds

Mickaël Salaün (3):
selftests/landlock: Fix socket file descriptor leaks in audit helpers selftests/landlock: Increase default audit socket timeout selftests/landlock: Add disconnected leafs and branch test suites

Mike Lothian (1):
drm/amdgpu: hold a runtime PM reference for P2P dma-buf attachments

Muhammad Bilal (1):
hwmon: (hp-wmi-sensors) Fix use-after-free in fungible_show()

Myeonghun Pak (1):
mmc: sdhci-of-aspeed: Remove children before releasing SDC resources

Namjae Jeon (5):
ksmbd: return buffer overflow for partial filesystem info
ksmbd: fix partial file information responses
ksmbd: keep compound responses on query info errors
ksmbd: fix partial normalized name responses
Revert "ksmbd: Fix to handle removal of rfc1002 header from smb_hdr"

Nguyen Ngoc Thang (1):

      ALSA: pcm: set timer->private_data before registering the PCM timer

Nhat Pham (1):
mm, swap: fix SWAP_USAGE_OFFLIST_BIT collision with real usage count

Nicolai Buchwitz (2):
net: bcmgenet: convert RX path to page_pool
net: bcmgenet: restore the hardware filters on open

Nicolas Escande (1):
wifi: ath11k: cleanup arsta in ath11k_mac_peer_cleanup_all()

Nicolas Thibert (1):
Bluetooth: btusb: fix NXP IW610 composite device handling

Niklas Cassel (1):
ata: libahci: clear PxCLBU and PxFBU for AHCI_HFLAG_32BIT_ONLY

Nikolay Aleksandrov (1):
net: bridge: mst: move switchdev call outside rcu

Norbert Szetei (1):
RDMA/rxe: validate access flags before swapping the MR's PD

Nuno Sá (1):
hwmon: (pmbus/core) increase number of phases and add new mask

Or Har-Toov (1):
RDMA/mlx5: Remove warn on missing representor in query_port_speed

Orgad Shaneh (1):
MIPS: Octeon: apply USB FDT fixups also when USB is modular

Ovidiu Panait (3):
arm64: dts: renesas: r9a09g057: Switch GBETH TX queue scheduling to WRR
arm64: dts: renesas: r9a09g056: Switch GBETH TX queue scheduling to WRR
arm64: dts: renesas: r9a09g047: Switch GBETH TX queue scheduling to WRR

Pablo Neira Ayuso (2):
netfilter: nf_nat: unregister and release hooks on error
netfilter: flowtable: hold reference on ct until flow is released

Paulo Alcantara (4):
smb: client: cancel reconnect work in clean_demultiplex_info()
smb: client: fix rlist race and missing initialization
smb: client: fix smbd_connection leak on cifs_get_tcp_session() error
smb: client: fix unaligned access in WSL reparse point parser

Peng Hao (1):
wifi: mwifiex: fix IRQ leak using wrong index in MSI-X error path

Pengpeng Hou (2):
ARM: socfpga: select the PL310 erratum 753970 workaround
wifi: mwifiex: validate scan response extents

Peter Zijlstra (1):
futex: Also allocate private hash on vfork()

Pierre-Eric Pelloux-Prayer (1):
drm/amdgpu: lock bo before calling amdgpu_vm_bo_update_shared

Quanye Yang (2):
RDMA/rtrs-clt: Fix CQ pool leak when connect is interrupted RDMA/ucma: Serialize join and leave on copy_to_user failure

Rafael J. Wysocki (1):
ACPI: processor: Update cpuidle driver check in __acpi_processor_start()

Raphaël Larocque (1):
Input: synaptics - disable InterTouch on ThinkPad T440p (board id 2722)

Richard Fitzgerald (3):
ASoC: Rename snd_soc_dai_link_ch_map.ch_mask to cpu_ch_mask
ASoC: Add codec_ch_mask to snd_soc_dai_link_ch_map
ASoC: soc-pcm: Apply snd_soc_dai_link_ch_map.codec_ch_mask to codec params

Rik van Riel (1):
wifi: mac80211: avoid WARN in set_bitrate_mask when sdata not in driver

Roberts Kursitis (1):
Input: xpad - add support for Azeron devices

Roshan Kumar (1):
xfrm: iptfs: fix stack OOB read in iptfs_skb_reset_frag_walk()

Runyu Xiao (4):
gpio: virtuser: skip free_irq when no IRQ is installed
mmc: sh_mmcif: initialize IRQ-thread mutex before requesting interrupt
Input: hp_sdc - shut down kicker timer on module exit
wifi: wlcore: release runtime PM ref on regdomain config failure

Ruoyu Wang (1):
dmaengine: sprd: Fix runtime PM reference leak in probe

Sabrina Dubroca (1):
xfrm: avoid RCU warnings around the per-netns netlink socket

Sai Teja Aluvala (1):
Bluetooth: btintel_pcie: fix off-by-one bounds check in RX submit

Saim Shujah (1):
drm/msm/dpu: clear pending peripheral flush state

Sajal Gupta (1):
drm/gud: fix out-of-bounds write in gud_plane_atomic_check()

Sanman Pradhan (2):
hwmon: (pmbus/tps53679) Fix TPS53676 phase page decoding
hwmon: (pmbus/tps53679) Select page 0 for single-page TPS53676

Sasha Levin (2):
Revert "perf annotate: Fix build with NO_SLANG=1"
ASoC: ux500: Parenthesize MSP_{RX,TX}_CLKPOL_BIT() arguments

Seunguk Shin (1):
fs/dax: check zero or empty entry before converting xarray entry

Shakeel Butt (2):
memcg: avoid charging the root memcg from obj_cgroup_charge_pages() mm/mlock: use the IRQ-safe accessor for NR_MLOCK in __munlock_folio()

Shengzhuo Wei (4):
i2c: at91: release DMA channels on remove and probe error
i2c: imx: release DMA channels on probe error
wifi: p54: validate curve data length in the calibration curve converters
wifi: p54: require a full exp_if record in PDR_INTERFACE_LIST

Shivank Garg (3):
dmaengine: Fix device kref underflow in dma_chan_put()
dmaengine: fix use-after-free in dma_chan_put() and dma_release_channel()
dmaengine: wait for RCU readers before releasing dma_device

Shivaprasad G Bhat (1):
powerpc/iommu: Fix the overflow validation in iommu_tce_check_ioba

Shmulik Cohen (2):
wifi: libipw: reject too-short beacon and probe responses
wifi: libipw: reject too-short association responses

Shouping Wang (1):
perf/arm-cmn: Fix wp_dev_sel2 setting for multi-DTM configurations

Shuangpeng Bai (1):
IB/mlx4: Fix use-after-free on pkey sysfs registration failure

Shuhei Takeshita (2):
IB/hfi1: Resolve the credit-return buffer through the send context's node IB/hfi1: Fix the PIO_CRED credit-return mmap

Shuicheng Lin (2):
drm/xe/mmio_gem: Revoke drm_vma_node on xe_mmio_gem destroy drm/xe/shrinker: Return the freed page count through a parameter

Siwei Zhang (1):
xfrm: use hlist_del_init_rcu for state_cache and state_cache_input

Slavin Liu (1):
ALSA: hda: trace PCM open only after assigning a stream

Sophie D (1):
drm/gud: Ignore damage clips in full update mode

Stanislaw Gruszka (1):
wifi: iwlegacy: fix broadcast stations deallocation

Sun YangKai (1):
btrfs: more trivial BTRFS_PATH_AUTO_FREE conversions

Takashi Iwai (4):
ALSA: bcd2000: Fix race between rawmidi and disconnect
ALSA: usb: 6fire: Avoid embedded URBs
ALSA: core: Fix potential UAF after asynchronous card release
ALSA: usb-audio: Optimize the copy of packet sizes for implicit fb handling

Thadeu Lima de Souza Cascardo (1):
drm: Fix drm_pending_vblank_event leak in error path for out_fence_ptr

ThangNN99 (1):
Bluetooth: hci_core: Fix queuing tx_work after workqueue is drained

Theodor Arsenij Larionov Trichkine (1):
netfilter: nft_nat: fully initialise new_addr in netmap setup

Thomas Gleixner (3):
posix-cpu-timers: Prevent freeing a timer which is queued on the expiry list
signal: Move MMCID exit out of sighand lock
signal: Prevent exec() race

Thomas Huth (1):
kselftest/arm64: Fix size of thread_data values for pthread_join()

Thomas Richard (congatec GmbH) (2):
hwmon: (cgbc-hwmon) Fix current sensors ID lookup
hwmon: (cgbc-hwmon) Add missing sensors

Tianchu Chen (2):
wifi: rsi: fix heap OOB write on key removal
wifi: wilc1000: fix RX buffer OOB-write in wilc_wlan_handle_isr_ext()

Tingmao Wang (1):
selftests/landlock: Add tests for access through disconnected paths

Tzung-Bi Shih (6):
Bluetooth: btmtksdio: Fix PM runtime reference leak in shutdown
watchdog: digicolor: Avoid division by zero
watchdog: msc313e: Fix premature reset during timeout update
watchdog: msc313e: Propagate error code in resume()
watchdog: rtd119x: Avoid division by zero
watchdog: rzv2h: Avoid division by zero

Vijendar Mukunda (3):
ASoC: amd: acp: bounds-check SoundWire link ID in machine drivers
ASoC: amd: acp: refactor codec config count in SOF SoundWire machine driver
ASoC: amd: acp: fix ffs() operator precedence for SoundWire link ID

Vivek Sahu (1):
Bluetooth: qca: Refactor code on the basis of chipset names

Weiming Shi (2):
RDMA/rxe: Restore HMM_PFN_WRITE check in ODP write paths
Bluetooth: coredump: Quiesce dump work on unregister

Wenjie Qi (1):
mm: filemap: retain mapped dropbehind folios

Wentao Liang (4):
ata: libahci_platform: Fix device reference leak in ahci_platform_get_resources()
cifs: Fix server use-after-free in cifs_chan_skip_or_disable()
watchdog: sp5100_tco: Fix pci_dev reference leak in sp5100_tco_init()
watchdog: starfive-wdt: Fix runtime PM leak in starfive_wdt_pm_start()

William Bright (1):
drm/msm/dp: fix link bandwidth check when wide bus is enabled

Wyatt Feng (1):
net: xfrm: reject unrepresentable espintcp transport headers

Xiang Mei (2):
ALSA: 6fire: fix OOB write from device-reported iso length
ALSA: usb-audio: Clamp implicit feedback packet count to URB capacity

Xixin Liu (2):
firmware: arm_scpi: reject DVFS OPP count above MAX_DVFS_OPPS
clk: scpi: bound-check DVFS index in scpi_dvfs_recalc_rate

Xu Rao (1):
mmc: spi: reset bytes_xfered before retrying CRC failures

Xuanqiang Luo (1):
net/sched: act_api: release tail references on DELACTION failure

Yehyeong Lee (2):
IB/iser: reject a remote invalidation of an unregistered direction IB/isert: wait for deferred control PDU completions before releasing the connection

Yibo Tan (1):
hwmon: (pwm-fan) Stop RPM timer before freeing tach data

Yifei Gao (1):
memstick: ms_block: destroy io_queue workqueue on removal

Yige Jiang (1):
net: netsec: fix device_node reference leak on phy_np

Yuho Choi (1):
ALSA: virtio: reset device before deleting virtqueues

Zhao Li (1):
wifi: mwifiex: validate action frame fixed fields

Zhiling Zou (3):
openvswitch: avoid reallocating confirmed conntrack labels
ipv6: xfrm: use full sockets in local error paths
xfrm: save input state data before secpath resets

Zhu Ling (1):
mmc: core: Fix OF node reference leak on card add failure

Zihan Xi (1):
wifi: virt_wifi: don't transfer operstate before register

Zijun Hu (1):
Bluetooth: hci_qca: fix NULL pointer dereference in qca_setup() for non-serdev device

Zizhi Wo (1):
smb: client: fix busy dentry warning on unmount after DIO

hpp.iscas (1):
Input: eeti_ts - publish the OF module alias

author maintainer
#1 lore raw
Documentation/ABI/testing/sysfs-devices-platform-trackpoint +1 -1
index df11901a6b3d..7954434b0434 100644
@@ -5,7 +5,7 @@ Contact:	[email protected]
 Description:
 		(RW) Trackpoint sensitivity.
 
-What:		/sys/devices/platform/i8042/.../intertia
+What:		/sys/devices/platform/i8042/.../inertia
 Date:		Aug, 2005
 KernelVersion:	2.6.14
 Contact:	[email protected]
Documentation/hwmon/cgbc-hwmon.rst +26 -16

60 lines not on this page · raw message

Documentation/netlink/specs/rt-neigh.yaml +3 -0
index 2f568a6231c9..e366e958234e 100644
@@ -341,6 +341,9 @@ attribute-sets:
       -
         name: interval-probe-time-ms
         type: u64
+        checks:
+          min: 1
+          max: 86400000
 
 operations:
   enum-model: directional
Documentation/networking/ip-sysctl.rst +3 -1
index 7a637e87005f..27a861053b2f 100644
@@ -230,7 +230,7 @@ neigh/default/unres_qlen - INTEGER
 
 neigh/default/interval_probe_time_ms - INTEGER
 	The probe interval for neighbor entries with NTF_MANAGED flag,
-	the min value is 1.
+	the min value is 1, and the max value is 86400000 (1 day).
 
 	Default: 5000
 
@@ -844,6 +844,8 @@ tcp_rmem - vector of 3 INTEGERs: min, default, max
 	case this value is ignored.
 	Default: between 131072 and 32MB, depending on RAM size.
 
+	Each of the three values cannot be set below 4096.
+
 tcp_sack - BOOLEAN
 	Enable select acknowledgments (SACKS).
 
Makefile +1 -1
index f1562b84fb2e..56bb2168e656 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 6
 PATCHLEVEL = 18
-SUBLEVEL = 53
+SUBLEVEL = 54
 EXTRAVERSION =
 NAME = Baby Opossum Posse
 
arch/arm/mach-socfpga/Kconfig +1 -1
index eb72c240c248..528c5c1368c3 100644
@@ -16,7 +16,7 @@ menuconfig ARCH_INTEL_SOCFPGA
 	select ARM_ERRATA_775420
 	select PL310_ERRATA_588369
 	select PL310_ERRATA_727915
-	select PL310_ERRATA_753970 if PL310
+	select PL310_ERRATA_753970
 	select PL310_ERRATA_769419
 	select RESET_CONTROLLER
 
arch/arm64/boot/dts/renesas/r8a779f0.dtsi +1 -0
index b496495c59a6..7a5f5e31ea13 100644
@@ -891,6 +891,7 @@ ufs: ufs@e6860000 {
 			clocks = <&cpg CPG_MOD 1514>, <&ufs30_clk>;
 			clock-names = "fck", "ref_clk";
 			freq-table-hz = <200000000 200000000>, <38400000 38400000>;
+			lanes-per-direction = <1>;
 			power-domains = <&sysc R8A779F0_PD_ALWAYS_ON>;
 			resets = <&cpg 1514>;
 			status = "disabled";
arch/arm64/boot/dts/renesas/r9a09g047.dtsi +10 -0
index 47d843c79021..603810ed3947 100644
@@ -973,23 +973,28 @@ queue3 {
 
 			mtl_tx_setup0: tx-queues-config {
 				snps,tx-queues-to-use = <4>;
+				snps,tx-sched-wrr;
 
 				queue0 {
+					snps,weight = <0x10>;
 					snps,dcb-algorithm;
 					snps,priority = <0x1>;
 				};
 
 				queue1 {
+					snps,weight = <0x12>;
 					snps,dcb-algorithm;
 					snps,priority = <0x2>;
 				};
 
 				queue2 {
+					snps,weight = <0x14>;
 					snps,dcb-algorithm;
 					snps,priority = <0x4>;
 				};
 
 				queue3 {
+					snps,weight = <0x18>;
 					snps,dcb-algorithm;
 					snps,priority = <0x8>;
 				};
@@ -1073,23 +1078,28 @@ queue3 {
 
 			mtl_tx_setup1: tx-queues-config {
 				snps,tx-queues-to-use = <4>;
+				snps,tx-sched-wrr;
 
 				queue0 {
+					snps,weight = <0x10>;
 					snps,dcb-algorithm;
 					snps,priority = <0x1>;
 				};
 
 				queue1 {
+					snps,weight = <0x12>;
 					snps,dcb-algorithm;
 					snps,priority = <0x2>;
 				};
 
 				queue2 {
+					snps,weight = <0x14>;
 					snps,dcb-algorithm;
 					snps,priority = <0x4>;
 				};
 
 				queue3 {
+					snps,weight = <0x18>;
 					snps,dcb-algorithm;
 					snps,priority = <0x8>;
 				};
arch/arm64/boot/dts/renesas/r9a09g056.dtsi +10 -0
index 887110878906..cde453fd35e2 100644
@@ -827,23 +827,28 @@ queue3 {
 
 			mtl_tx_setup0: tx-queues-config {
 				snps,tx-queues-to-use = <4>;
+				snps,tx-sched-wrr;
 
 				queue0 {
+					snps,weight = <0x10>;
 					snps,dcb-algorithm;
 					snps,priority = <0x1>;
 				};
 
 				queue1 {
+					snps,weight = <0x12>;
 					snps,dcb-algorithm;
 					snps,priority = <0x2>;
 				};
 
 				queue2 {
+					snps,weight = <0x14>;
 					snps,dcb-algorithm;
 					snps,priority = <0x4>;
 				};
 
 				queue3 {
+					snps,weight = <0x18>;
 					snps,dcb-algorithm;
 					snps,priority = <0x8>;
 				};
@@ -928,23 +933,28 @@ queue3 {
 
 			mtl_tx_setup1: tx-queues-config {
 				snps,tx-queues-to-use = <4>;
+				snps,tx-sched-wrr;
 
 				queue0 {
+					snps,weight = <0x10>;
 					snps,dcb-algorithm;
 					snps,priority = <0x1>;
 				};
 
 				queue1 {
+					snps,weight = <0x12>;
 					snps,dcb-algorithm;
 					snps,priority = <0x2>;
 				};
 
 				queue2 {
+					snps,weight = <0x14>;
 					snps,dcb-algorithm;
 					snps,priority = <0x4>;
 				};
 
 				queue3 {
+					snps,weight = <0x18>;
 					snps,dcb-algorithm;
 					snps,priority = <0x8>;
 				};
arch/arm64/boot/dts/renesas/r9a09g057.dtsi +10 -0
index 100d5cab9b12..dc41290ed9c5 100644
@@ -1160,23 +1160,28 @@ queue3 {
 
 			mtl_tx_setup0: tx-queues-config {
 				snps,tx-queues-to-use = <4>;
+				snps,tx-sched-wrr;
 
 				queue0 {
+					snps,weight = <0x10>;
 					snps,dcb-algorithm;
 					snps,priority = <0x1>;
 				};
 
 				queue1 {
+					snps,weight = <0x12>;
 					snps,dcb-algorithm;
 					snps,priority = <0x2>;
 				};
 
 				queue2 {
+					snps,weight = <0x14>;
 					snps,dcb-algorithm;
 					snps,priority = <0x4>;
 				};
 
 				queue3 {
+					snps,weight = <0x18>;
 					snps,dcb-algorithm;
 					snps,priority = <0x8>;
 				};
@@ -1261,23 +1266,28 @@ queue3 {
 
 			mtl_tx_setup1: tx-queues-config {
 				snps,tx-queues-to-use = <4>;
+				snps,tx-sched-wrr;
 
 				queue0 {
+					snps,weight = <0x10>;
 					snps,dcb-algorithm;
 					snps,priority = <0x1>;
 				};
 
 				queue1 {
+					snps,weight = <0x12>;
 					snps,dcb-algorithm;
 					snps,priority = <0x2>;
 				};
 
 				queue2 {
+					snps,weight = <0x14>;
 					snps,dcb-algorithm;
 					snps,priority = <0x4>;
 				};
 
 				queue3 {
+					snps,weight = <0x18>;
 					snps,dcb-algorithm;
 					snps,priority = <0x8>;
 				};
arch/arm64/include/asm/percpu.h +10 -10
index b57b2bb00967..8cf4068ce1b5 100644
@@ -77,7 +77,7 @@ __percpu_##name##_case_##sz(void *ptr, unsigned long val)		\
 	"	stxr" #sfx "\t%w[loop], %" #w "[tmp], %[ptr]\n"		\
 	"	cbnz	%w[loop], 1b",					\
 	/* LSE atomics */						\
-		#op_lse "\t%" #w "[val], %" #w "[tmp], %[ptr]\n"	\
+		#op_lse #sfx "\t%" #w "[val], %" #w "[tmp], %[ptr]\n"	\
 		__nops(3))						\
 	: [loop] "=&r" (loop), [tmp] "=&r" (tmp),			\
 	  [ptr] "+Q"(*(u##sz *)ptr)					\
@@ -98,7 +98,7 @@ __percpu_##name##_return_case_##sz(void *ptr, unsigned long val)	\
 	"	stxr" #sfx "\t%w[loop], %" #w "[ret], %[ptr]\n"		\
 	"	cbnz	%w[loop], 1b",					\
 	/* LSE atomics */						\
-		#op_lse "\t%" #w "[val], %" #w "[ret], %[ptr]\n"	\
+		#op_lse #sfx "\t%" #w "[val], %" #w "[ret], %[ptr]\n"	\
 		#op_llsc "\t%" #w "[ret], %" #w "[ret], %" #w "[val]\n"	\
 		__nops(2))						\
 	: [loop] "=&r" (loop), [ret] "=&r" (ret),			\
@@ -179,13 +179,13 @@ PERCPU_RET_OP(add, add, ldadd)
 	_pcp_protect_return(__percpu_read_64, pcp)
 
 #define this_cpu_write_1(pcp, val)	\
-	_pcp_protect(__percpu_write_8, pcp, (unsigned long)val)
+	_pcp_protect(__percpu_write_8, pcp, (unsigned long)(val))
 #define this_cpu_write_2(pcp, val)	\
-	_pcp_protect(__percpu_write_16, pcp, (unsigned long)val)
+	_pcp_protect(__percpu_write_16, pcp, (unsigned long)(val))
 #define this_cpu_write_4(pcp, val)	\
-	_pcp_protect(__percpu_write_32, pcp, (unsigned long)val)
+	_pcp_protect(__percpu_write_32, pcp, (unsigned long)(val))
 #define this_cpu_write_8(pcp, val)	\
-	_pcp_protect(__percpu_write_64, pcp, (unsigned long)val)
+	_pcp_protect(__percpu_write_64, pcp, (unsigned long)(val))
 
 #define this_cpu_add_1(pcp, val)	\
 	_pcp_protect(__percpu_add_case_8, pcp, val)
@@ -206,13 +206,13 @@ PERCPU_RET_OP(add, add, ldadd)
 	_pcp_protect_return(__percpu_add_return_case_64, pcp, val)
 
 #define this_cpu_and_1(pcp, val)	\
-	_pcp_protect(__percpu_andnot_case_8, pcp, ~val)
+	_pcp_protect(__percpu_andnot_case_8, pcp, ~(u8)(val))
 #define this_cpu_and_2(pcp, val)	\
-	_pcp_protect(__percpu_andnot_case_16, pcp, ~val)
+	_pcp_protect(__percpu_andnot_case_16, pcp, ~(u16)(val))
 #define this_cpu_and_4(pcp, val)	\
-	_pcp_protect(__percpu_andnot_case_32, pcp, ~val)
+	_pcp_protect(__percpu_andnot_case_32, pcp, ~(u32)(val))
 #define this_cpu_and_8(pcp, val)	\
-	_pcp_protect(__percpu_andnot_case_64, pcp, ~val)
+	_pcp_protect(__percpu_andnot_case_64, pcp, ~(u64)(val))
 
 #define this_cpu_or_1(pcp, val)		\
 	_pcp_protect(__percpu_or_case_8, pcp, val)
arch/arm64/kernel/hibernate-asm.S +2 -0
index 0e1d9c3c6a93..2baefe7a82d3 100644
@@ -89,6 +89,8 @@ alternative_insn "dc cvau, x4",  "dc civac, x4",  ARM64_WORKAROUND_CLEAN_CACHE
 	isb
 
 	cbz	x24, 3f		/* Do we need to re-initialise EL2? */
+	mov	x1, x24
+	mov	x0, #HVC_SET_VECTORS
 	hvc	#0
 3:	ret
 SYM_CODE_END(swsusp_arch_suspend_exit)
arch/arm64/kernel/hibernate.c +2 -2
index 7bf117427777..424291c547f0 100644
@@ -423,8 +423,8 @@ int __nocfi swsusp_arch_resume(void)
 	 * Create a second copy of just the linear map, and use this when
 	 * restoring.
 	 */
-	rc = trans_pgd_create_copy(&trans_info, &tmp_pg_dir, PAGE_OFFSET,
-				   PAGE_END);
+	rc = trans_pgd_create_copy(&trans_info, &tmp_pg_dir,
+				   _PAGE_OFFSET(vabits_actual), PAGE_END);
 	if (rc)
 		return rc;
 
arch/mips/cavium-octeon/octeon-platform.c +2 -2
index 47677b5d7ed0..f53c98372e0b 100644
@@ -18,7 +18,7 @@
 #include <asm/octeon/octeon.h>
 #include <asm/octeon/cvmx-helper-board.h>
 
-#ifdef CONFIG_USB
+#if IS_ENABLED(CONFIG_USB)
 #include <linux/usb/ehci_def.h>
 #include <linux/usb/ehci_pdriver.h>
 #include <linux/usb/ohci_pdriver.h>
@@ -1080,7 +1080,7 @@ int __init octeon_prune_device_tree(void)
 		;
 	}
 
-#ifdef CONFIG_USB
+#if IS_ENABLED(CONFIG_USB)
 	/* OHCI/UHCI USB */
 	alias_prop = fdt_getprop(initial_boot_params, aliases,
 				 "uctl", NULL);
arch/powerpc/kernel/iommu.c +1 -1
index 244eb4857e7f..0a7d14f651e8 100644
@@ -1075,7 +1075,7 @@ int iommu_tce_check_ioba(unsigned long page_shift,
 	if (ioba < offset)
 		return -EINVAL;
 
-	if ((ioba + 1) > (offset + size))
+	if ((ioba + npages < ioba) || (ioba - offset + npages > size))
 		return -EINVAL;
 
 	return 0;
arch/powerpc/kvm/book3s_hv_nested.c +2 -0
index 5f8c2321cfb5..7b10caa3424c 100644
@@ -1204,8 +1204,10 @@ static void kvmhv_emulate_tlbie_all_lpid(struct kvm_vcpu *vcpu, int ric)
 
 	spin_lock(&kvm->mmu_lock);
 	idr_for_each_entry(&kvm->arch.kvm_nested_guest_idr, gp, lpid) {
+		++gp->refcnt;
 		spin_unlock(&kvm->mmu_lock);
 		kvmhv_emulate_tlbie_lpid(vcpu, gp, ric);
+		kvmhv_put_nested(gp);
 		spin_lock(&kvm->mmu_lock);
 	}
 	spin_unlock(&kvm->mmu_lock);
arch/powerpc/kvm/book3s_hv_uvmem.c +4 -1
index 03f8c34fa0a2..01ab5c653d7c 100644
@@ -779,8 +779,11 @@ static int kvmppc_svm_page_in(struct vm_area_struct *vma,
 		if (spage) {
 			ret = uv_page_in(kvm->arch.lpid, pfn << page_shift,
 					gpa, 0, page_shift);
-			if (ret)
+			if (ret) {
+				unlock_page(dpage);
+				put_page(dpage);
 				goto out_finalize;
+			}
 		}
 	}
 
arch/x86/Kconfig.cpu +11 -0
index 755d64bb9d26..d8ee9ee52068 100644
@@ -255,10 +255,21 @@ config CC_HAS_MARCH_NATIVE
 	# usage warnings that only appear wth '-march=native'.
 	depends on CC_IS_GCC || CLANG_VERSION >= 190100
 
+config RUSTC_HAS_APXF
+	# The kernel isn't ready for in-kernel APX instructions. Without
+	# explicit frontend gating of APX, the backend may emit those
+	# instructions in native builds.
+	#
+	# Rust 1.88 added the `apxf` feature option, but versions before 1.93
+	# emit an `apxf` target attribute that only LLVM 23+ can interpret.
+	def_bool (RUSTC_VERSION >= 108800 && RUSTC_LLVM_MAJOR_VERSION >= 23) || \
+		 RUSTC_VERSION >= 109300
+
 config X86_NATIVE_CPU
 	bool "Build and optimize for local/native CPU"
 	depends on X86_64
 	depends on CC_HAS_MARCH_NATIVE
+	depends on !RUST || RUSTC_HAS_APXF
 	help
 	  Optimize for the current CPU used to compile the kernel.
 	  Use this option if you intend to build the kernel for your
arch/x86/Makefile +5 -0
index 5aa6d5f4c197..9f3553263f7b 100644
@@ -168,6 +168,11 @@ else
 
 ifdef CONFIG_X86_NATIVE_CPU
         KBUILD_CFLAGS += -march=native
+        # Prevent the compiler from generating EGPR use. The kernel is
+        # not yet prepared for general in-kernel use.
+        KBUILD_CFLAGS += $(call cc-option,-mno-apx-features=egpr)
+
+        # generate_rust_target.rs handles Rust APX gating.
         KBUILD_RUSTFLAGS += -Ctarget-cpu=native
 else
         KBUILD_CFLAGS += -march=x86-64 -mtune=generic
arch/x86/entry/entry_fred.c +10 -1
index 9f50f0c1c00f..c43c750fa26d 100644
@@ -10,6 +10,7 @@
 #include <asm/desc.h>
 #include <asm/fred.h>
 #include <asm/idtentry.h>
+#include <asm/processor-flags.h>
 #include <asm/syscall.h>
 #include <asm/trapnr.h>
 #include <asm/traps.h>
@@ -71,7 +72,15 @@ static noinstr void fred_intx(struct pt_regs *regs)
 #endif
 
 	default:
-		return exc_general_protection(regs, 0);
+		/*
+		 * Reconstruct the #GP fault state that IDT delivery would produce.
+		 * Clear the software event flag so ERETU with TF set does not trap
+		 * before the resumed instruction. See prevent_single_step_upon_eretu().
+		 */
+		regs->ip -= regs->fred_ss.insnlen;
+		regs->flags |= X86_EFLAGS_RF;
+		regs->fred_ss.swevent = 0;
+		return exc_general_protection(regs, (regs->fred_ss.vector << 3) | 2);
 	}
 }
 
arch/x86/include/asm/text-patching.h +2 -2
index f2d142a0a862..ea09381070e8 100644
@@ -164,9 +164,9 @@ unsigned long int3_emulate_pop(struct pt_regs *regs)
 }
 
 static __always_inline
-void int3_emulate_call(struct pt_regs *regs, unsigned long func)
+void int3_emulate_call(struct pt_regs *regs, unsigned long ip, unsigned long func)
 {
-	int3_emulate_push(regs, regs->ip - INT3_INSN_SIZE + CALL_INSN_SIZE);
+	int3_emulate_push(regs, ip);
 	int3_emulate_jmp(regs, func);
 }
 
arch/x86/kernel/alternative.c +30 -23

93 lines not on this page · raw message

arch/x86/kernel/cpu/microcode/intel.c +26 -0
index 371ca6eac00e..9e014c9241f9 100644
@@ -257,6 +257,26 @@ static void save_microcode_patch(struct microcode_intel *patch)
 		pr_err("Unable to allocate microcode memory size: %u\n", size);
 }
 
+static bool revision_is_safe(struct cpu_signature *sig, u32 rev)
+{
+	u32 vfm = IFM(x86_family(sig->sig), x86_model(sig->sig));
+
+	/*
+	 * Erratum GNR98 can cause #MCs if "jumping over" revision 0x1000405.
+	 * Avoid the jumps.
+	 */
+	if (vfm == INTEL_GRANITERAPIDS_X &&
+	    x86_stepping(sig->sig) == 1 &&
+	    sig->pf & 0x95 &&
+	    sig->rev < 0x1000405 &&
+	    rev > 0x1000405) {
+		pr_err_once("Erratum GNR98: skipping revision 0x%x.\n", rev);
+		return false;
+	}
+
+	return true;
+}
+
 /* Scan blob for microcode matching the boot CPUs family, model, stepping */
 static __init struct microcode_intel *scan_microcode(void *data, size_t size,
 						     struct ucode_cpu_info *uci,
@@ -278,6 +298,9 @@ static __init struct microcode_intel *scan_microcode(void *data, size_t size,
 		if (!intel_find_matching_signature(data, &uci->cpu_sig))
 			continue;
 
+		if (!revision_is_safe(&uci->cpu_sig, mc_header->rev))
+			continue;
+
 		/*
 		 * For saving the early microcode, find the matching revision which
 		 * was loaded on the BSP.
@@ -534,6 +557,9 @@ static enum ucode_state parse_microcode_blobs(int cpu, struct iov_iter *iter)
 		if (!intel_find_matching_signature(mc, &uci->cpu_sig))
 			continue;
 
+		if (!revision_is_safe(&uci->cpu_sig, mc_header.rev))
+			continue;
+
 		is_safe = ucode_validate_minrev(&mc_header);
 		if (force_minrev && !is_safe)
 			continue;
arch/x86/kernel/kprobes/core.c +2 -3
index 3863d7709386..95ab48b3b0f8 100644
@@ -511,10 +511,9 @@ NOKPROBE_SYMBOL(kprobe_emulate_ret);
 
 static void kprobe_emulate_call(struct kprobe *p, struct pt_regs *regs)
 {
-	unsigned long func = regs->ip - INT3_INSN_SIZE + p->ainsn.size;
+	unsigned long ip = regs->ip - INT3_INSN_SIZE + p->ainsn.size;
 
-	func += p->ainsn.rel32;
-	int3_emulate_call(regs, func);
+	int3_emulate_call(regs, ip, ip + p->ainsn.rel32);
 }
 NOKPROBE_SYMBOL(kprobe_emulate_call);
 
drivers/acpi/processor_driver.c +1 -1
index 06589bf488f7..1b4d2e11a1b1 100644
@@ -166,7 +166,7 @@ static int __acpi_processor_start(struct acpi_device *device)
 	if (result && !IS_ENABLED(CONFIG_ACPI_CPU_FREQ_PSS))
 		dev_dbg(&device->dev, "CPPC data invalid or not present\n");
 
-	if (!cpuidle_get_driver() || cpuidle_get_driver() == &acpi_idle_driver)
+	if (cpuidle_get_driver() == &acpi_idle_driver)
 		acpi_processor_power_init(pr);
 
 	acpi_pss_perf_init(pr);
drivers/ata/libahci.c +14 -1
index c79abdfcd7a9..ecb56bb50fd7 100644
@@ -748,15 +748,28 @@ void ahci_start_fis_rx(struct ata_port *ap)
 	struct ahci_port_priv *pp = ap->private_data;
 	u32 tmp;
 
-	/* set FIS registers */
+	/*
+	 * On HBAs that only support 32-bit addressing PxCLBU is read only '0'.
+	 * When applying the AHCI_HFLAG_32BIT_ONLY quirk, PxCLBU is RW, and the
+	 * reset value is Implementation Specific, so we need to clear it to 0.
+	 */
 	if (hpriv->cap & HOST_CAP_64)
 		writel((pp->cmd_slot_dma >> 16) >> 16,
 		       port_mmio + PORT_LST_ADDR_HI);
+	else if (hpriv->flags & AHCI_HFLAG_32BIT_ONLY)
+		writel(0, port_mmio + PORT_LST_ADDR_HI);
 	writel(pp->cmd_slot_dma & 0xffffffff, port_mmio + PORT_LST_ADDR);
 
+	/*
+	 * On HBAs that only support 32-bit addressing PxFBU is read only '0'.
+	 * When applying the AHCI_HFLAG_32BIT_ONLY quirk, PxFBU is RW, and the
+	 * reset value is Implementation Specific, so we need to clear it to 0.
+	 */
 	if (hpriv->cap & HOST_CAP_64)
 		writel((pp->rx_fis_dma >> 16) >> 16,
 		       port_mmio + PORT_FIS_ADDR_HI);
+	else if (hpriv->flags & AHCI_HFLAG_32BIT_ONLY)
+		writel(0, port_mmio + PORT_FIS_ADDR_HI);
 	writel(pp->rx_fis_dma & 0xffffffff, port_mmio + PORT_FIS_ADDR);
 
 	/* enable FIS reception */
drivers/ata/libahci_platform.c +1 -1
index 91d44302eac9..7308d48cf748 100644
@@ -623,10 +623,10 @@ struct ahci_host_priv *ahci_platform_get_resources(struct platform_device *pdev,
 			of_platform_device_create(child, NULL, NULL);
 
 			port_dev = of_find_device_by_node(child);
-
 			if (port_dev) {
 				rc = ahci_platform_get_regulator(hpriv, port,
 								&port_dev->dev);
+				put_device(&port_dev->dev);
 				if (rc == -EPROBE_DEFER)
 					goto err_out;
 			}
drivers/block/sunvdc.c +8 -1
index 2eb96136632a..1b5757aae57b 100644
@@ -556,6 +556,7 @@ static blk_status_t vdc_queue_rq(struct blk_mq_hw_ctx *hctx,
 	struct vdc_port *port = hctx->queue->queuedata;
 	struct vio_dring_state *dr;
 	unsigned long flags;
+	int ret;
 
 	dr = &port->vio.drings[VIO_DRIVER_TX_RING];
 
@@ -577,7 +578,13 @@ static blk_status_t vdc_queue_rq(struct blk_mq_hw_ctx *hctx,
 		return BLK_STS_DEV_RESOURCE;
 	}
 
-	if (__send_request(bd->rq) < 0) {
+	ret = __send_request(bd->rq);
+	if (ret == -EAGAIN) {
+		spin_unlock_irqrestore(&port->vio.lock, flags);
+		/* already spun for 10msec, defer 10msec and retry */
+		blk_mq_delay_kick_requeue_list(hctx->queue, 10);
+		return BLK_STS_DEV_RESOURCE;
+	} else if (ret < 0) {
 		spin_unlock_irqrestore(&port->vio.lock, flags);
 		return BLK_STS_IOERR;
 	}
drivers/bluetooth/btintel_pcie.c +7 -1
index 56ba643d5ff7..8d3129aa2a1a 100644
@@ -361,6 +361,12 @@ static int btintel_pcie_send_sync(struct btintel_pcie_data *data,
 	if (tfd_index > txq->count)
 		return -ERANGE;
 
+	if (skb->len > BTINTEL_PCIE_BUFFER_SIZE - BTINTEL_PCIE_HCI_TYPE_LEN) {
+		bt_dev_err(hdev, "TX skb too large (%u > %u)", skb->len,
+			   BTINTEL_PCIE_BUFFER_SIZE - BTINTEL_PCIE_HCI_TYPE_LEN);
+		return -EMSGSIZE;
+	}
+
 	/* Firmware raises alive interrupt on HCI_OP_RESET or
 	 * BTINTEL_HCI_OP_RESET
 	 */
@@ -459,7 +465,7 @@ static int btintel_pcie_submit_rx(struct btintel_pcie_data *data)
 
 	frbd_index = data->ia.tr_hia[BTINTEL_PCIE_RXQ_NUM];
 
-	if (frbd_index > rxq->count)
+	if (frbd_index >= rxq->count)
 		return -ERANGE;
 
 	/* Prepare for RX submit. It updates the FRBD with the address of DMA
drivers/bluetooth/btmtk.c +6 -1
index d1817dd6ab65..c525e2685a86 100644
@@ -709,7 +709,12 @@ static int btmtk_usb_hci_wmt_sync(struct hci_dev *hdev,
 	case BTMTK_WMT_FUNC_CTRL:
 		if (!skb_pull_data(data->evt_skb,
 				   sizeof(wmt_evt_funcc->status))) {
-			status = BTMTK_WMT_ON_UNDONE;
+			/* A plain enable/disable request is acked with just
+			 * the WMT header and no trailing status word; the
+			 * result is carried in the header's own flag byte.
+			 */
+			status = wmt_evt->whdr.flag ? BTMTK_WMT_ON_UNDONE :
+						       BTMTK_WMT_ON_DONE;
 			break;
 		}
 
drivers/bluetooth/btmtksdio.c +1 -3
index f7dcabc11b85..a9ca2d37b8c5 100644
@@ -1245,10 +1245,8 @@ static int btmtksdio_shutdown(struct hci_dev *hdev)
 	wmt_params.status = NULL;
 
 	err = mtk_hci_wmt_sync(hdev, &wmt_params);
-	if (err < 0) {
+	if (err < 0)
 		bt_dev_err(hdev, "Failed to send wmt func ctrl (%d)", err);
-		return err;
-	}
 
 ignore_wmt_cmd:
 	pm_runtime_put_noidle(bdev->dev);
drivers/bluetooth/btqca.c +19 -18
index f404eefbfc85..bdbb5801b240 100644
@@ -818,6 +818,14 @@ int qca_uart_setup(struct hci_dev *hdev, uint8_t baudrate,
 		snprintf(config.fwname, sizeof(config.fwname), "qca/%s", rampatch_name);
 	} else {
 		switch (soc_type) {
+		case QCA_QCA2066:
+			snprintf(config.fwname, sizeof(config.fwname),
+				 "qca/hpbtfw%02x.tlv", rom_ver);
+			break;
+		case QCA_QCA6390:
+			snprintf(config.fwname, sizeof(config.fwname),
+				 "qca/htbtfw%02x.tlv", rom_ver);
+			break;
 		case QCA_WCN3950:
 			snprintf(config.fwname, sizeof(config.fwname),
 				 "qca/cmbtfw%02x.tlv", rom_ver);
@@ -832,14 +840,6 @@ int qca_uart_setup(struct hci_dev *hdev, uint8_t baudrate,
 			snprintf(config.fwname, sizeof(config.fwname),
 				 "qca/apbtfw%02x.tlv", rom_ver);
 			break;
-		case QCA_QCA2066:
-			snprintf(config.fwname, sizeof(config.fwname),
-				 "qca/hpbtfw%02x.tlv", rom_ver);
-			break;
-		case QCA_QCA6390:
-			snprintf(config.fwname, sizeof(config.fwname),
-				 "qca/htbtfw%02x.tlv", rom_ver);
-			break;
 		case QCA_WCN6750:
 			/* Choose mbn file by default.If mbn file is not found
 			 * then choose tlv file
@@ -887,6 +887,16 @@ int qca_uart_setup(struct hci_dev *hdev, uint8_t baudrate,
 		}
 	} else {
 		switch (soc_type) {
+		case QCA_QCA2066:
+			qca_get_nvm_name_by_board(config.fwname,
+						  sizeof(config.fwname),
+						  "hpnv", soc_type, ver,
+						  rom_ver, boardid);
+			break;
+		case QCA_QCA6390:
+			snprintf(config.fwname, sizeof(config.fwname),
+				 "qca/htnv%02x.bin", rom_ver);
+			break;
 		case QCA_WCN3950:
 			if (le32_to_cpu(ver.soc_id) == QCA_WCN3950_SOC_ID_T)
 				variant = "t";
@@ -909,15 +919,6 @@ int qca_uart_setup(struct hci_dev *hdev, uint8_t baudrate,
 			snprintf(config.fwname, sizeof(config.fwname),
 				 "qca/apnv%02x.bin", rom_ver);
 			break;
-		case QCA_QCA2066:
-			qca_get_nvm_name_by_board(config.fwname,
-				sizeof(config.fwname), "hpnv", soc_type, ver,
-				rom_ver, boardid);
-			break;
-		case QCA_QCA6390:
-			snprintf(config.fwname, sizeof(config.fwname),
-				 "qca/htnv%02x.bin", rom_ver);
-			break;
 		case QCA_WCN6750:
 			snprintf(config.fwname, sizeof(config.fwname),
 				 "qca/msnv%02x.bin", rom_ver);
@@ -944,9 +945,9 @@ int qca_uart_setup(struct hci_dev *hdev, uint8_t baudrate,
 	}
 
 	switch (soc_type) {
-	case QCA_WCN3991:
 	case QCA_QCA2066:
 	case QCA_QCA6390:
+	case QCA_WCN3991:
 	case QCA_WCN6750:
 	case QCA_WCN6855:
 	case QCA_WCN7850:
drivers/bluetooth/btusb.c +17 -0
index 81b25c0231c4..c496f746fafa 100644
@@ -70,6 +70,15 @@ static struct usb_driver btusb_driver;
 #define BTUSB_BROKEN_EXT_SCAN		BIT(29)
 
 static const struct usb_device_id btusb_table[] = {
+	/*
+	 * NXP IW610 (0471:0215): the composite device reports Bluetooth
+	 * class at the whole-device level, so the generic entry below
+	 * would also match this WiFi vendor interface. Ignore it here
+	 * first so mwifiex-nxp can bind it instead.
+	 */
+	{ USB_DEVICE_AND_INTERFACE_INFO(0x0471, 0x0215, 0xff, 0xff, 0xff),
+	  .driver_info = BTUSB_IGNORE },
+
 	/* Generic Bluetooth USB device */
 	{ USB_DEVICE_INFO(0xe0, 0x01, 0x01) },
 
@@ -474,6 +483,14 @@ static const struct usb_device_id quirks_table[] = {
 	{ USB_DEVICE(0x1286, 0x2046), .driver_info = BTUSB_MARVELL },
 	{ USB_DEVICE(0x1286, 0x204e), .driver_info = BTUSB_MARVELL },
 
+	/*
+	 * NXP IW610 BT interfaces (Marvell-lineage silicon, same quirk as
+	 * the 0x1286 entries above). Scoped to the BT interface class,
+	 * not just VID/PID -- see the btusb_table entry above.
+	 */
+	{ USB_DEVICE_AND_INTERFACE_INFO(0x0471, 0x0215, 0xe0, 0x01, 0x01),
+	  .driver_info = BTUSB_MARVELL },
+
 	/* Intel Bluetooth devices */
 	{ USB_DEVICE(0x8087, 0x0025), .driver_info = BTUSB_INTEL_COMBINED },
 	{ USB_DEVICE(0x8087, 0x0026), .driver_info = BTUSB_INTEL_COMBINED },
drivers/bluetooth/hci_qca.c +52 -28

186 lines not on this page · raw message

drivers/clk/clk-scpi.c +1 -1
index e082474250fe..48a0c314fc3d 100644
@@ -85,7 +85,7 @@ static unsigned long scpi_dvfs_recalc_rate(struct clk_hw *hw,
 	int idx = clk->scpi_ops->dvfs_get_idx(clk->id);
 	const struct scpi_opp *opp;
 
-	if (idx < 0)
+	if (idx < 0 || idx >= clk->info->count)
 		return 0;
 
 	opp = clk->info->opps + idx;
drivers/dma/dmaengine.c +8 -2
index e6d9d338a60a..fa2019d51918 100644
@@ -428,6 +428,7 @@ static void dma_device_release(struct kref *ref)
 
 	list_del_rcu(&device->global_node);
 	dma_channel_rebalance();
+	synchronize_rcu();
 
 	if (device->device_release)
 		device->device_release(device);
@@ -495,10 +496,13 @@ static int dma_chan_get(struct dma_chan *chan)
  */
 static void dma_chan_put(struct dma_chan *chan)
 {
+	struct module *owner;
+
 	/* This channel is not in use, bail out */
 	if (!chan->client_count)
 		return;
 
+	owner = dma_chan_to_owner(chan);
 	chan->client_count--;
 
 	/* This channel is not in use anymore, free it */
@@ -515,8 +519,10 @@ static void dma_chan_put(struct dma_chan *chan)
 		chan->route_data = NULL;
 	}
 
-	dma_device_put(chan->device);
-	module_put(dma_chan_to_owner(chan));
+	/* This channel is not in use anymore, drop the device ref */
+	if (!chan->client_count)
+		dma_device_put(chan->device);
+	module_put(owner);
 }
 
 enum dma_status dma_sync_wait(struct dma_chan *chan, dma_cookie_t cookie)
drivers/dma/mmp_pdma.c +1 -1
index d12e729ee12c..bf77bc7d5e38 100644
@@ -701,7 +701,7 @@ mmp_pdma_prep_slave_sg(struct dma_chan *dchan, struct scatterlist *sgl,
 
 	for_each_sg(sgl, sg, sg_len, i) {
 		addr = sg_dma_address(sg);
-		avail = sg_dma_len(sgl);
+		avail = sg_dma_len(sg);
 
 		do {
 			len = min_t(size_t, avail, PDMA_MAX_DESC_BYTES);
drivers/dma/sprd-dma.c +1 -2
index 187a090463ce..a74018253020 100644
@@ -1212,7 +1212,7 @@ static int sprd_dma_probe(struct platform_device *pdev)
 
 	ret = pm_runtime_get_sync(&pdev->dev);
 	if (ret < 0)
-		goto err_rpm;
+		goto err_register;
 
 	ret = dma_async_device_register(&sdev->dma_dev);
 	if (ret < 0) {
@@ -1234,7 +1234,6 @@ static int sprd_dma_probe(struct platform_device *pdev)
 err_register:
 	pm_runtime_put_noidle(&pdev->dev);
 	pm_runtime_disable(&pdev->dev);
-err_rpm:
 	sprd_dma_disable(sdev);
 	return ret;
 }
drivers/dma/sun6i-dma.c +5 -4
index ae362a2f7c40..69f4d27247a7 100644
@@ -354,8 +354,10 @@ static size_t sun6i_get_chan_size(struct sun6i_pchan *pchan)
 	size_t bytes;
 	dma_addr_t pos;
 
-	pos = readl(pchan->base + DMA_CHAN_LLI_ADDR);
-	bytes = readl(pchan->base + DMA_CHAN_CUR_CNT);
+	do {
+		pos = readl(pchan->base + DMA_CHAN_LLI_ADDR);
+		bytes = readl(pchan->base + DMA_CHAN_CUR_CNT);
+	} while (pos != readl(pchan->base + DMA_CHAN_LLI_ADDR));
 
 	if (pos == LLI_LAST_ITEM)
 		return bytes;
@@ -969,7 +971,6 @@ static enum dma_status sun6i_dma_tx_status(struct dma_chan *chan,
 	struct sun6i_pchan *pchan = vchan->phy;
 	struct sun6i_dma_lli *lli;
 	struct virt_dma_desc *vd;
-	struct sun6i_desc *txd;
 	enum dma_status ret;
 	unsigned long flags;
 	size_t bytes = 0;
@@ -981,9 +982,9 @@ static enum dma_status sun6i_dma_tx_status(struct dma_chan *chan,
 	spin_lock_irqsave(&vchan->vc.lock, flags);
 
 	vd = vchan_find_desc(&vchan->vc, cookie);
-	txd = to_sun6i_desc(&vd->tx);
 
 	if (vd) {
+		struct sun6i_desc *txd = to_sun6i_desc(&vd->tx);
 		for (lli = txd->v_lli; lli != NULL; lli = lli->v_lli_next)
 			bytes += lli->len;
 	} else if (!pchan || !pchan->desc) {
drivers/dma/ti/k3-udma-glue.c +3 -2
index f87d244cc2d6..d651983fe381 100644
@@ -1243,8 +1243,9 @@ void k3_udma_glue_release_rx_chn(struct k3_udma_glue_rx_channel *rx_chn)
 		rx_chn->psil_paired = false;
 	}
 
-	for (i = 0; i < rx_chn->flow_num; i++)
-		k3_udma_glue_release_rx_flow(rx_chn, i);
+	if (rx_chn->flows)
+		for (i = 0; i < rx_chn->flow_num; i++)
+			k3_udma_glue_release_rx_flow(rx_chn, i);
 
 	if (xudma_rflow_is_gp(rx_chn->common.udmax, rx_chn->flow_id_base))
 		xudma_free_gp_rflow_range(rx_chn->common.udmax,
drivers/dma/xilinx/xilinx_dma.c +18 -8
index 30e3db94ddf0..8b010e0e0c5c 100644
@@ -754,15 +754,25 @@ xilinx_aximcdma_alloc_tx_segment(struct xilinx_dma_chan *chan)
 	return segment;
 }
 
-static void xilinx_dma_clean_hw_desc(struct xilinx_axidma_desc_hw *hw)
+static void xilinx_dma_clean_hw_desc(struct xilinx_dma_chan *chan,
+				     struct xilinx_axidma_tx_segment *segment)
 {
-	u32 next_desc = hw->next_desc;
-	u32 next_desc_msb = hw->next_desc_msb;
+	dma_addr_t next;
+	u32 i;
 
-	memset(hw, 0, sizeof(struct xilinx_axidma_desc_hw));
+	/*
+	 * Restore the buffer descriptor's next descriptor pointer to the value
+	 * set up in xilinx_dma_alloc_chan_resources(). Otherwise using the DMA
+	 * in cyclic mode leaves the next descriptor pointer altered and
+	 * prevents subsequent non-cyclic transfers.
+	 */
+	i = segment - chan->seg_v;
+	next = chan->seg_p +
+	       sizeof(*chan->seg_v) * ((i + 1) % XILINX_DMA_NUM_DESCS);
 
-	hw->next_desc = next_desc;
-	hw->next_desc_msb = next_desc_msb;
+	memset(&segment->hw, 0, sizeof(segment->hw));
+	segment->hw.next_desc = lower_32_bits(next);
+	segment->hw.next_desc_msb = upper_32_bits(next);
 }
 
 static void xilinx_mcdma_clean_hw_desc(struct xilinx_aximcdma_desc_hw *hw)
@@ -784,7 +794,7 @@ static void xilinx_mcdma_clean_hw_desc(struct xilinx_aximcdma_desc_hw *hw)
 static void xilinx_dma_free_tx_segment(struct xilinx_dma_chan *chan,
 				struct xilinx_axidma_tx_segment *segment)
 {
-	xilinx_dma_clean_hw_desc(&segment->hw);
+	xilinx_dma_clean_hw_desc(chan, segment);
 
 	list_add_tail(&segment->node, &chan->free_seg_list);
 }
@@ -918,9 +928,9 @@ static void xilinx_dma_free_descriptors(struct xilinx_dma_chan *chan)
 
 	spin_lock_irqsave(&chan->lock, flags);
 
-	xilinx_dma_free_desc_list(chan, &chan->pending_list);
 	xilinx_dma_free_desc_list(chan, &chan->done_list);
 	xilinx_dma_free_desc_list(chan, &chan->active_list);
+	xilinx_dma_free_desc_list(chan, &chan->pending_list);
 
 	spin_unlock_irqrestore(&chan->lock, flags);
 }
drivers/firmware/arm_scpi.c +2 -2
index 398642cc25d9..b8b7907089d7 100644
@@ -631,8 +631,8 @@ static struct scpi_dvfs_info *scpi_dvfs_get_info(u8 domain)
 	if (ret)
 		return ERR_PTR(ret);
 
-	if (!buf.opp_count)
-		return ERR_PTR(-ENOENT);
+	if (!buf.opp_count || buf.opp_count > MAX_DVFS_OPPS)
+		return ERR_PTR(-EINVAL);
 
 	info = kmalloc(sizeof(*info), GFP_KERNEL);
 	if (!info)
drivers/gpio/gpio-virtuser.c +2 -1
index 1901b4ba558f..ce7ada0f1798 100644
@@ -697,7 +697,8 @@ static int gpio_virtuser_interrupts_set(void *data, u64 val)
 		atomic_set(&ld->irq, irq);
 	} else {
 		irq = atomic_xchg(&ld->irq, 0);
-		free_irq(irq, ld);
+		if (irq)
+			free_irq(irq, ld);
 	}
 
 	return 0;
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +2 -4
index dda5d62c8e7b..6377501c70a8 100644
@@ -5098,7 +5098,7 @@ void amdgpu_device_fini_hw(struct amdgpu_device *adev)
 
 void amdgpu_device_fini_sw(struct amdgpu_device *adev)
 {
-	int i, idx;
+	int i;
 	bool px;
 
 	amdgpu_device_ip_fini(adev);
@@ -5140,11 +5140,9 @@ void amdgpu_device_fini_sw(struct amdgpu_device *adev)
 	if ((adev->pdev->class >> 8) == PCI_CLASS_DISPLAY_VGA)
 		vga_client_unregister(adev->pdev);
 
-	if (drm_dev_enter(adev_to_drm(adev), &idx)) {
-
+	if (adev->rmmio) {
 		iounmap(adev->rmmio);
 		adev->rmmio = NULL;
-		drm_dev_exit(idx);
 	}
 
 	if (IS_ENABLED(CONFIG_PERF_EVENTS))
drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c +48 -0

75 lines not on this page · raw message

drivers/gpu/drm/amd/amdgpu/nbio_v7_9.c +1 -1
index 1c22bc11c1f8..a71ad237972c 100644
@@ -533,7 +533,7 @@ static void nbio_v7_9_handle_ras_controller_intr_no_bifring(struct amdgpu_device
 						RAS_CNTLR_INTERRUPT_CLEAR, 1);
 		WREG32_SOC15(NBIO, 0, regBIF_BX0_BIF_DOORBELL_INT_CNTL, bif_doorbell_intr_cntl);
 
-		if (!ras->disable_ras_err_cnt_harvest) {
+		if (ras && !ras->disable_ras_err_cnt_harvest && obj) {
 			/*
 			 * clear error status after ras_controller_intr
 			 * according to hw team and count ue number
drivers/gpu/drm/drm_atomic_uapi.c +10 -3
index 1a11eebfbab0..4fc5f9573184 100644
@@ -1244,10 +1244,12 @@ static int prepare_signaling(struct drm_device *dev,
 			struct dma_fence *fence;
 			struct drm_out_fence_state *f;
 
+			ret = -ENOMEM;
+
 			f = krealloc(*fence_state, sizeof(**fence_state) *
 				     (*num_fences + 1), GFP_KERNEL);
 			if (!f)
-				return -ENOMEM;
+				goto err_free_event;
 
 			memset(&f[*num_fences], 0, sizeof(*f));
 
@@ -1256,12 +1258,12 @@ static int prepare_signaling(struct drm_device *dev,
 
 			fence = drm_crtc_create_fence(crtc);
 			if (!fence)
-				return -ENOMEM;
+				goto err_free_event;
 
 			ret = setup_out_fence(&f[(*num_fences)++], fence);
 			if (ret) {
 				dma_fence_put(fence);
-				return ret;
+				goto err_free_event;
 			}
 
 			crtc_state->event->base.fence = fence;
@@ -1317,6 +1319,11 @@ static int prepare_signaling(struct drm_device *dev,
 	}
 
 	return 0;
+
+err_free_event:
+	drm_event_cancel_free(dev, &crtc_state->event->base);
+	crtc_state->event = NULL;
+	return ret;
 }
 
 static void complete_signaling(struct drm_device *dev,
drivers/gpu/drm/gud/gud_pipe.c +5 -2
index 0d38eecd152d..8892ea631388 100644
@@ -482,6 +482,9 @@ int gud_plane_atomic_check(struct drm_plane *plane,
 	if (!new_plane_state->visible)
 		return 0;
 
+	if (gdrm->flags & GUD_DISPLAY_FLAG_FULL_UPDATE)
+		new_plane_state->ignore_damage_clips = true;
+
 	if (old_plane_state->rotation != new_plane_state->rotation)
 		crtc_state->mode_changed = true;
 
@@ -562,8 +565,8 @@ int gud_plane_atomic_check(struct drm_plane *plane,
 			goto out;
 		}
 
-		req->properties[num_properties + i].prop = cpu_to_le16(prop);
-		req->properties[num_properties + i].val = cpu_to_le64(val);
+		req->properties[num_properties].prop = cpu_to_le16(prop);
+		req->properties[num_properties].val = cpu_to_le64(val);
 		num_properties++;
 	}
 
drivers/gpu/drm/msm/adreno/adreno_device.c +1 -1
index 28f744f3caf7..5d598815de45 100644
@@ -25,7 +25,7 @@ MODULE_PARM_DESC(disable_acd, "Forcefully disable GPU ACD");
 module_param_unsafe(disable_acd, bool, 0400);
 
 static bool skip_gpu;
-MODULE_PARM_DESC(no_gpu, "Disable GPU driver register (0=enable GPU driver register (default), 1=skip GPU driver register");
+MODULE_PARM_DESC(skip_gpu, "Disable GPU driver register (0=enable GPU driver register (default), 1=skip GPU driver register");
 module_param(skip_gpu, bool, 0400);
 
 extern const struct adreno_gpulist a2xx_gpulist;
drivers/gpu/drm/msm/adreno/adreno_gpu.c +2 -0
index 056a9e18cd4a..ef9798492bce 100644
@@ -1245,6 +1245,8 @@ void adreno_gpu_cleanup(struct adreno_gpu *adreno_gpu)
 	for (i = 0; i < ARRAY_SIZE(adreno_gpu->info->fw); i++)
 		release_firmware(adreno_gpu->fw[i]);
 
+	pm_runtime_dont_use_autosuspend(&gpu->pdev->dev);
+
 	if (priv && pm_runtime_enabled(&priv->gpu_pdev->dev))
 		pm_runtime_disable(&priv->gpu_pdev->dev);
 
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c +1 -0
index ac834db2e4c1..68ed99d8aec6 100644
@@ -118,6 +118,7 @@ static inline void dpu_hw_ctl_clear_pending_flush(struct dpu_hw_ctl *ctx)
 	ctx->pending_intf_flush_mask = 0;
 	ctx->pending_wb_flush_mask = 0;
 	ctx->pending_cwb_flush_mask = 0;
+	ctx->pending_periph_flush_mask = 0;
 	ctx->pending_merge_3d_flush_mask = 0;
 	ctx->pending_dsc_flush_mask = 0;
 	ctx->pending_cdm_flush_mask = 0;
drivers/gpu/drm/msm/dp/dp_display.c +19 -2
index 68043dbe72bf..131753ba57b5 100644
@@ -930,6 +930,7 @@ enum drm_mode_status msm_dp_bridge_mode_valid(struct drm_bridge *bridge,
 	u32 mode_rate_khz = 0, supported_rate_khz = 0, mode_bpp = 0;
 	struct msm_dp *dp;
 	int mode_pclk_khz = mode->clock;
+	int link_pclk_khz;
 	bool is_yuv_420;
 
 	dp = to_dp_bridge(bridge)->msm_dp_display;
@@ -951,6 +952,8 @@ enum drm_mode_status msm_dp_bridge_mode_valid(struct drm_bridge *bridge,
 	if (is_yuv_420 && !msm_dp_display->panel->vsc_sdp_supported)
 		return MODE_NO_420;
 
+	link_pclk_khz = is_yuv_420 ? mode_pclk_khz / 2 : mode_pclk_khz;
+
 	if (is_yuv_420 || msm_dp_display->wide_bus_supported)
 		mode_pclk_khz /= 2;
 
@@ -962,9 +965,9 @@ enum drm_mode_status msm_dp_bridge_mode_valid(struct drm_bridge *bridge,
 		mode_bpp = default_bpp;
 
 	mode_bpp = msm_dp_panel_get_mode_bpp(msm_dp_display->panel,
-			mode_bpp, mode_pclk_khz);
+			mode_bpp, link_pclk_khz);
 
-	mode_rate_khz = mode_pclk_khz * mode_bpp;
+	mode_rate_khz = link_pclk_khz * mode_bpp;
 	supported_rate_khz = link_info->num_lanes * link_info->rate * 8;
 
 	if (mode_rate_khz > supported_rate_khz)
@@ -1647,6 +1650,20 @@ void msm_dp_bridge_atomic_disable(struct drm_bridge *drm_bridge,
 
 	msm_dp_display = container_of(dp, struct msm_dp_display_private, msm_dp_display);
 
+	/*
+	 * If .atomic_enable() bailed out - link training failure is the common
+	 * case - the mainlink was never brought up and ->power_on stayed false.
+	 * Driving the PUSH_IDLE pattern into a controller that was never
+	 * enabled times out, and .atomic_post_disable() then drops the
+	 * controller's runtime-PM reference without tearing the PHY back down,
+	 * because msm_dp_display_disable() returns early on !power_on.  On
+	 * glymur (Snapdragon X2 Elite) that combination is answered by a
+	 * TrustZone-level SOCCP/ADSP force-stop and a silent SoC reset.
+	 * There is nothing to push idle, so leave it alone.
+	 */
+	if (!dp->power_on)
+		return;
+
 	msm_dp_ctrl_push_idle(msm_dp_display->ctrl);
 }
 
drivers/gpu/drm/msm/dsi/dsi_host.c +19 -17
index 5110fe05ca84..4e93f8dd39d7 100644
@@ -129,7 +129,7 @@ struct msm_dsi_host {
 	struct clk *dsi_pll_pixel_clk;
 
 	unsigned long byte_clk_rate;
-	unsigned long byte_intf_clk_rate;
+	bool byte_intf_clk_div_2;
 	unsigned long pixel_clk_rate;
 	unsigned long esc_clk_rate;
 
@@ -381,8 +381,20 @@ int msm_dsi_runtime_resume(struct device *dev)
 
 int dsi_link_clk_set_rate_6g(struct msm_dsi_host *msm_host)
 {
+	unsigned long byte_intf_clk_rate;
+	long rounded_byte_clk_rate;
 	int ret;
 
+	rounded_byte_clk_rate = clk_round_rate(msm_host->byte_clk,
+					       msm_host->byte_clk_rate);
+	if (rounded_byte_clk_rate < 0) {
+		pr_err("%s: failed to round byte clock rate, %ld\n",
+		       __func__, rounded_byte_clk_rate);
+		return rounded_byte_clk_rate;
+	}
+
+	msm_host->byte_clk_rate = rounded_byte_clk_rate;
+
 	DBG("Set clk rates: pclk=%lu, byteclk=%lu",
 	    msm_host->pixel_clk_rate, msm_host->byte_clk_rate);
 
@@ -400,7 +412,11 @@ int dsi_link_clk_set_rate_6g(struct msm_dsi_host *msm_host)
 	}
 
 	if (msm_host->byte_intf_clk) {
-		ret = clk_set_rate(msm_host->byte_intf_clk, msm_host->byte_intf_clk_rate);
+		byte_intf_clk_rate = msm_host->byte_clk_rate;
+		if (msm_host->byte_intf_clk_div_2)
+			byte_intf_clk_rate /= 2;
+
+		ret = clk_set_rate(msm_host->byte_intf_clk, byte_intf_clk_rate);
 		if (ret) {
 			pr_err("%s: Failed to set rate byte intf clk, %d\n",
 			       __func__, ret);
@@ -668,24 +684,12 @@ static void dsi_calc_pclk(struct msm_dsi_host *msm_host, bool is_bonded_dsi)
 
 int dsi_calc_clk_rate_6g(struct msm_dsi_host *msm_host, bool is_bonded_dsi)
 {
-	long rounded_byte_clk_rate;
-
 	if (!msm_host->mode) {
 		pr_err("%s: mode not set\n", __func__);
 		return -EINVAL;
 	}
 
 	dsi_calc_pclk(msm_host, is_bonded_dsi);
-
-	rounded_byte_clk_rate = clk_round_rate(msm_host->byte_clk,
-					       msm_host->byte_clk_rate);
-	if (rounded_byte_clk_rate < 0) {
-		pr_err("%s: failed to round byte clock rate, %ld\n",
-		       __func__, rounded_byte_clk_rate);
-		return rounded_byte_clk_rate;
-	}
-
-	msm_host->byte_clk_rate = rounded_byte_clk_rate;
 	msm_host->esc_clk_rate = clk_get_rate(msm_host->esc_clk);
 	return 0;
 }
@@ -2470,9 +2474,7 @@ int msm_dsi_host_power_on(struct mipi_dsi_host *host,
 		goto unlock_ret;
 	}
 
-	msm_host->byte_intf_clk_rate = msm_host->byte_clk_rate;
-	if (phy_shared_timings->byte_intf_clk_div_2)
-		msm_host->byte_intf_clk_rate /= 2;
+	msm_host->byte_intf_clk_div_2 = phy_shared_timings->byte_intf_clk_div_2;
 
 	msm_dsi_sfpb_config(msm_host, true);
 
drivers/gpu/drm/msm/hdmi/hdmi_phy.c +6 -2
index f726555bb681..6777cba9255e 100644
@@ -168,13 +168,13 @@ static int msm_hdmi_phy_probe(struct platform_device *pdev)
 
 	ret = msm_hdmi_phy_resource_enable(phy);
 	if (ret)
-		return ret;
+		goto err_pm_disable;
 
 	ret = msm_hdmi_phy_pll_init(pdev, phy->cfg->type);
 	if (ret) {
 		DRM_DEV_ERROR(dev, "couldn't init PLL\n");
 		msm_hdmi_phy_resource_disable(phy);
-		return ret;
+		goto err_pm_disable;
 	}
 
 	msm_hdmi_phy_resource_disable(phy);
@@ -182,6 +182,10 @@ static int msm_hdmi_phy_probe(struct platform_device *pdev)
 	platform_set_drvdata(pdev, phy);
 
 	return 0;
+
+err_pm_disable:
+	pm_runtime_disable(dev);
+	return ret;
 }
 
 static void msm_hdmi_phy_remove(struct platform_device *pdev)
drivers/gpu/drm/msm/msm_drv.c +1 -1
index 94b32973cd6a..c2a8aaa33f84 100644
@@ -55,7 +55,7 @@ MODULE_PARM_DESC(modeset, "Use kernel modesetting [KMS] (1=on (default), 0=disab
 module_param(modeset, bool, 0600);
 
 static bool separate_gpu_kms;
-MODULE_PARM_DESC(separate_gpu_drm, "Use separate DRM device for the GPU (0=single DRM device for both GPU and display (default), 1=two DRM devices)");
+MODULE_PARM_DESC(separate_gpu_kms, "Use separate DRM device for the GPU (0=single DRM device for both GPU and display (default), 1=two DRM devices)");
 module_param(separate_gpu_kms, bool, 0400);
 
 DECLARE_FAULT_ATTR(fail_gem_alloc);
drivers/gpu/drm/msm/msm_gem.h +3 -0
index a4cf31853c50..1bf228d0f8da 100644
@@ -68,6 +68,9 @@ struct msm_gem_vm {
 	/** @base: Inherit from drm_gpuvm. */
 	struct drm_gpuvm base;
 
+	/** @rcu: RCU-delayed free so an exported sched fence->sched stays valid. */
+	struct rcu_head rcu;
+
 	/**
 	 * @sched: Scheduler used for asynchronous VM_BIND request.
 	 *
drivers/gpu/drm/msm/msm_gem_vma.c +1 -1
index 701fe4a0b73c..faccb9a77fbe 100644
@@ -166,7 +166,7 @@ msm_gem_vm_free(struct drm_gpuvm *gpuvm)
 	dma_fence_put(vm->last_fence);
 	put_pid(vm->pid);
 	kfree(vm->log);
-	kfree(vm);
+	kfree_rcu(vm, rcu);
 }
 
 /**
drivers/gpu/drm/msm/msm_ringbuffer.c +1 -1
index e09ec7f398d5..aa96efa66fee 100644
@@ -140,5 +140,5 @@ void msm_ringbuffer_destroy(struct msm_ringbuffer *ring)
 
 	msm_gem_kernel_put(ring->bo, ring->gpu->vm);
 
-	kfree(ring);
+	kfree_rcu(ring, rcu);
 }
drivers/gpu/drm/msm/msm_ringbuffer.h +1 -0
index bace58a3dffb..f7127351e163 100644
@@ -53,6 +53,7 @@ struct msm_ringbuffer {
 	/*
 	 * The job scheduler for this ring.
 	 */
+	struct rcu_head rcu;
 	struct drm_gpu_scheduler sched;
 	bool sched_initialized;
 
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fbsr.c +1 -1
index e962d0e8f837..150e22fde2ac 100644
@@ -208,7 +208,7 @@ r535_fbsr_resume(struct nvkm_gsp *gsp)
 }
 
 static int
-r535_fbsr_suspend(struct nvkm_gsp *gsp, bool runtime)
+r535_fbsr_suspend(struct nvkm_gsp *gsp)
 {
 	struct nvkm_subdev *subdev = &gsp->subdev;
 	struct nvkm_device *device = subdev->device;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/gsp.c +6 -2
index a575a8dbf727..e8264a47820a 100644
@@ -1748,7 +1748,7 @@ r535_gsp_fini(struct nvkm_gsp *gsp, enum nvkm_suspend_state suspend)
 		sr->sysmemAddrOfSuspendResumeData = gsp->sr.radix3.lvl0.addr;
 		sr->sizeOfSuspendResumeData = len;
 
-		ret = rm->api->fbsr->suspend(gsp, suspend == NVKM_RUNTIME_SUSPEND);
+		ret = rm->api->fbsr->suspend(gsp);
 		if (ret) {
 			nvkm_gsp_mem_dtor(&gsp->sr.meta);
 			nvkm_gsp_radix3_dtor(gsp, &gsp->sr.radix3);
@@ -1760,8 +1760,12 @@ r535_gsp_fini(struct nvkm_gsp *gsp, enum nvkm_suspend_state suspend)
 		 * TODO: Debug the GSP firmware / RPC handling to find out why
 		 * without this Turing (but none of the other architectures)
 		 * ends up resetting all channels after resume.
+		 * Additionally, runtime suspend on other architectures quickly
+		 * becomes unreliable without this sleep. If you're experiencing
+		 * issues with runtime suspend, try bumping this delay up and
+		 * sending a patch if it fixes your GPU.
 		 */
-		msleep(50);
+		msleep(200);
 	}
 
 	ret = r535_gsp_rpc_unloading_guest_driver(gsp, suspend);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r570/fbsr.c +4 -4
index 8ef8b4f65588..af5aa5065c3d 100644
@@ -62,7 +62,7 @@ r570_fbsr_resume(struct nvkm_gsp *gsp)
 }
 
 static int
-r570_fbsr_init(struct nvkm_gsp *gsp, struct sg_table *sgt, u64 size, bool runtime)
+r570_fbsr_init(struct nvkm_gsp *gsp, struct sg_table *sgt, u64 size)
 {
 	NV2080_CTRL_INTERNAL_FBSR_INIT_PARAMS *ctrl;
 	struct nvkm_gsp_object memlist;
@@ -81,7 +81,7 @@ r570_fbsr_init(struct nvkm_gsp *gsp, struct sg_table *sgt, u64 size, bool runtim
 	ctrl->hClient = gsp->internal.client.object.handle;
 	ctrl->hSysMem = memlist.handle;
 	ctrl->sysmemAddrOfSuspendResumeData = gsp->sr.meta.addr;
-	ctrl->bEnteringGcoffState = runtime ? 1 : 0;
+	ctrl->bEnteringGcoffState = 0;
 
 	ret = nvkm_gsp_rm_ctrl_wr(&gsp->internal.device.subdevice, ctrl);
 	if (ret)
@@ -92,7 +92,7 @@ r570_fbsr_init(struct nvkm_gsp *gsp, struct sg_table *sgt, u64 size, bool runtim
 }
 
 static int
-r570_fbsr_suspend(struct nvkm_gsp *gsp, bool runtime)
+r570_fbsr_suspend(struct nvkm_gsp *gsp)
 {
 	struct nvkm_subdev *subdev = &gsp->subdev;
 	struct nvkm_device *device = subdev->device;
@@ -133,7 +133,7 @@ r570_fbsr_suspend(struct nvkm_gsp *gsp, bool runtime)
 		return ret;
 
 	/* Initialise FBSR on RM. */
-	ret = r570_fbsr_init(gsp, &gsp->sr.fbsr, size, runtime);
+	ret = r570_fbsr_init(gsp, &gsp->sr.fbsr, size);
 	if (ret) {
 		nvkm_gsp_sg_free(device, &gsp->sr.fbsr);
 		return ret;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r570/gsp.c +2 -1
index 1488771c63fc..b45781cd0dfd 100644
@@ -207,7 +207,8 @@ r570_gsp_set_rmargs(struct nvkm_gsp *gsp, bool resume)
 		args->srInitArguments.bInPMTransition = 0;
 	} else {
 		args->srInitArguments.oldLevel = NV2080_CTRL_GPU_SET_POWER_STATE_GPU_LEVEL_3;
-		args->srInitArguments.flags = 0;
+		args->srInitArguments.flags =
+			GPU_STATE_FLAGS_PRESERVING | GPU_STATE_FLAGS_PM_TRANSITION;
 		args->srInitArguments.bInPMTransition = 1;
 	}
 
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r570/nvrm/gsp.h +8 -0
index b6075021e74f..c458569af9d7 100644
@@ -523,6 +523,14 @@ typedef struct
 
 #define NV2080_CTRL_GPU_SET_POWER_STATE_GPU_LEVEL_3            (0x00000003U)
 
+#define GPU_STATE_FLAGS_PRESERVING         BIT(0)  // GPU state is preserved
+#define GPU_STATE_FLAGS_VGA_TRANSITION     BIT(1)   // To be used with GPU_STATE_FLAGS_PRESERVING.
+#define GPU_STATE_FLAGS_PM_TRANSITION      BIT(2)   // To be used with GPU_STATE_FLAGS_PRESERVING.
+#define GPU_STATE_FLAGS_PM_SUSPEND         BIT(3)
+#define GPU_STATE_FLAGS_PM_HIBERNATE       BIT(4)
+#define GPU_STATE_FLAGS_GC6_TRANSITION     BIT(5)  // To be used with GPU_STATE_FLAGS_PRESERVING.
+#define GPU_STATE_FLAGS_FAST_UNLOAD        BIT(6)  // Used during windows restart, skips stateDestroy steps
+
 typedef struct
 {
     // Magic for verification by secure ucode
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/rm.h +1 -1
index c069c2d97169..6d8d400c00af 100644
@@ -79,7 +79,7 @@ struct nvkm_rm_api {
 	} *device;
 
 	const struct nvkm_rm_api_fbsr {
-		int (*suspend)(struct nvkm_gsp *, bool runtime);
+		int (*suspend)(struct nvkm_gsp *);
 		void (*resume)(struct nvkm_gsp *);
 	} *fbsr;
 
drivers/gpu/drm/vc4/vc4_kms.c +1 -1
index 8f983edb81ff..20dad6245ac1 100644
@@ -1162,7 +1162,7 @@ int vc4_kms_load(struct drm_device *dev)
 
 	drm_mode_config_reset(dev);
 
-	drm_kms_helper_poll_init(dev);
+	drmm_kms_helper_poll_init(dev);
 
 	return 0;
 }
drivers/gpu/drm/xe/xe_mmio_gem.c +18 -15
index 9a97c4387e4f..afb880c7955e 100644
@@ -39,10 +39,20 @@ struct xe_mmio_gem {
 	phys_addr_t phys_addr;
 };
 
+static int xe_mmio_gem_vm_may_split(struct vm_area_struct *area, unsigned long addr)
+{
+	/*
+	 * Forbid splitting. Together with VM_DONTEXPAND, this keeps the VMA
+	 * matching the GEM object exactly.
+	 */
+	return -EINVAL;
+}
+
 static const struct vm_operations_struct vm_ops = {
 	.open = drm_gem_vm_open,
 	.close = drm_gem_vm_close,
 	.fault = xe_mmio_gem_vm_fault,
+	.may_split = xe_mmio_gem_vm_may_split,
 };
 
 static const struct drm_gem_object_funcs xe_mmio_gem_funcs = {
@@ -128,14 +138,16 @@ static void xe_mmio_gem_free(struct drm_gem_object *base)
 /**
  * xe_mmio_gem_destroy - Destroy the GEM object that exposes an MMIO region
  * @gem: the GEM object to destroy
+ * @file: DRM file descriptor previously passed to xe_mmio_gem_create()
  *
  * This function releases resources associated with the GEM object created by
  * xe_mmio_gem_create().
  *
  * See: "Exposing MMIO regions to userspace"
  */
-void xe_mmio_gem_destroy(struct xe_mmio_gem *gem)
+void xe_mmio_gem_destroy(struct xe_mmio_gem *gem, struct drm_file *file)
 {
+	drm_vma_node_revoke(&gem->base.vma_node, file);
 	xe_mmio_gem_free(&gem->base);
 }
 
@@ -162,14 +174,13 @@ static void xe_mmio_gem_release_dummy_page(struct drm_device *dev, void *res)
 	__free_page((struct page *)res);
 }
 
-static vm_fault_t xe_mmio_gem_vm_fault_dummy_page(struct vm_area_struct *vma)
+static vm_fault_t xe_mmio_gem_vm_fault_dummy_page(struct vm_fault *vmf)
 {
+	struct vm_area_struct *vma = vmf->vma;
 	struct drm_gem_object *base = vma->vm_private_data;
 	struct drm_device *dev = base->dev;
-	vm_fault_t ret = VM_FAULT_NOPAGE;
 	struct page *page;
 	unsigned long pfn;
-	unsigned long i;
 
 	page = alloc_page(GFP_KERNEL | __GFP_ZERO);
 	if (!page)
@@ -180,16 +191,8 @@ static vm_fault_t xe_mmio_gem_vm_fault_dummy_page(struct vm_area_struct *vma)
 
 	pfn = page_to_pfn(page);
 
-	/* Map the entire VMA to the same dummy page */
-	for (i = 0; i < base->size; i += PAGE_SIZE) {
-		unsigned long addr = vma->vm_start + i;
-
-		ret = vmf_insert_pfn(vma, addr, pfn);
-		if (ret & VM_FAULT_ERROR)
-			break;
-	}
-
-	return ret;
+	return vmf_insert_pfn_prot(vma, vmf->address, pfn,
+				   vm_get_page_prot(vma->vm_flags));
 }
 
 static vm_fault_t xe_mmio_gem_vm_fault(struct vm_fault *vmf)
@@ -209,7 +212,7 @@ static vm_fault_t xe_mmio_gem_vm_fault(struct vm_fault *vmf)
 		 * It is assumed the userspace will receive the notification via some
 		 * other channel (e.g. drm uevent).
 		 */
-		return xe_mmio_gem_vm_fault_dummy_page(vma);
+		return xe_mmio_gem_vm_fault_dummy_page(vmf);
 	}
 
 	for (i = 0; i < base->size; i += PAGE_SIZE) {
drivers/gpu/drm/xe/xe_mmio_gem.h +1 -1
index 4b76d5586ebb..80d7795f07c8 100644
@@ -15,6 +15,6 @@ struct xe_mmio_gem;
 struct xe_mmio_gem *xe_mmio_gem_create(struct xe_device *xe, struct drm_file *file,
 				       phys_addr_t phys_addr, size_t size);
 u64 xe_mmio_gem_mmap_offset(struct xe_mmio_gem *gem);
-void xe_mmio_gem_destroy(struct xe_mmio_gem *gem);
+void xe_mmio_gem_destroy(struct xe_mmio_gem *gem, struct drm_file *file);
 
 #endif /* _XE_MMIO_GEM_H_ */
drivers/gpu/drm/xe/xe_shrinker.c +26 -36

122 lines not on this page · raw message

drivers/hid/hid-asus.c +30 -4
index 185bcdb538f2..e39052ff91d1 100644
@@ -48,7 +48,7 @@ MODULE_DESCRIPTION("Asus HID Keyboard and TouchPad");
 #define FEATURE_REPORT_ID 0x0d
 #define INPUT_REPORT_ID 0x5d
 #define FEATURE_KBD_REPORT_ID 0x5a
-#define FEATURE_KBD_REPORT_SIZE 16
+#define FEATURE_KBD_REPORT_SIZE 64
 #define FEATURE_KBD_LED_REPORT_ID1 0x5d
 #define FEATURE_KBD_LED_REPORT_ID2 0x5e
 
@@ -393,15 +393,41 @@ static int asus_kbd_set_report(struct hid_device *hdev, const u8 *buf, size_t bu
 
 static int asus_kbd_init(struct hid_device *hdev, u8 report_id)
 {
+	/*
+	 * The handshake is first sent as a set_report, then retrieved
+	 * from a get_report. They should be equal.
+	 */
 	const u8 buf[] = { report_id, 0x41, 0x53, 0x55, 0x53, 0x20, 0x54,
 		     0x65, 0x63, 0x68, 0x2e, 0x49, 0x6e, 0x63, 0x2e, 0x00 };
 	int ret;
 
 	ret = asus_kbd_set_report(hdev, buf, sizeof(buf));
-	if (ret < 0)
-		hid_err(hdev, "Asus failed to send init command: %d\n", ret);
+	if (ret < 0) {
+		hid_err(hdev, "Asus handshake %02x failed to send: %d\n",
+			report_id, ret);
+		return ret;
+	}
 
-	return ret;
+	u8 *readbuf __free(kfree) = kzalloc(FEATURE_KBD_REPORT_SIZE, GFP_KERNEL);
+	if (!readbuf)
+		return -ENOMEM;
+
+	ret = hid_hw_raw_request(hdev, report_id, readbuf,
+				 FEATURE_KBD_REPORT_SIZE, HID_FEATURE_REPORT,
+				 HID_REQ_GET_REPORT);
+	if (ret < 0) {
+		hid_warn(hdev, "Asus handshake %02x failed to receive ack: %d\n",
+			 report_id, ret);
+	} else if (memcmp(readbuf, buf, sizeof(buf)) != 0) {
+		hid_warn(hdev, "Asus handshake %02x returned invalid response: %*ph\n",
+			 report_id, FEATURE_KBD_REPORT_SIZE, readbuf);
+	}
+
+	/*
+	 * Do not return error if handshake is wrong until this is
+	 * verified to work for all devices.
+	 */
+	return 0;
 }
 
 static int asus_kbd_get_functions(struct hid_device *hdev,
drivers/hid/hid-logitech-hidpp.c +17 -7
index 83d625f361f4..94ffda22ef41 100644
@@ -305,21 +305,22 @@ static int __do_hidpp_send_message_sync(struct hidpp_device *hidpp,
 	if (ret) {
 		dbg_hid("__hidpp_send_report returned err: %d\n", ret);
 		memset(response, 0, sizeof(struct hidpp_report));
-		return ret;
+		goto out;
 	}
 
 	if (!wait_event_timeout(hidpp->wait, hidpp->answer_available,
 				5*HZ)) {
 		dbg_hid("%s:timeout waiting for response\n", __func__);
 		memset(response, 0, sizeof(struct hidpp_report));
-		return -ETIMEDOUT;
+		ret = -ETIMEDOUT;
+		goto out;
 	}
 
 	if (response->report_id == REPORT_ID_HIDPP_SHORT &&
 	    response->rap.sub_id == HIDPP_ERROR) {
 		ret = response->rap.params[1];
 		dbg_hid("%s:got hidpp error %02X\n", __func__, ret);
-		return ret;
+		goto out;
 	}
 
 	if ((response->report_id == REPORT_ID_HIDPP_LONG ||
@@ -327,10 +328,14 @@ static int __do_hidpp_send_message_sync(struct hidpp_device *hidpp,
 	    response->fap.feature_index == HIDPP20_ERROR) {
 		ret = response->fap.params[1];
 		dbg_hid("%s:got hidpp 2.0 error %02X\n", __func__, ret);
-		return ret;
+		goto out;
 	}
 
-	return 0;
+	ret = 0;
+
+out:
+	hidpp->send_receive_buf = NULL;
+	return ret;
 }
 
 /*
@@ -3838,8 +3843,7 @@ static int hidpp_input_configured(struct hid_device *hdev,
 static int hidpp_raw_hidpp_event(struct hidpp_device *hidpp, u8 *data,
 		int size)
 {
-	struct hidpp_report *question = hidpp->send_receive_buf;
-	struct hidpp_report *answer = hidpp->send_receive_buf;
+	struct hidpp_report *question, *answer;
 	struct hidpp_report *report = (struct hidpp_report *)data;
 	int ret;
 	int last_online;
@@ -3849,6 +3853,12 @@ static int hidpp_raw_hidpp_event(struct hidpp_device *hidpp, u8 *data,
 	 * previously sent command.
 	 */
 	if (unlikely(mutex_is_locked(&hidpp->send_mutex))) {
+		question = hidpp->send_receive_buf;
+		answer = hidpp->send_receive_buf;
+
+		if (!question)
+			return 0;
+
 		/*
 		 * Check for a correct hidpp20 answer or the corresponding
 		 * error
drivers/hwmon/cgbc-hwmon.c +80 -49

192 lines not on this page · raw message

drivers/hwmon/gpio-fan.c +2 -2
index ea5ca2dea2a9..1dfc02df9bbb 100644
@@ -68,7 +68,7 @@ static irqreturn_t fan_alarm_irq_handler(int irq, void *dev_id)
 
 	schedule_work(&fan_data->alarm_work);
 
-	return IRQ_NONE;
+	return IRQ_HANDLED;
 }
 
 static ssize_t fan1_alarm_show(struct device *dev,
@@ -103,7 +103,7 @@ static int fan_alarm_init(struct gpio_fan_data *fan_data)
 
 	irq_set_irq_type(alarm_irq, IRQ_TYPE_EDGE_BOTH);
 	return devm_request_irq(dev, alarm_irq, fan_alarm_irq_handler,
-				IRQF_SHARED, "GPIO fan alarm", fan_data);
+				0, "GPIO fan alarm", fan_data);
 }
 
 /*
drivers/hwmon/hp-wmi-sensors.c +24 -8
index 03c684ba83bd..cfa0d6ad0fb3 100644
@@ -526,14 +526,12 @@ static int check_wobj(const union acpi_object *wobj,
 	for (prop = 0; prop <= last_prop; prop++) {
 		type = elements[prop].type;
 		valid_type = property_map[prop];
-		if (type != valid_type) {
-			if (type == ACPI_TYPE_BUFFER &&
-			    valid_type == ACPI_TYPE_STRING &&
-			    is_raw_wmi_string(elements[prop].buffer.pointer,
-					      elements[prop].buffer.length))
-				continue;
+		if (type == ACPI_TYPE_BUFFER &&
+		    is_raw_wmi_string(elements[prop].buffer.pointer,
+				      elements[prop].buffer.length))
+			type = ACPI_TYPE_STRING;
+		if (type != valid_type)
 			return -EINVAL;
-		}
 	}
 
 	return 0;
@@ -579,6 +577,7 @@ static int check_numeric_sensor_wobj(const union acpi_object *wobj,
 	int prop = HP_WMI_PROPERTY_NAME;
 	acpi_object_type valid_type;
 	union acpi_object *elements;
+	union acpi_object *element;
 	u32 elem_count;
 	int last_prop;
 	bool is_new;
@@ -602,13 +601,20 @@ static int check_numeric_sensor_wobj(const union acpi_object *wobj,
 	    elem_count > HP_WMI_MAX_PROPERTIES)
 		return -EINVAL;
 
-	type = elements[HP_WMI_PROPERTY_SIZE].type;
+	element = &elements[HP_WMI_PROPERTY_SIZE];
+	type = element->type;
 	switch (type) {
 	case ACPI_TYPE_INTEGER:
 		is_new = true;
 		last_prop = HP_WMI_PROPERTY_RATE_UNITS;
 		break;
 
+	case ACPI_TYPE_BUFFER:
+		if (!is_raw_wmi_string(element->buffer.pointer,
+				       element->buffer.length))
+			return -EINVAL;
+		fallthrough;
+
 	case ACPI_TYPE_STRING:
 		is_new = false;
 		last_prop = HP_WMI_PROPERTY_CURRENT_READING;
@@ -631,6 +637,10 @@ static int check_numeric_sensor_wobj(const union acpi_object *wobj,
 	for (i = 0; i < elem_count && prop <= last_prop; i++, prop++) {
 		type = elements[i].type;
 		valid_type = hp_wmi_property_map[prop];
+		if (type == ACPI_TYPE_BUFFER &&
+		    is_raw_wmi_string(elements[i].buffer.pointer,
+				      elements[i].buffer.length))
+			type = ACPI_TYPE_STRING;
 		if (type != valid_type)
 			return -EINVAL;
 
@@ -651,6 +661,10 @@ static int check_numeric_sensor_wobj(const union acpi_object *wobj,
 			/* PossibleStates[0] has already been type-checked. */
 			for (j = 0; i + 1 < elem_count && j + 1 < count; j++) {
 				type = elements[++i].type;
+				if (type == ACPI_TYPE_BUFFER &&
+				    is_raw_wmi_string(elements[i].buffer.pointer,
+						      elements[i].buffer.length))
+					type = ACPI_TYPE_STRING;
 				if (type != valid_type)
 					return -EINVAL;
 			}
@@ -1247,7 +1261,9 @@ static int fungible_show(struct seq_file *seqf, enum hp_wmi_property prop)
 		break;
 
 	case HP_WMI_PROPERTY_CURRENT_STATE:
+		mutex_lock(&state->lock);
 		seq_printf(seqf, "%s\n", nsensor->current_state);
+		mutex_unlock(&state->lock);
 		break;
 
 	case HP_WMI_PROPERTY_UNIT_MODIFIER:
drivers/hwmon/pmbus/pmbus.h +2 -1
index e499cdae9442..d8833b0299a2 100644
@@ -242,6 +242,7 @@ enum pmbus_regs {
 /*
  * OPERATION
  */
+#define PB_OPERATION_CONTROL_V_SRC	GENMASK(5, 4)
 #define PB_OPERATION_CONTROL_ON		BIT(7)
 
 /*
@@ -386,7 +387,7 @@ enum pmbus_sensor_classes {
 };
 
 #define PMBUS_PAGES	32	/* Per PMBus specification */
-#define PMBUS_PHASES	10	/* Maximum number of phases per page */
+#define PMBUS_PHASES	16	/* Maximum number of phases per page */
 
 /* Functionality bit mask */
 #define PMBUS_HAVE_VIN		BIT(0)
drivers/hwmon/pmbus/tps53679.c +10 -1
index 249974c13aa3..228fb9d1560e 100644
@@ -187,7 +187,7 @@ static int tps53676_identify(struct i2c_client *client,
 		return -EIO;
 	for (i = 0; i < 2 * TPS53676_MAX_PHASES; i += 2) {
 		if (buf[i + 1] & 0x80) {
-			if (buf[i] & 0x08)
+			if (buf[i] & BIT(4))
 				phases_b++;
 			else
 				phases_a++;
@@ -200,6 +200,15 @@ static int tps53676_identify(struct i2c_client *client,
 	if (phases_b > 0) {
 		info->pages = 2;
 		info->phases[1] = phases_b;
+	} else {
+		/*
+		 * pmbus_set_page() does not update the PAGE register on
+		 * single-page devices, so select page 0 explicitly in case
+		 * the boot firmware left the device on another page.
+		 */
+		ret = i2c_smbus_write_byte_data(client, PMBUS_PAGE, 0);
+		if (ret < 0)
+			return ret;
 	}
 	return 0;
 }
drivers/hwmon/pwm-fan.c +12 -1
index 37269db2de84..9bdbe63c7db8 100644
@@ -484,7 +484,6 @@ static void pwm_fan_cleanup(void *__ctx)
 {
 	struct pwm_fan_ctx *ctx = __ctx;
 
-	timer_delete_sync(&ctx->rpm_timer);
 	if (ctx->pwm_shutdown) {
 		ctx->enable_mode = pwm_enable_reg_enable;
 		__set_pwm(ctx, ctx->pwm_shutdown);
@@ -495,6 +494,13 @@ static void pwm_fan_cleanup(void *__ctx)
 	}
 }
 
+static void pwm_fan_timer_cleanup(void *__ctx)
+{
+	struct pwm_fan_ctx *ctx = __ctx;
+
+	timer_shutdown_sync(&ctx->rpm_timer);
+}
+
 static int pwm_fan_probe(struct platform_device *pdev)
 {
 	struct thermal_cooling_device *cdev;
@@ -649,6 +655,10 @@ static int pwm_fan_probe(struct platform_device *pdev)
 	}
 
 	if (ctx->tach_count > 0) {
+		ret = devm_add_action_or_reset(dev, pwm_fan_timer_cleanup, ctx);
+		if (ret)
+			return ret;
+
 		ctx->sample_start = ktime_get();
 		mod_timer(&ctx->rpm_timer, jiffies + HZ);
 
@@ -704,6 +714,7 @@ static void pwm_fan_shutdown(struct platform_device *pdev)
 {
 	struct pwm_fan_ctx *ctx = platform_get_drvdata(pdev);
 
+	pwm_fan_timer_cleanup(ctx);
 	pwm_fan_cleanup(ctx);
 }
 
drivers/hwmon/w83791d.c +1 -0
index 996e36951f9d..21f421d7379f 100644
@@ -1415,6 +1415,7 @@ static void w83791d_remove(struct i2c_client *client)
 	struct w83791d_data *data = i2c_get_clientdata(client);
 
 	hwmon_device_unregister(data->hwmon_dev);
+	sysfs_remove_group(&client->dev.kobj, &w83791d_group_fanpwm45);
 	sysfs_remove_group(&client->dev.kobj, &w83791d_group);
 }
 
drivers/hwmon/w83793.c +3 -1
index ec03745328a6..109d0834834e 100644
@@ -1928,7 +1928,9 @@ static int w83793_probe(struct i2c_client *client)
 	for (i = 0; i < ARRAY_SIZE(w83793_temp); i++)
 		device_remove_file(dev, &w83793_temp[i].dev_attr);
 free_mem:
-	kfree(data);
+	mutex_lock(&watchdog_data_mutex);
+	kref_put(&data->kref, w83793_release_resources);
+	mutex_unlock(&watchdog_data_mutex);
 exit:
 	return err;
 }
drivers/i2c/busses/i2c-at91-core.c +3 -0
index b64adef778d4..8ca4556d9664 100644
@@ -255,6 +255,7 @@ static int at91_twi_probe(struct platform_device *pdev)
 	if (rc) {
 		pm_runtime_disable(dev->dev);
 		pm_runtime_set_suspended(dev->dev);
+		at91_twi_dma_release(dev);
 
 		return rc;
 	}
@@ -270,6 +271,8 @@ static void at91_twi_remove(struct platform_device *pdev)
 
 	i2c_del_adapter(&dev->adapter);
 
+	at91_twi_dma_release(dev);
+
 	pm_runtime_disable(dev->dev);
 	pm_runtime_set_suspended(dev->dev);
 }
drivers/i2c/busses/i2c-at91-master.c +11 -1
index 894cedbca99f..68238cc8aee0 100644
@@ -817,11 +817,21 @@ static int at91_twi_configure_dma(struct at91_twi_dev *dev, u32 phy_addr)
 error:
 	if (ret != -EPROBE_DEFER)
 		dev_info(dev->dev, "can't get DMA channel, continue without DMA support\n");
+	at91_twi_dma_release(dev);
+	return ret;
+}
+
+void at91_twi_dma_release(struct at91_twi_dev *dev)
+{
+	struct at91_twi_dma *dma = &dev->dma;
+
 	if (dma->chan_rx)
 		dma_release_channel(dma->chan_rx);
 	if (dma->chan_tx)
 		dma_release_channel(dma->chan_tx);
-	return ret;
+	dma->chan_rx = NULL;
+	dma->chan_tx = NULL;
+	dev->use_dma = false;
 }
 
 static int at91_init_twi_recovery_gpio(struct platform_device *pdev,
drivers/i2c/busses/i2c-at91.h +1 -0
index 942e9c3973bb..d68fcbbc3e0f 100644
@@ -172,6 +172,7 @@ void at91_twi_irq_restore(struct at91_twi_dev *dev);
 void at91_init_twi_bus(struct at91_twi_dev *dev);
 
 void at91_init_twi_bus_master(struct at91_twi_dev *dev);
+void at91_twi_dma_release(struct at91_twi_dev *dev);
 int at91_twi_probe_master(struct platform_device *pdev, u32 phy_addr,
 			  struct at91_twi_dev *dev);
 
drivers/i2c/busses/i2c-imx.c +3 -0
index 9477d814fde9..cccff6e63db2 100644
@@ -1880,6 +1880,8 @@ static int i2c_imx_probe(struct platform_device *pdev)
 
 clk_notifier_unregister:
 	clk_notifier_unregister(i2c_imx->clk, &i2c_imx->clk_change_nb);
+	if (i2c_imx->dma)
+		i2c_imx_dma_free(i2c_imx);
 	free_irq(irq, i2c_imx);
 rpm_disable:
 	pm_runtime_put_noidle(&pdev->dev);
@@ -1920,6 +1922,7 @@ static void i2c_imx_remove(struct platform_device *pdev)
 
 	pm_runtime_put_noidle(&pdev->dev);
 	pm_runtime_disable(&pdev->dev);
+	pm_runtime_dont_use_autosuspend(&pdev->dev);
 }
 
 static int i2c_imx_runtime_suspend(struct device *dev)
drivers/i2c/busses/i2c-qcom-cci.c +11 -9
index 776c3e36e915..52ef7f07c51c 100644
@@ -499,10 +499,14 @@ static const struct dev_pm_ops qcom_cci_pm = {
 	SET_RUNTIME_PM_OPS(cci_suspend_runtime, cci_resume_runtime, NULL)
 };
 
+static void cci_put_of_node(void *data)
+{
+	of_node_put(data);
+}
+
 static int cci_probe(struct platform_device *pdev)
 {
 	struct device *dev = &pdev->dev;
-	struct device_node *child;
 	struct resource *r;
 	struct cci *cci;
 	int ret, i;
@@ -518,7 +522,7 @@ static int cci_probe(struct platform_device *pdev)
 	if (!cci->data)
 		return -ENOENT;
 
-	for_each_available_child_of_node(dev->of_node, child) {
+	for_each_available_child_of_node_scoped(dev->of_node, child) {
 		struct cci_master *master;
 		u32 idx;
 
@@ -539,6 +543,9 @@ static int cci_probe(struct platform_device *pdev)
 		master->adap.algo = &cci_algo;
 		master->adap.dev.parent = dev;
 		master->adap.dev.of_node = of_node_get(child);
+		ret = devm_add_action_or_reset(dev, cci_put_of_node, child);
+		if (ret)
+			return ret;
 		master->master = idx;
 		master->cci = cci;
 
@@ -610,10 +617,8 @@ static int cci_probe(struct platform_device *pdev)
 			continue;
 
 		ret = i2c_add_adapter(&cci->master[i].adap);
-		if (ret < 0) {
-			of_node_put(cci->master[i].adap.dev.of_node);
+		if (ret < 0)
 			goto error_i2c;
-		}
 	}
 
 	return 0;
@@ -621,10 +626,8 @@ static int cci_probe(struct platform_device *pdev)
 error_i2c:
 
 	for (--i ; i >= 0; i--) {
-		if (cci->master[i].cci) {
+		if (cci->master[i].cci)
 			i2c_del_adapter(&cci->master[i].adap);
-			of_node_put(cci->master[i].adap.dev.of_node);
-		}
 	}
 disable_clocks:
 	cci_disable_clocks(cci);
@@ -640,7 +643,6 @@ static void cci_remove(struct platform_device *pdev)
 	for (i = 0; i < cci->data->num_masters; i++) {
 		if (cci->master[i].cci) {
 			i2c_del_adapter(&cci->master[i].adap);
-			of_node_put(cci->master[i].adap.dev.of_node);
 			cci_halt(cci, i);
 		}
 	}
drivers/i2c/i2c-atr.c +1 -0
index dd194476b118..a05cec38d8c5 100644
@@ -864,6 +864,7 @@ int i2c_atr_add_adapter(struct i2c_atr *atr, struct i2c_atr_adap_desc *desc)
 
 	ret = i2c_add_adapter(&chan->adap);
 	if (ret) {
+		atr->adapter[chan_id] = NULL;
 		dev_err(dev, "failed to add atr-adapter %u (error=%d)\n",
 			chan_id, ret);
 		goto err_free_alias_pool;
drivers/infiniband/core/iwpm_util.c +5 -4
index eecb369898f5..2c30f5c43c85 100644
@@ -314,10 +314,6 @@ struct iwpm_nlmsg_request *iwpm_get_nlmsg_request(__u32 nlmsg_seq,
 	if (!nlmsg_request)
 		return NULL;
 
-	spin_lock_irqsave(&iwpm_nlmsg_req_lock, flags);
-	list_add_tail(&nlmsg_request->inprocess_list, &iwpm_nlmsg_req_list);
-	spin_unlock_irqrestore(&iwpm_nlmsg_req_lock, flags);
-
 	kref_init(&nlmsg_request->kref);
 	kref_get(&nlmsg_request->kref);
 	nlmsg_request->nlmsg_seq = nlmsg_seq;
@@ -326,6 +322,11 @@ struct iwpm_nlmsg_request *iwpm_get_nlmsg_request(__u32 nlmsg_seq,
 	nlmsg_request->err_code = 0;
 	sema_init(&nlmsg_request->sem, 1);
 	down(&nlmsg_request->sem);
+
+	spin_lock_irqsave(&iwpm_nlmsg_req_lock, flags);
+	list_add_tail(&nlmsg_request->inprocess_list, &iwpm_nlmsg_req_list);
+	spin_unlock_irqrestore(&iwpm_nlmsg_req_lock, flags);
+
 	return nlmsg_request;
 }
 
drivers/infiniband/core/mad.c +2 -1
index 5150cd53d443..f7ad35233c2d 100644
@@ -2059,6 +2059,8 @@ static void ib_mad_complete_recv(struct ib_mad_agent_private *mad_agent_priv,
 	int ret;
 
 	INIT_LIST_HEAD(&mad_recv_wc->rmpp_list);
+	list_add(&mad_recv_wc->recv_buf.list, &mad_recv_wc->rmpp_list);
+
 	ret = ib_mad_enforce_security(mad_agent_priv,
 				      mad_recv_wc->wc->pkey_index);
 	if (ret) {
@@ -2067,7 +2069,6 @@ static void ib_mad_complete_recv(struct ib_mad_agent_private *mad_agent_priv,
 		return;
 	}
 
-	list_add(&mad_recv_wc->recv_buf.list, &mad_recv_wc->rmpp_list);
 	if (is_kernel_rmpp_data_response(mad_agent_priv, mad_recv_wc)) {
 		spin_lock_irqsave(&mad_agent_priv->lock, flags);
 		mad_send_wr = ib_find_send_mad(mad_agent_priv, mad_recv_wc);
drivers/infiniband/core/ucma.c +4 -3
index 797efd4a4728..3620d243cd4f 100644
@@ -1556,9 +1556,10 @@ static ssize_t ucma_process_join(struct ucma_file *file,
 	mutex_lock(&ctx->mutex);
 	ret = rdma_join_multicast(ctx->cm_id, (struct sockaddr *)&mc->addr,
 				  join_state, mc);
-	mutex_unlock(&ctx->mutex);
-	if (ret)
+	if (ret) {
+		mutex_unlock(&ctx->mutex);
 		goto err_xa_erase;
+	}
 
 	resp.id = mc->id;
 	if (copy_to_user(u64_to_user_ptr(cmd->response),
@@ -1566,6 +1567,7 @@ static ssize_t ucma_process_join(struct ucma_file *file,
 		ret = -EFAULT;
 		goto err_leave_multicast;
 	}
+	mutex_unlock(&ctx->mutex);
 
 	xa_store(&multicast_table, mc->id, mc, 0);
 
@@ -1573,7 +1575,6 @@ static ssize_t ucma_process_join(struct ucma_file *file,
 	return 0;
 
 err_leave_multicast:
-	mutex_lock(&ctx->mutex);
 	rdma_leave_multicast(ctx->cm_id, (struct sockaddr *) &mc->addr);
 	mutex_unlock(&ctx->mutex);
 	ucma_cleanup_mc_events(mc);
drivers/infiniband/core/verbs.c +8 -4
index 4357164a9976..fcc21fb5fb86 100644
@@ -2051,11 +2051,13 @@ int ib_get_eth_speed(struct ib_device *dev, u32 port_num, u16 *speed, u8 *width)
 		return -ENODEV;
 
 	rtnl_lock();
-	rc = __ethtool_get_link_ksettings(netdev, &lksettings);
-	rtnl_unlock();
-
-	dev_put(netdev);
+	if (READ_ONCE(netdev->reg_state) != NETREG_REGISTERED) {
+		dev_put(netdev);
+		rtnl_unlock();
+		return -ENODEV;
+	}
 
+	rc = __ethtool_get_link_ksettings(netdev, &lksettings);
 	if (!rc && lksettings.base.speed != (u32)SPEED_UNKNOWN) {
 		netdev_speed = lksettings.base.speed;
 	} else {
@@ -2064,6 +2066,8 @@ int ib_get_eth_speed(struct ib_device *dev, u32 port_num, u16 *speed, u8 *width)
 			pr_warn("%s speed is unknown, defaulting to %u\n",
 				netdev->name, netdev_speed);
 	}
+	dev_put(netdev);
+	rtnl_unlock();
 
 	ib_get_width_and_speed(netdev_speed, lksettings.lanes,
 			       speed, width);
drivers/infiniband/hw/bnxt_re/main.c +8 -2
index f33e006126fd..e8a4befd6ca0 100644
@@ -356,9 +356,13 @@ static int bnxt_re_update_qp1_tos_dscp(struct bnxt_re_dev *rdev)
 	return bnxt_qplib_modify_qp(&rdev->qplib_res, &qp->qplib_qp);
 }
 
-static void bnxt_re_init_dcb_wq(struct bnxt_re_dev *rdev)
+static int bnxt_re_init_dcb_wq(struct bnxt_re_dev *rdev)
 {
 	rdev->dcb_wq = create_singlethread_workqueue("bnxt_re_dcb_wq");
+	if (!rdev->dcb_wq)
+		return -ENOMEM;
+
+	return 0;
 }
 
 static void bnxt_re_uninit_dcb_wq(struct bnxt_re_dev *rdev)
@@ -2340,7 +2344,9 @@ static int bnxt_re_dev_init(struct bnxt_re_dev *rdev, u8 op_type)
 
 	bnxt_re_debugfs_add_pdev(rdev);
 
-	bnxt_re_init_dcb_wq(rdev);
+	rc = bnxt_re_init_dcb_wq(rdev);
+	if (rc)
+		goto fail;
 	bnxt_re_net_register_async_event(rdev);
 
 	if (!rdev->is_virtfn)
drivers/infiniband/hw/efa/efa_com.c +2 -5
index e97b5f0d7003..21b9bd1c1fef 100644
@@ -750,7 +750,7 @@ int efa_com_admin_init(struct efa_com_dev *edev,
 
 	aq->dmadev = edev->dmadev;
 	aq->efa_dev = edev->efa_dev;
-	set_bit(EFA_AQ_STATE_POLLING_BIT, &aq->state);
+	efa_com_set_admin_polling_mode(edev, true);
 
 	sema_init(&aq->avail_cmds, aq->depth);
 
@@ -768,8 +768,6 @@ int efa_com_admin_init(struct efa_com_dev *edev,
 	if (err)
 		goto err_destroy_sq;
 
-	efa_com_set_admin_polling_mode(edev, false);
-
 	err = efa_com_admin_init_aenq(edev, aenq_handlers);
 	if (err)
 		goto err_destroy_cq;
@@ -1158,7 +1156,7 @@ static void efa_com_destroy_eq(struct efa_com_dev *edev,
 				      err);
 }
 
-static void efa_com_arm_eq(struct efa_com_dev *edev, struct efa_com_eq *eeq)
+void efa_com_arm_eq(struct efa_com_dev *edev, struct efa_com_eq *eeq)
 {
 	u32 val = 0;
 
@@ -1247,7 +1245,6 @@ int efa_com_eq_init(struct efa_com_dev *edev, struct efa_com_eq *eeq,
 	eeq->phase = 1;
 	eeq->depth = params.depth;
 	eeq->cb = cb;
-	efa_com_arm_eq(edev, eeq);
 
 	return 0;
 
drivers/infiniband/hw/efa/efa_com.h +1 -0
index 4d9ca97e4296..1f635f4047ac 100644
@@ -157,6 +157,7 @@ int efa_com_admin_init(struct efa_com_dev *edev,
 void efa_com_admin_destroy(struct efa_com_dev *edev);
 int efa_com_eq_init(struct efa_com_dev *edev, struct efa_com_eq *eeq,
 		    efa_eqe_handler cb, u16 depth, u8 msix_vec);
+void efa_com_arm_eq(struct efa_com_dev *edev, struct efa_com_eq *eeq);
 void efa_com_eq_destroy(struct efa_com_dev *edev, struct efa_com_eq *eeq);
 int efa_com_dev_reset(struct efa_com_dev *edev,
 		      enum efa_regs_reset_reason_types reset_reason);
drivers/infiniband/hw/efa/efa_main.c +19 -14
index 6c415b9adb5f..fdaf88f0122d 100644
@@ -300,28 +300,30 @@ static void efa_set_host_info(struct efa_dev *dev)
 
 static void efa_destroy_eq(struct efa_dev *dev, struct efa_eq *eq)
 {
-	efa_com_eq_destroy(&dev->edev, &eq->eeq);
 	efa_free_irq(dev, &eq->irq);
+	efa_com_eq_destroy(&dev->edev, &eq->eeq);
 }
 
 static int efa_create_eq(struct efa_dev *dev, struct efa_eq *eq, u32 msix_vec)
 {
 	int err;
 
-	efa_setup_comp_irq(dev, eq, msix_vec);
-	err = efa_request_irq(dev, &eq->irq);
+	err = efa_com_eq_init(&dev->edev, &eq->eeq, efa_process_eqe,
+			      dev->dev_attr.max_eq_depth, msix_vec);
 	if (err)
 		return err;
 
-	err = efa_com_eq_init(&dev->edev, &eq->eeq, efa_process_eqe,
-			      dev->dev_attr.max_eq_depth, msix_vec);
+	efa_setup_comp_irq(dev, eq, msix_vec);
+	err = efa_request_irq(dev, &eq->irq);
 	if (err)
-		goto err_free_comp_irq;
+		goto err_destroy_eq;
+
+	efa_com_arm_eq(&dev->edev, &eq->eeq);
 
 	return 0;
 
-err_free_comp_irq:
-	efa_free_irq(dev, &eq->irq);
+err_destroy_eq:
+	efa_com_eq_destroy(&dev->edev, &eq->eeq);
 	return err;
 }
 
@@ -611,18 +613,21 @@ static struct efa_dev *efa_probe_device(struct pci_dev *pdev)
 	edev->aq.msix_vector_idx = dev->admin_msix_vector_idx;
 	edev->aenq.msix_vector_idx = dev->admin_msix_vector_idx;
 
-	err = efa_set_mgmnt_irq(dev);
+	err = efa_com_admin_init(edev, &aenq_handlers);
 	if (err)
 		goto err_disable_msix;
 
-	err = efa_com_admin_init(edev, &aenq_handlers);
+	err = efa_set_mgmnt_irq(dev);
 	if (err)
-		goto err_free_mgmnt_irq;
+		goto err_destroy_admin;
+
+	efa_com_set_admin_polling_mode(edev, false);
 
 	return dev;
 
-err_free_mgmnt_irq:
-	efa_free_irq(dev, &dev->admin_irq);
+err_destroy_admin:
+	efa_com_dev_reset(edev, EFA_REGS_RESET_INIT_ERR);
+	efa_com_admin_destroy(edev);
 err_disable_msix:
 	efa_disable_msix(dev);
 err_reg_read_destroy:
@@ -646,8 +651,8 @@ static void efa_remove_device(struct pci_dev *pdev,
 
 	edev = &dev->edev;
 	efa_com_dev_reset(edev, reset_reason);
-	efa_com_admin_destroy(edev);
 	efa_free_irq(dev, &dev->admin_irq);
+	efa_com_admin_destroy(edev);
 	efa_disable_msix(dev);
 	efa_com_mmio_reg_read_destroy(edev);
 	devm_iounmap(&pdev->dev, edev->reg_bar);
drivers/infiniband/hw/hfi1/file_ops.c +17 -6
index 503abec709c9..a7a8a39e69fb 100644
@@ -326,6 +326,7 @@ static int hfi1_file_mmap(struct file *fp, struct vm_area_struct *vma)
 	void *memvirt = NULL;
 	dma_addr_t memdma = 0;
 	u8 subctxt, mapio = 0, vmf = 0, type;
+	size_t memdmalen = 0;
 	ssize_t memlen = 0;
 	int ret = 0;
 	u16 ctxt;
@@ -371,7 +372,9 @@ static int hfi1_file_mmap(struct file *fp, struct vm_area_struct *vma)
 		mapio = 1;
 		break;
 	case PIO_CRED: {
+		struct credit_return_base *cr = &dd->cr_base[uctxt->sc->node];
 		u64 cr_page_offset;
+
 		if (flags & VM_WRITE) {
 			ret = -EPERM;
 			goto done;
@@ -381,11 +384,18 @@ static int hfi1_file_mmap(struct file *fp, struct vm_area_struct *vma)
 		 * second or third page allocated for credit returns (if number
 		 * of enabled contexts > 64 and 128 respectively).
 		 */
-		cr_page_offset = ((u64)uctxt->sc->hw_free -
-			  	     (u64)dd->cr_base[uctxt->numa_id].va) &
-				   PAGE_MASK;
-		memvirt = dd->cr_base[uctxt->numa_id].va + cr_page_offset;
-		memdma = dd->cr_base[uctxt->numa_id].dma + cr_page_offset;
+		cr_page_offset = ((u64)uctxt->sc->hw_free - (u64)cr->va) &
+				 PAGE_MASK;
+		/*
+		 * dma_mmap_coherent() describes the whole coherent buffer and
+		 * selects the page within it with vma->vm_pgoff, so pass the
+		 * base of the allocation and its length and let vm_pgoff pick
+		 * the page.
+		 */
+		vma->vm_pgoff = cr_page_offset >> PAGE_SHIFT;
+		memvirt = cr->va;
+		memdma = cr->dma;
+		memdmalen = TXE_NUM_CONTEXTS * sizeof(struct credit_return);
 		memlen = PAGE_SIZE;
 		flags &= ~VM_MAYWRITE;
 		flags |= VM_DONTCOPY | VM_DONTEXPAND;
@@ -567,7 +577,8 @@ static int hfi1_file_mmap(struct file *fp, struct vm_area_struct *vma)
 		ret = 0;
 	} else if (memdma) {
 		ret = dma_mmap_coherent(&dd->pcidev->dev, vma,
-					memvirt, memdma, memlen);
+					memvirt, memdma,
+					memdmalen ? memdmalen : memlen);
 	} else if (mapio) {
 		ret = io_remap_pfn_range(vma, vma->vm_start,
 					 PFN_DOWN(memaddr),
drivers/infiniband/hw/irdma/verbs.c +1 -1
index 9ada0bc00bd0..40443d77365b 100644
@@ -4165,7 +4165,7 @@ static int irdma_post_send(struct ib_qp *ibqp,
 			stag_info.total_len = iwmr->ibmr.length;
 			stag_info.reg_addr_pa = *palloc->level1.addr;
 			stag_info.first_pm_pbl_index = palloc->level1.idx;
-			stag_info.local_fence = ib_wr->send_flags & IB_SEND_FENCE;
+			stag_info.local_fence = true;
 			if (iwmr->npages > IRDMA_MIN_PAGES_PER_FMR)
 				stag_info.chunk_size = 1;
 			err = irdma_sc_mr_fast_register(&iwqp->sc_qp, &stag_info,
drivers/infiniband/hw/mlx4/sysfs.c +4 -0
index 1676f819c2f7..9e6a0a22663d 100644
@@ -753,11 +753,13 @@ static int register_one_pkey_tree(struct mlx4_ib_dev *dev, int slave)
 		kobject_put(p);
 	}
 	kobject_put(dev->dev_ports_parent[slave]);
+	dev->dev_ports_parent[slave] = NULL;
 
 err_ports:
 	kobject_put(dev->pkeys.device_parent[slave]);
 	/* extra put for the device_parent create_and_add */
 	kobject_put(dev->pkeys.device_parent[slave]);
+	dev->pkeys.device_parent[slave] = NULL;
 
 fail_dev:
 	kobject_put(dev->iov_parent);
@@ -787,6 +789,8 @@ static void unregister_pkey_tree(struct mlx4_ib_dev *device)
 		return;
 
 	for (slave = device->dev->persist->num_vfs; slave >= 0; --slave) {
+		if (!device->pkeys.device_parent[slave])
+			continue;
 		list_for_each_entry_safe(p, t,
 					 &device->pkeys.pkey_port_list[slave],
 					 entry) {
drivers/infiniband/hw/mlx5/main.c +2 -5
index c6b0bb786739..3dd100cd9156 100644
@@ -1669,11 +1669,8 @@ static int mlx5_ib_query_port_speed_rep(struct mlx5_ib_dev *dev, u32 port_num,
 	struct mlx5_core_dev *mdev;
 	u16 op_mod;
 
-	if (!dev->port[port_num - 1].rep) {
-		mlx5_ib_warn(dev, "Representor doesn't exist for port %u\n",
-			     port_num);
-		return -EINVAL;
-	}
+	if (!dev->port[port_num - 1].rep)
+		return -ENODEV;
 
 	rep = dev->port[port_num - 1].rep;
 	mdev = mlx5_eswitch_get_core_dev(rep->esw);
drivers/infiniband/sw/rxe/rxe_mcast.c +36 -14

82 lines not on this page · raw message

drivers/infiniband/sw/rxe/rxe_mr.c +2 -1
index 2c486bb616a7..cd787e24c9ac 100644
@@ -33,7 +33,8 @@ int mr_check_range(struct rxe_mr *mr, u64 iova, size_t length)
 	case IB_MR_TYPE_USER:
 	case IB_MR_TYPE_MEM_REG:
 		if (iova < mr->ibmr.iova ||
-		    iova + length > mr->ibmr.iova + mr->ibmr.length) {
+		    length > mr->ibmr.length ||
+		    iova - mr->ibmr.iova > mr->ibmr.length - length) {
 			rxe_dbg_mr(mr, "iova/length out of range\n");
 			return -EINVAL;
 		}
drivers/infiniband/sw/rxe/rxe_odp.c +11 -5
index 16b3fbdf2f86..995c1cb5c958 100644
@@ -126,19 +126,23 @@ int rxe_odp_mr_init_user(struct rxe_dev *rxe, u64 start, u64 length,
 }
 
 static inline bool rxe_check_pagefault(struct ib_umem_odp *umem_odp, u64 iova,
-				       int length)
+				       int length, bool write)
 {
 	bool need_fault = false;
+	u64 access = HMM_PFN_VALID;
 	u64 addr;
 	int idx;
 
+	if (write)
+		access |= HMM_PFN_WRITE;
+
 	addr = iova & (~(BIT(umem_odp->page_shift) - 1));
 
 	/* Skim through all pages that are to be accessed. */
 	while (addr < iova + length) {
 		idx = (addr - ib_umem_start(umem_odp)) >> umem_odp->page_shift;
 
-		if (!(umem_odp->map.pfn_list[idx] & HMM_PFN_VALID)) {
+		if ((umem_odp->map.pfn_list[idx] & access) != access) {
 			need_fault = true;
 			break;
 		}
@@ -161,6 +165,7 @@ static unsigned long rxe_odp_iova_to_page_offset(struct ib_umem_odp *umem_odp, u
 static int rxe_odp_map_range_and_lock(struct rxe_mr *mr, u64 iova, int length, u32 flags)
 {
 	struct ib_umem_odp *umem_odp = to_ib_umem_odp(mr->umem);
+	bool write = !(flags & RXE_PAGEFAULT_RDONLY);
 	bool need_fault;
 	int err;
 
@@ -169,7 +174,7 @@ static int rxe_odp_map_range_and_lock(struct rxe_mr *mr, u64 iova, int length, u
 
 	mutex_lock(&umem_odp->umem_mutex);
 
-	need_fault = rxe_check_pagefault(umem_odp, iova, length);
+	need_fault = rxe_check_pagefault(umem_odp, iova, length, write);
 	if (need_fault) {
 		mutex_unlock(&umem_odp->umem_mutex);
 
@@ -179,7 +184,7 @@ static int rxe_odp_map_range_and_lock(struct rxe_mr *mr, u64 iova, int length, u
 		if (err < 0)
 			return err;
 
-		need_fault = rxe_check_pagefault(umem_odp, iova, length);
+		need_fault = rxe_check_pagefault(umem_odp, iova, length, write);
 		if (need_fault) {
 			mutex_unlock(&umem_odp->umem_mutex);
 			return -EFAULT;
@@ -341,8 +346,9 @@ int rxe_odp_flush_pmem_iova(struct rxe_mr *mr, u64 iova,
 	int err;
 	u8 *va;
 
+	/* A flush never modifies memory; read-only access suffices. */
 	err = rxe_odp_map_range_and_lock(mr, iova, length,
-					 RXE_PAGEFAULT_DEFAULT);
+					 RXE_PAGEFAULT_RDONLY);
 	if (err)
 		return err;
 
drivers/infiniband/sw/rxe/rxe_verbs.c +7 -6
index 23304765decf..a1c75ccea40d 100644
@@ -1346,19 +1346,20 @@ static struct ib_mr *rxe_rereg_user_mr(struct ib_mr *ibmr, int flags,
 	if (err)
 		return ERR_PTR(err);
 
+	if ((flags & IB_MR_REREG_ACCESS) &&
+	    (access & ~RXE_ACCESS_SUPPORTED_MR)) {
+		rxe_err_mr(mr, "access = %#x not supported\n", access);
+		return ERR_PTR(-EOPNOTSUPP);
+	}
+
 	if (flags & IB_MR_REREG_PD) {
 		rxe_put(old_pd);
 		rxe_get(pd);
 		mr->ibmr.pd = ibpd;
 	}
 
-	if (flags & IB_MR_REREG_ACCESS) {
-		if (access & ~RXE_ACCESS_SUPPORTED_MR) {
-			rxe_err_mr(mr, "access = %#x not supported\n", access);
-			return ERR_PTR(-EOPNOTSUPP);
-		}
+	if (flags & IB_MR_REREG_ACCESS)
 		mr->access = access;
-	}
 
 	return NULL;
 }
drivers/infiniband/sw/siw/siw_cm.c +5 -2
index bb7d90963907..04fabab44058 100644
@@ -1669,9 +1669,12 @@ int siw_accept(struct iw_cm_id *id, struct iw_cm_conn_param *params)
 			   SIW_QP_ATTR_STATE | SIW_QP_ATTR_LLP_HANDLE |
 				   SIW_QP_ATTR_ORD | SIW_QP_ATTR_IRD |
 				   SIW_QP_ATTR_MPA);
+	if (rv) {
+		qp->cep = NULL;
+		siw_cep_put(cep);
+		goto error_unlock;
+	}
 	up_write(&qp->state_lock);
-	if (rv)
-		goto error;
 
 	siw_dbg_cep(cep, "[QP %u]: send mpa reply, %d byte pdata\n",
 		    qp_id(qp), params->private_data_len);
drivers/infiniband/sw/siw/siw_qp_rx.c +1 -1
index b566d163c5aa..e5b641c8d694 100644
@@ -1079,7 +1079,7 @@ static int siw_get_hdr(struct siw_rx_stream *srx)
 	if (iwarp_pktinfo[opcode].hdr_len > sizeof(struct iwarp_ctrl_tagged)) {
 		int hdrlen = iwarp_pktinfo[opcode].hdr_len;
 
-		bytes = min_t(int, hdrlen - MIN_DDP_HDR, srx->skb_new);
+		bytes = min_t(int, hdrlen - srx->fpdu_part_rcvd, srx->skb_new);
 
 		skb_copy_bits(skb, srx->skb_offset,
 			      (char *)c_hdr + srx->fpdu_part_rcvd, bytes);
drivers/infiniband/ulp/ipoib/ipoib.h +7 -0
index 91f866e3fb8b..143e03b64902 100644
@@ -87,6 +87,7 @@ enum {
 	IPOIB_FLAG_INITIALIZED	  = 1,
 	IPOIB_FLAG_ADMIN_UP	  = 2,
 	IPOIB_PKEY_ASSIGNED	  = 3,
+	IPOIB_FLAG_MCAST_FLUSH	  = 4,
 	IPOIB_FLAG_SUBINTERFACE	  = 5,
 	IPOIB_STOP_REAPER	  = 7,
 	IPOIB_FLAG_ADMIN_CM	  = 9,
@@ -414,6 +415,12 @@ struct ipoib_dev_priv {
 	const struct net_device_ops	*rn_ops;
 };
 
+static inline bool ipoib_mcast_allowed(struct ipoib_dev_priv *priv)
+{
+	return test_bit(IPOIB_FLAG_OPER_UP, &priv->flags) &&
+	       !test_bit(IPOIB_FLAG_MCAST_FLUSH, &priv->flags);
+}
+
 struct ipoib_ah {
 	struct net_device *dev;
 	struct ib_ah	  *ah;
drivers/infiniband/ulp/ipoib/ipoib_ib.c +7 -5
index 10b0dbda6cd5..8d9aa75b8320 100644

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

drivers/infiniband/ulp/ipoib/ipoib_multicast.c +8 -8
index 8a4ab9ff0a68..4f7639bbc7dc 100644

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

drivers/infiniband/ulp/iser/iser_initiator.c +11 -5
index f5f090dc4f1e..cf234ddbaaad 100644

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

drivers/infiniband/ulp/isert/ib_isert.c +22 -0
index 6483a55170cd..b3fc753982a3 100644

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

drivers/infiniband/ulp/isert/ib_isert.h +2 -0
index 0bac5aa66c80..519b17e54bd3 100644

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

drivers/infiniband/ulp/rtrs/rtrs-clt.c +8 -0
index 8fa1d72bd20a..fea3b17611c5 100644

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

drivers/infiniband/ulp/rtrs/rtrs-clt.h +2 -0
index 0f57759b3080..e1e7c7adc947 100644

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

drivers/input/evdev.c +2 -0
index 1cf5ab25dc0a..d3cf1a0d3390 100644

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

drivers/input/input-compat.c +2 -0
index a5043193ead8..8860a0730294 100644

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

drivers/input/joystick/xpad.c +9 -1
index 1b6f38f62905..3e0c52c74906 100644

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

drivers/input/keyboard/adp5588-keys.c +6 -6
index 414fbef4abf9..8964a31ce59a 100644

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

drivers/input/keyboard/atkbd.c +8 -0
index db7762abfe5c..5facd6275c09 100644

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

drivers/input/misc/soc_button_array.c +12 -4
index b8cad415c62c..f08e29af531f 100644

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

drivers/input/mouse/synaptics.c +8 -0
index 4fbb58cc145d..701377805dec 100644

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

drivers/input/rmi4/rmi_driver.c +13 -0
index ccd9338a44db..18d188696bfa 100644

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

drivers/input/rmi4/rmi_smbus.c +5 -5
index f3d0b40721df..8118e755b24a 100644

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

drivers/input/serio/hp_sdc.c +1 -1
index 1461ef319f92..ecf5347b63ab 100644

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

drivers/input/serio/i8042-acpipnpio.h +7 -0
index 8ebdf4fb9030..ec364559d9e7 100644

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

drivers/input/touchscreen/cyttsp5.c +1 -0
index 071b7c9bf566..1b48cf2e6895 100644

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

drivers/input/touchscreen/eeti_ts.c +1 -0
index 87eb18977b71..50f150d82f29 100644

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

drivers/media/i2c/video-i2c.c +3 -2
index 20889f94610c..358467875697 100644

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

drivers/memstick/core/ms_block.c +2 -0
index e3657efd045e..e2ebc4190026 100644

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

drivers/misc/ntsync.c +6 -0
index 999026a1ae04..3eabab9f3c54 100644

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

drivers/mmc/core/bus.c +1 -1
index ec4f3462bf80..f9905eb4f174 100644

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

drivers/mmc/core/host.c +1 -0
index 88c95dbfd9cf..becb5a850a2f 100644

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

drivers/mmc/core/sdio_uart.c +3 -0
index 7423a601e1e5..dd42a69125fb 100644

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

drivers/mmc/host/mmc_hsq.c +7 -1
index 79836705c176..57e172bd3487 100644

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

drivers/mmc/host/mmc_spi.c +1 -0
index 42936e248c55..574fd8d1d2e7 100644

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

drivers/mmc/host/mmci.c +3 -0
index e500051bd572..416bdb184ed4 100644

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

drivers/mmc/host/mxcmmc.c +4 -0
index c405cfb8b269..097498a3f8ff 100644

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

drivers/mmc/host/rtsx_pci_sdmmc.c +5 -0
index 4db3328f46df..84f20e175df7 100644

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

drivers/mmc/host/sdhci-of-aspeed.c +4 -1
index ca97b01996b1..f2d133aca48d 100644

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

drivers/mmc/host/sdhci_am654.c +28 -15

43 lines not on this page · raw message

drivers/mmc/host/sh_mmcif.c +1 -2
index bf899c8e38f5..b536da1c96c1 100644

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

drivers/net/ethernet/broadcom/Kconfig +1 -0
index fe15d684990f..47e9ece4b37a 100644

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

drivers/net/ethernet/broadcom/genet/bcmgenet.c +150 -89

239 lines not on this page · raw message

drivers/net/ethernet/broadcom/genet/bcmgenet.h +3 -2
index 9e4110c7fdf6..22a958ba9902 100644

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

drivers/net/ethernet/cadence/macb_ptp.c +9 -0
index d961a5faf355..97b72f633d3b 100644

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

drivers/net/ethernet/cortina/gemini.c +1 -1
index 3215d26aa2d3..fddb068cc13c 100644

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

drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c +2 -1
index 79f8e0abfdbf..17ce1dfcccd1 100644

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

drivers/net/ethernet/meta/fbnic/fbnic_txrx.c +33 -9

42 lines not on this page · raw message

drivers/net/ethernet/meta/fbnic/fbnic_txrx.h +7 -2
index f2ee2cbf3486..643e7d3ddb54 100644

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

drivers/net/ethernet/microchip/lan743x_main.c +1 -1
index 441bc7a789f0..a49432e6e50d 100644

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

drivers/net/ethernet/socionext/netsec.c +2 -0
index ee890de69ffe..a432eb354049 100644

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

drivers/net/ethernet/stmicro/stmmac/hwif.h +1 -1
index 14dbe0685997..75e915e86c78 100644

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

drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c +0 -2
index 81d4039e1c08..741e3864f509 100644

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

drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c +9 -10
index 0119b4b89fc0..49161241d032 100644

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

drivers/net/fddi/skfp/skfddi.c +2 -1
index a273362c9e70..feea7baa4816 100644

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

drivers/net/phy/mediatek/mtk-phy-lib.c +17 -10
index dfd0f4e439a2..608072fbfde9 100644

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

drivers/net/wireless/ath/ath11k/mac.c +18 -7
index 4794caa9f7ea..c97c07a7ef0f 100644

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

drivers/net/wireless/ath/wcn36xx/dxe.c +1 -1
index 0f4df5585fd9..914054aeefd2 100644

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

drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c +2 -0
index 169e62b9d773..048b5d500215 100644

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

drivers/net/wireless/broadcom/brcm80211/brcmfmac/cyw/core.c +4 -1
index b7472e19dd60..32a6e9ca2a46 100644

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

drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c +4 -0
index aadcff1e2b5d..b59decc8a07c 100644

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

drivers/net/wireless/intel/ipw2x00/Kconfig +0 -1
index b92df91adb3a..b508f14542d5 100644

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

drivers/net/wireless/intel/ipw2x00/libipw_crypto_tkip.c +11 -119

130 lines not on this page · raw message

drivers/net/wireless/intel/ipw2x00/libipw_rx.c +6 -0
index c8841f9b9ad9..424349a6935e 100644

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

drivers/net/wireless/intel/iwlegacy/common.c +1 -1
index b7bd3ec4cc50..a4a2415a0634 100644

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

drivers/net/wireless/intersil/p54/eeprom.c +17 -5
index 5bd35c147e19..14646c878322 100644

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

drivers/net/wireless/marvell/libertas_tf/main.c +1 -1
index 42be6fa22f9c..411f075b6186 100644

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

drivers/net/wireless/marvell/mwifiex/cfg80211.c +10 -2
index ce569d35d051..58c35d7557fc 100644

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

drivers/net/wireless/marvell/mwifiex/pcie.c +1 -1
index a760de191fce..a9425e9a94f4 100644

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

drivers/net/wireless/marvell/mwifiex/scan.c +41 -13

54 lines not on this page · raw message

drivers/net/wireless/marvell/mwifiex/util.c +8 -2
index 6882e90e90b2..6b8561e6725b 100644

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

drivers/net/wireless/microchip/wilc1000/cfg80211.c +14 -0
index c39e7f313ea1..0178747d4b2f 100644

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

drivers/net/wireless/microchip/wilc1000/wlan.c +9 -0
index 1cc4ee62987d..9843f52fe75a 100644

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

drivers/net/wireless/realtek/rtw88/tx.c +1 -1
index 611dade1b1eb..e73c06b268cf 100644

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

drivers/net/wireless/rsi/rsi_91x_mgmt.c +0 -2
index 2ddf4d158bfe..c1fc39fafeb7 100644

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

drivers/net/wireless/ti/wlcore/main.c +1 -3
index bdb06584d7e4..fe7c2e70d168 100644

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

drivers/net/wireless/virtual/mac80211_hwsim.c +24 -15
index 90caa4290dc4..484198766efd 100644

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

drivers/net/wireless/virtual/virt_wifi.c +3 -1
index cd6b66242bff..16d1d3cedd98 100644

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

drivers/net/wwan/mhi_wwan_mbim.c +20 -8
index 1d7e3ad900c1..4995e9836f76 100644

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

drivers/net/wwan/t7xx/t7xx_netdev.c +4 -0
index fc0a7cb181df..8f32c2d26931 100644

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

drivers/perf/arm-cmn.c +7 -3
index 8924f482806b..527a953bf474 100644

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

drivers/phy/mediatek/phy-mtk-hdmi-mt8195.c +2 -2
index b38f3ae26b3f..2f03c4e66d6f 100644

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

drivers/phy/mediatek/phy-mtk-hdmi-mt8195.h +3 -0
index e26caaf4d104..58800d7659ca 100644

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

drivers/phy/renesas/phy-rcar-gen3-usb2.c +265 -45

310 lines not on this page · raw message

drivers/power/sequencing/Kconfig +2 -1
index 280f92beb5d0..a33b705415c4 100644

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

drivers/power/sequencing/core.c +7 -4
index 0a1bc6c20c11..54fba52df473 100644

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

drivers/scsi/fnic/fdls_disc.c +371 -359

730 lines not on this page · raw message

drivers/scsi/fnic/fip.c +55 -64

119 lines not on this page · raw message

drivers/scsi/fnic/fip.h +1 -1
index 79fee7628870..4866152a32df 100644

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

drivers/scsi/fnic/fnic.h +43 -36

79 lines not on this page · raw message

drivers/scsi/fnic/fnic_fcs.c +108 -58

166 lines not on this page · raw message

drivers/scsi/fnic/fnic_fdls.h +1 -1
index 531d0b37e450..e2959120c4f9 100644

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

drivers/scsi/fnic/fnic_isr.c +24 -17

41 lines not on this page · raw message

drivers/scsi/fnic/fnic_main.c +61 -28

89 lines not on this page · raw message

drivers/scsi/fnic/fnic_scsi.c +105 -159

264 lines not on this page · raw message

drivers/scsi/qla2xxx/qla_os.c +1 -1
index 3e148e4e9459..07ccfe0226c5 100644

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

drivers/scsi/scsi.c +19 -5
index 9a0f467264b3..c122a78afccf 100644

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

drivers/soc/samsung/exynos-pmu.c +2 -5
index d91049973113..0fcbc08633f6 100644

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

drivers/soundwire/cadence_master.c +7 -0
index d7a0a14ad962..9c7296afd711 100644

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

drivers/spi/spi-fsl-qspi.c +4 -1
index 3904d64ed433..cfcf2bc796a1 100644

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

drivers/spi/spi-qpic-snand.c +0 -4
index 42f8fb272fa6..222e4aa7ee48 100644

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

drivers/spi/spi-virtio.c +1 -1
index fb30c9207a4b..06845bd3fe83 100644

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

drivers/spi/spi-zynqmp-gqspi.c +34 -0
index f9a1427dabad..5e23b10d82a7 100644

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

drivers/watchdog/da9062_wdt.c +2 -2
index 426962547df1..4d558652e9e7 100644

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

drivers/watchdog/da9063_wdt.c +2 -2
index 92e1b78ff481..3703110e82fc 100644

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

drivers/watchdog/digicolor_wdt.c +9 -4
index 073d37867f47..de1a3267a972 100644

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

drivers/watchdog/msc313e_wdt.c +13 -3
index eea26c6c95d8..8aba7de823b5 100644

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

drivers/watchdog/rtd119x_wdt.c +6 -1
index 984905695dde..0bfadb58917b 100644

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

drivers/watchdog/rzv2h_wdt.c +6 -1
index f9bb4ef3d327..a1698dc50acd 100644

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

drivers/watchdog/sp5100_tco.c +5 -1
index 7e99c3b1f367..72ad59649ccc 100644

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

drivers/watchdog/starfive-wdt.c +1 -1
index af55adc4a3c6..5a3254c83d3b 100644

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

fs/9p/vfs_addr.c +28 -1
index 862164181bac..6bf5973445b6 100644

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

fs/btrfs/dev-replace.c +1 -0
index b6c7da8e1bc8..8800918bf9f1 100644

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

fs/btrfs/disk-io.c +4 -0
index 8863479a19d3..5396f900d5f1 100644

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

fs/btrfs/file.c +3 -1
index a15062f976ba..19f0f9df038c 100644

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

fs/btrfs/free-space-tree.c +10 -4
index fa8fbb19ff65..c1c7c793f291 100644

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

fs/btrfs/inode.c +2 -1
index 3023e1b504b9..6ab593b89319 100644

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

fs/btrfs/tree-checker.c +1 -1
index 79f297d9ebc4..baaca330e5db 100644

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

fs/btrfs/uuid-tree.c +43 -77

120 lines not on this page · raw message

fs/btrfs/verity.c +26 -21

47 lines not on this page · raw message

fs/btrfs/volumes.c +55 -98

153 lines not on this page · raw message

fs/btrfs/xattr.c +11 -25
index b6e91e8fb7e3..ab55d10bd71f 100644

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

fs/dax.c +6 -3
index 516f995a988c..69ac2562cec3 100644

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

fs/exec.c +21 -8
index c0eab916a3e0..4aa690525959 100644

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

fs/smb/client/cifs_fs_sb.h +1 -0
index fc75999ffdc4..87191ec7ddf5 100644

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

fs/smb/client/cifsfs.c +12 -0
index 7bd950b28deb..6d35f3872266 100644

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

fs/smb/client/cifssmb.c +1 -1
index 5956d6657383..0a5b580e5227 100644

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

fs/smb/client/connect.c +10 -0
index ae4d3f740065..f589b188ccfc 100644

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

fs/smb/client/file.c +19 -9
index 235e365f6093..1e557601804f 100644

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

fs/smb/client/misc.c +10 -2
index 25e29b1e554e..9c32213e9379 100644

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

fs/smb/client/reparse.c +2 -2
index 6ec6b8c46ba2..2e773a1a6714 100644

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

fs/smb/client/reparse.h +4 -3
index d7d205cde868..701969e018d2 100644

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

fs/smb/client/sess.c +64 -42

106 lines not on this page · raw message

fs/smb/client/smb2inode.c +11 -0
index b5351b620a57..2e28a965a25d 100644

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

fs/smb/client/smb2ops.c +38 -13

51 lines not on this page · raw message

fs/smb/client/smb2pdu.c +7 -6
index e4f18766f0a1..c07c5bb32140 100644

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

fs/smb/client/trace.h +1 -0
index 90fd665ff8dd..a56fbacf28d1 100644

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

fs/smb/server/server.c +1 -1
index f2bc73a7ee82..e7af6353a641 100644

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

fs/smb/server/smb2pdu.c +59 -30

89 lines not on this page · raw message

fs/smb/server/smb2pdu.h +1 -0
index 10591d757f2c..683334240701 100644

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

fs/smb/server/smb_common.c +10 -10
index 3e3758f5ed42..2f08c667e5ef 100644

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

fs/xfs/libxfs/xfs_bmap.c +1 -1
index 53ef4b7e504d..bdffade9848f 100644

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

fs/xfs/libxfs/xfs_da_btree.c +1 -1
index 90f7fc219fcc..90fbdef23def 100644

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

fs/xfs/libxfs/xfs_da_btree.h +2 -0
index 354d5d65043e..cd2e213f5e74 100644

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

fs/xfs/libxfs/xfs_rmap.h +2 -0
index 5f39f6e53cd1..3670a33fc927 100644

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

fs/xfs/scrub/attr_repair.c +2 -2
index fa68ecabd983..6f668ddea819 100644

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

fs/xfs/scrub/bmap.c +3 -3
index 47b5902431d0..687f2cd8a47f 100644

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

fs/xfs/scrub/common.c +3 -3
index 58f2ed19ef5a..ecbf965ad689 100644

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

fs/xfs/scrub/common.h +2 -2
index ae998501f8aa..5f854d3c7e8e 100644

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

fs/xfs/scrub/dir_repair.c +2 -2
index b43ea86db074..36432705c44a 100644

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

fs/xfs/scrub/dirtree.c +2 -2
index 2b5c5fa72339..686437ce10e5 100644

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

fs/xfs/scrub/inode.c +3 -3
index bb3f475b6353..0d30d65f336a 100644

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

fs/xfs/scrub/nlinks.c +1 -1
index 988262fc9953..d783b32a0b28 100644

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

fs/xfs/scrub/reap.c +1 -2
index db32356e517d..116afa89b1b3 100644

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

fs/xfs/scrub/rtbitmap.c +2 -2
index 68b833870760..639e1328c199 100644

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

fs/xfs/scrub/rtsummary.c +2 -2
index dbbbafe8b92d..8fb06ce4a200 100644

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

fs/xfs/scrub/tempfile.c +22 -7
index fabf6ae2e512..d9741a566fc6 100644

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

fs/xfs/xfs_inode.h +3 -0
index bd6d33557194..11598ee7c179 100644

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

include/keys/request_key_auth-type.h +1 -1
index 01e42ee5f409..464636278c4f 100644

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

include/linux/ieee80211.h +5 -0
index 2526ccd8a4a0..2cf3ae4b940a 100644

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

include/linux/mm.h +2 -2
index 50710a5d4a05..2c0503bbcc19 100644

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

include/net/bluetooth/coredump.h +2 -0
index 72f51b587a04..00c12c7ac042 100644

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

include/net/mac80211.h +4 -1
index ac2546b12138..d19b95d3c3a4 100644

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

include/net/netns/xfrm.h +1 -1
index 23dd647fe024..b73983a17e08 100644

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

include/net/sock.h +2 -0
index 9e13e1233e41..fb91d72a955d 100644

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

include/sound/soc.h +2 -1
index 33968935d00a..bfe8cd7cc338 100644

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

include/sound/soc_sdw_utils.h +26 -16

42 lines not on this page · raw message

kernel/dma/coherent.c +1 -2
index 77c8d9487a9a..87f2f02e921a 100644

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

kernel/dma/swiotlb.c +2 -2
index 294543316622..4593064c2ada 100644

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

kernel/exit.c +7 -5
index d60c1241923a..e38b2bb85097 100644

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

kernel/fork.c +2 -2
index 295cf8cf719e..7be5736d44c7 100644

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

kernel/sched/core.c +3 -3
index 43f3ac16b0e8..aad9813bd617 100644

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

kernel/signal.c +85 -32

117 lines not on this page · raw message

kernel/time/namespace.c +2 -0
index 51d2fcba7b5f..99dcdb3315db 100644

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

kernel/time/posix-cpu-timers.c +22 -18
index 2d64972fd080..b3d4bae9ee3e 100644

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

mm/filemap.c +1 -1
index 2d7533e965e6..1a0358810609 100644

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

mm/huge_memory.c +64 -22

86 lines not on this page · raw message

mm/memblock.c +11 -7
index 757258d68425..e2f15bbc274b 100644

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

mm/memcontrol.c +1 -1
index a4a3da6f241c..82ad23d689c7 100644

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

mm/mlock.c +1 -1
index 73551c71cebf..31045f17766a 100644

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

mm/mremap.c +4 -5
index bdf63ffaad3d..e60a63a36ea0 100644

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

mm/swapfile.c +1 -1
index cf33c3b2c31f..3ffa258de79e 100644

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

mm/vma.c +4 -2
index 30148e6af775..dcaa2d8998bf 100644

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

net/atm/pppoatm.c +17 -25

42 lines not on this page · raw message

net/bluetooth/coredump.c +44 -21

65 lines not on this page · raw message

net/bluetooth/eir.c +9 -1
index a55696820b22..ee0136bfae40 100644

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

net/bluetooth/hci_codec.c +18 -18
index 5bc5003c387c..7a7e813dcdda 100644

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

net/bluetooth/hci_core.c +15 -3
index 447a7ebcdf62..c0a8bd7af781 100644

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

net/bluetooth/hci_sync.c +2 -0
index be5886a7424f..969ad4317d4b 100644

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

net/bluetooth/iso.c +42 -11

53 lines not on this page · raw message

net/bluetooth/rfcomm/sock.c +10 -3
index 2286efef62f5..037a7fcab302 100644

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

net/bridge/br_mst.c +12 -8
index 43a300ae6bfa..1654efd3045b 100644

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

net/core/drop_monitor.c +6 -6
index a5e75cd04d6c..996ae451af62 100644

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

net/core/neighbour.c +34 -22

56 lines not on this page · raw message

net/core/skbuff.c +30 -2
index 032429230992..594764eab40d 100644

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

net/core/sock.c +15 -1
index 1b64ac35073d..0d5f167e6ce6 100644

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

net/ipv4/esp4.c +6 -0
index 513c8215c947..346e78c23af0 100644

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

net/ipv4/icmp.c +10 -7
index a66e1a7175e9..c59a32160ee6 100644

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

net/ipv4/ip_tunnel_core.c +11 -5
index 011db59ff61f..ee181fe9995f 100644

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

net/ipv4/sysctl_net_ipv4.c +3 -1
index afcbb9d48cfa..34a8a932402d 100644

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

net/ipv4/tcp_input.c +2 -1
index 05521a3509a9..d9b07a3b9390 100644

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

net/ipv4/tcp_ulp.c +4 -0
index 2aa442128630..b58045df101e 100644

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

net/ipv4/xfrm4_input.c +0 -2
index c2eac844bcdb..f6f2a8ef3f88 100644

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

net/ipv6/esp6.c +6 -0
index 57481e423e59..b26b85afb92e 100644

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

net/ipv6/route.c +13 -9
index ddaf51eacc2d..71a38034f5ca 100644

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

net/ipv6/seg6_local.c +3 -0
index 7b5212220185..d1070aec7b72 100644

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

net/ipv6/tcp_ipv6.c +2 -1
index aca71fbb6c29..761cafdc8d2e 100644

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

net/ipv6/xfrm6_input.c +0 -2
index c9e208c57a6b..07edef258984 100644

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

net/ipv6/xfrm6_output.c +8 -2
index 512bdaf13699..44b221a09a0c 100644

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

net/mac80211/Makefile +0 -1
index a33884967f21..85eaf72ba803 100644

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

net/mac80211/cfg.c +47 -16

63 lines not on this page · raw message

net/mac80211/debugfs.c +1 -1
index 687a66cd4943..14ce2ea10593 100644

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

net/mac80211/debugfs_netdev.c +9 -0
index 30a5a978a678..a7045787cb22 100644

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

net/mac80211/ieee80211_i.h +3 -2
index b0e64cf346e2..a942986797fa 100644

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

net/mac80211/iface.c +71 -8

79 lines not on this page · raw message

net/mac80211/main.c +4 -0
index 655a8aec7738..cf1d4a031af3 100644

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

net/mac80211/mesh.c +22 -12
index 4b0eebd5c7cf..a18b8b226001 100644

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

net/mac80211/michael.c deleted +0 -83

83 lines not on this page · raw message

net/mac80211/michael.h deleted +0 -22
deleted file mode 100644
index a7fdb8e84615..000000000000

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

net/mac80211/offchannel.c +7 -0
index ae82533e3c02..0c98bdcd54ab 100644

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

net/mac80211/pm.c +5 -3
index 5a508d99e84f..f63676c44853 100644

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

net/mac80211/scan.c +1 -1
index 1e06a465b49e..1101e98f186d 100644

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

net/mac80211/tdls.c +18 -1
index 1536cd71878c..1dde37ad8bb2 100644

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

net/mac80211/tx.c +68 -39

107 lines not on this page · raw message

net/mac80211/util.c +2 -1
index af99ac02953d..3ed47a8ebf5c 100644

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

net/mac80211/wpa.c +0 -1
index bb0fa505cdca..42bbe64617a1 100644

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

net/netfilter/nf_flow_table_core.c +10 -2
index 7a93e22d049d..2fc2e08aecfb 100644

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

net/netfilter/nf_nat_core.c +30 -16

46 lines not on this page · raw message

net/netfilter/nf_tables_api.c +13 -9
index a3a66b6268cd..321a0dd92178 100644

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

net/netfilter/nft_nat.c +1 -1
index e32cd9fbc7c2..cdbd800cac96 100644

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

net/openvswitch/conntrack.c +1 -1
index 3f51f1968654..89ef350ca91c 100644

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

net/packet/af_packet.c +3 -1
index 772ecfa13cd7..e65f783cc78b 100644

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

net/packet/internal.h +1 -1
index b76e645cd78d..f5c8cd0eed2c 100644

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

net/psp/psp_sock.c +4 -0
index a931d825d1cc..0fcc60c92c32 100644

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

net/rds/ib_cm.c +1 -1
index d9b6c9d2f679..1c6e3b3f39d0 100644

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

net/sched/act_api.c +8 -3
index 46c7d8441381..0914863dbfa2 100644

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

net/sched/sch_hhf.c +5 -4
index 6c5ffc0c4e8d..d6a60ae8938c 100644

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

net/unix/garbage.c +10 -7
index cad17f639b01..11b75d37ac03 100644

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

net/wireless/Makefile +1 -1
index 62a83faf0e07..a77fd5ba6368 100644

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

net/wireless/core.c +75 -51

126 lines not on this page · raw message

net/wireless/core.h +10 -0
index 1086aa1a44f4..d7ac3145fd1a 100644

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

net/wireless/michael-mic.c new file +86 -0

86 lines not on this page · raw message

net/wireless/rdev-ops.h +3 -0
index f4c06282b2e1..bc99458b6ed7 100644

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

net/wireless/scan.c +36 -7

43 lines not on this page · raw message

net/wireless/util.c +26 -9
index 918d8f8468bd..0254cd5f89f1 100644

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

net/xfrm/espintcp.c +5 -1
index fb47c2f73104..26c0a46491a4 100644

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

net/xfrm/xfrm_input.c +42 -23

65 lines not on this page · raw message

net/xfrm/xfrm_iptfs.c +10 -2
index d39253b06c4e..4d3489acb099 100644

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

net/xfrm/xfrm_state.c +7 -2
index f463c7bd5321..f0dd25bdd5d0 100644

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

net/xfrm/xfrm_user.c +17 -20
index 0f0384b6a11d..2560f3653bd3 100644

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

rust/kernel/net/phy.rs +18 -20
index bf6272d87a7b..1d17bf1ae87d 100644

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

scripts/generate_rust_target.rs +5 -0
index 16f7e855e012..0f2c9edce17a 100644

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

security/keys/encrypted-keys/encrypted.c +14 -6
index 513c09e2b01c..babd9171b00d 100644

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

security/keys/gc.c +1 -3
index 748e83818a76..eda445f815d4 100644

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

security/keys/request_key_auth.c +9 -3
index bd34317b58cc..0f385422ddf9 100644

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

security/keys/trusted-keys/trusted_tpm2.c +7 -5
index 74cea80ed9be..aae81332e33d 100644

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

security/landlock/net.c +14 -0
index 7ae97dec0434..9224d9b26429 100644

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

security/selinux/avc.c +4 -1
index 430b0e23ee00..77d8828a8560 100644

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

security/selinux/hooks.c +133 -17

150 lines not on this page · raw message

security/selinux/include/objsec.h +9 -1
index fcb46793898f..bbb04f26b0df 100644

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

sound/core/init.c +2 -1
index bc5182c5ce12..3a45fa6fc515 100644

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

sound/core/pcm_timer.c +5 -2
index ab0e5bd70f8f..18bedd66435d 100644

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

sound/hda/common/controller.c +1 -1
index b1cfd9bd4dcb..98ab47977e31 100644

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

sound/soc/amd/acp/acp-sdw-legacy-mach.c +27 -6
index ac955a9b51dc..53567fdf3e2d 100644

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

sound/soc/amd/acp/acp-sdw-sof-mach.c +25 -6
index 14d6e31d5040..4081cccb9050 100644

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

sound/soc/codecs/hdmi-codec.c +5 -1
index e1933f733af1..df32032e631f 100644

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

sound/soc/codecs/rt712-sdca-dmic.c +5 -9
index 42f8f7b8bed0..bc5b872f1e42 100644

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

sound/soc/intel/boards/sof_sdw.c +17 -4
index ffa6e2ad73f7..e27bfc0196d7 100644

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

sound/soc/sdw_utils/soc_sdw_bridge_cs35l56.c +1 -3
index c7e55f443351..8f189025c20c 100644

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

sound/soc/sdw_utils/soc_sdw_utils.c +40 -19

59 lines not on this page · raw message

sound/soc/soc-pcm.c +13 -5
index 99299364c9ba..b6e35cfe50b7 100644

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

sound/soc/ux500/ux500_msp_i2s.h +2 -2
index 2bf2699bdc49..c66ef455e138 100644

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

sound/usb/6fire/comm.c +28 -14

42 lines not on this page · raw message

sound/usb/6fire/comm.h +1 -1
index 2447d7ecf179..89976f510f6c 100644

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

sound/usb/6fire/midi.c +30 -13

43 lines not on this page · raw message

sound/usb/6fire/midi.h +1 -1
index 47640c845903..8716ab8a863a 100644

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

sound/usb/6fire/pcm.c +84 -54

138 lines not on this page · raw message

sound/usb/6fire/pcm.h +1 -4
index 5a092dfd69f5..b586fe220fd1 100644

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

sound/usb/bcd2000/bcd2000.c +26 -7
index c5c542d17ccc..2bd49bf82748 100644

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

sound/usb/card.h +2 -1
index 94404c24d240..8299ac241c60 100644

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

sound/usb/endpoint.c +9 -7
index bdf0e724d418..b0202ae44b96 100644

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

sound/virtio/virtio_card.c +2 -2
index 52c5757585c6..a3e69a460b85 100644

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

tools/perf/util/hist.h +2 -6
index a4f244a04686..c64005278687 100644

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

tools/testing/selftests/arm64/mte/check_gcr_el1_cswitch.c +1 -1
index d23f154d3288..5d9dc8bcfbf5 100644

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

tools/testing/selftests/landlock/audit.h +87 -34

121 lines not on this page · raw message

tools/testing/selftests/landlock/audit_test.c +1 -3
index 67ab175ef5e3..dcf63b2f822e 100644

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

tools/testing/selftests/landlock/fs_test.c +1775 -99

1,874 lines not on this page · raw message

tools/testing/selftests/landlock/net_test.c +168 -1

169 lines not on this page · 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.