Skip to contentSkip to conversation

Linux 6.3.10

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Jun 28, 2023 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 6.3.10 kernel.

All users of the 6.3 kernel series must upgrade.

The updated 6.3.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.3.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

------------

 Makefile                                                       |    2 
 arch/arm/boot/dts/am57xx-cl-som-am57x.dts                      |    2 
 arch/arm/boot/dts/at91sam9261ek.dts                            |    2 
 arch/arm/boot/dts/imx7d-pico-hobbit.dts                        |    2 
 arch/arm/boot/dts/imx7d-sdb.dts                                |    2 
 arch/arm/boot/dts/omap3-cm-t3x.dtsi                            |    2 
 arch/arm/boot/dts/omap3-devkit8000-lcd-common.dtsi             |    2 
 arch/arm/boot/dts/omap3-lilly-a83x.dtsi                        |    2 
 arch/arm/boot/dts/omap3-overo-common-lcd35.dtsi                |    2 
 arch/arm/boot/dts/omap3-overo-common-lcd43.dtsi                |    2 
 arch/arm/boot/dts/omap3-pandora-common.dtsi                    |    2 
 arch/arm/boot/dts/omap5-cm-t54.dts                             |    2 
 arch/arm64/boot/dts/qcom/sc7280-idp.dtsi                       |    2 
 arch/arm64/boot/dts/qcom/sc7280-qcard.dtsi                     |    2 
 arch/arm64/boot/dts/rockchip/rk3566-soquartz-cm4.dts           |   18 
 arch/arm64/boot/dts/rockchip/rk3566-soquartz.dtsi              |   29 
 arch/arm64/boot/dts/rockchip/rk3568.dtsi                       |   14 
 arch/arm64/boot/dts/rockchip/rk356x.dtsi                       |    7 
 arch/arm64/include/asm/sysreg.h                                |    6 
 arch/arm64/kvm/hyp/include/hyp/switch.h                        |   13 
 arch/arm64/kvm/vgic/vgic-init.c                                |   11 
 arch/riscv/Makefile                                            |    2 
 arch/s390/purgatory/Makefile                                   |    1 
 arch/x86/Makefile                                              |   12 
 arch/x86/include/asm/Kbuild                                    |    1 
 arch/x86/include/asm/orc_header.h                              |   19 
 arch/x86/kernel/apic/x2apic_phys.c                             |    5 
 arch/x86/kernel/unwind_orc.c                                   |    3 
 arch/x86/mm/kaslr.c                                            |    8 
 arch/x86/net/bpf_jit_comp.c                                    |    2 
 block/blk-cgroup.c                                             |    5 
 drivers/acpi/acpica/achware.h                                  |    2 
 drivers/acpi/sleep.c                                           |   16 
 drivers/ata/libata-core.c                                      |    3 
 drivers/ata/libata-eh.c                                        |    2 
 drivers/ata/libata-scsi.c                                      |   22 
 drivers/base/regmap/regmap-spi-avmm.c                          |    2 
 drivers/block/null_blk/main.c                                  |    1 
 drivers/block/virtio_blk.c                                     |   82 -
 drivers/char/tpm/tpm_tis_core.c                                |    2 
 drivers/dma-buf/udmabuf.c                                      |   47 
 drivers/firmware/efi/efi.c                                     |   21 
 drivers/gpio/gpio-sifive.c                                     |    8 
 drivers/gpio/gpiolib.c                                         |   11 
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c              |   73 -
 drivers/gpu/drm/exynos/exynos_drm_g2d.c                        |    2 
 drivers/gpu/drm/exynos/exynos_drm_vidi.c                       |    2 
 drivers/gpu/drm/radeon/radeon_gem.c                            |    4 
 drivers/hid/wacom_sys.c                                        |    7 
 drivers/hv/channel_mgmt.c                                      |   18 
 drivers/hv/vmbus_drv.c                                         |    5 
 drivers/i2c/busses/i2c-designware-core.h                       |    1 
 drivers/i2c/busses/i2c-designware-slave.c                      |    4 
 drivers/i2c/busses/i2c-imx-lpi2c.c                             |    4 
 drivers/i2c/busses/i2c-mchp-pci1xxxx.c                         |    6 
 drivers/input/misc/soc_button_array.c                          |   30 
 drivers/iommu/amd/iommu.c                                      |    8 
 drivers/media/cec/core/cec-adap.c                              |    8 
 drivers/media/cec/core/cec-core.c                              |    2 
 drivers/media/cec/core/cec-priv.h                              |    1 
 drivers/mmc/host/bcm2835.c                                     |    4 
 drivers/mmc/host/litex_mmc.c                                   |    1 
 drivers/mmc/host/meson-gx-mmc.c                                |   14 
 drivers/mmc/host/mmci.c                                        |    3 
 drivers/mmc/host/mtk-sd.c                                      |    2 
 drivers/mmc/host/mvsdio.c                                      |    2 
 drivers/mmc/host/omap.c                                        |    2 
 drivers/mmc/host/omap_hsmmc.c                                  |    6 
 drivers/mmc/host/owl-mmc.c                                     |    2 
 drivers/mmc/host/sdhci-acpi.c                                  |    2 
 drivers/mmc/host/sdhci-msm.c                                   |    3 
 drivers/mmc/host/sdhci-spear.c                                 |    4 
 drivers/mmc/host/sh_mmcif.c                                    |    2 
 drivers/mmc/host/sunxi-mmc.c                                   |    4 
 drivers/mmc/host/usdhi6rol0.c                                  |    6 
 drivers/net/dsa/mt7530.c                                       |   35 
 drivers/net/dsa/mt7530.h                                       |    5 
 drivers/net/ethernet/emulex/benet/be_main.c                    |    4 
 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_action.c   |    9 
 drivers/net/ethernet/qualcomm/qca_spi.c                        |    3 
 drivers/net/ethernet/sfc/ef10.c                                |   25 
 drivers/net/ethernet/sfc/ef100_nic.c                           |    7 
 drivers/net/ethernet/sfc/ef100_tx.c                            |    4 
 drivers/net/ethernet/sfc/ef100_tx.h                            |    2 
 drivers/net/ethernet/sfc/tx_common.c                           |    4 
 drivers/net/ethernet/sfc/tx_common.h                           |    2 
 drivers/net/ieee802154/mac802154_hwsim.c                       |    6 
 drivers/net/phy/dp83867.c                                      |    2 
 drivers/net/phy/mdio_bus.c                                     |    2 
 drivers/net/wireless/intel/iwlwifi/pcie/drv.c                  |    2 
 drivers/nfc/nfcsim.c                                           |    4 
 drivers/nvme/host/core.c                                       |   52 
 drivers/nvme/host/ioctl.c                                      |    2 
 drivers/nvme/host/nvme.h                                       |    3 
 drivers/nvme/target/passthru.c                                 |    2 
 drivers/pci/controller/pci-hyperv.c                            |  139 +-
 drivers/platform/x86/amd/pmf/core.c                            |   10 
 drivers/platform/x86/intel/int3472/clk_and_regulator.c         |   13 
 drivers/s390/cio/device.c                                      |    5 
 drivers/soundwire/dmi-quirks.c                                 |    7 
 drivers/soundwire/qcom.c                                       |   17 
 drivers/spi/spi-fsl-lpspi.c                                    |    7 
 drivers/spi/spi-geni-qcom.c                                    |    2 
 drivers/target/iscsi/iscsi_target.c                            |    2 
 drivers/target/iscsi/iscsi_target_login.c                      |   63 -
 drivers/target/iscsi/iscsi_target_nego.c                       |   74 -
 drivers/target/iscsi/iscsi_target_util.c                       |   51 
 drivers/target/iscsi/iscsi_target_util.h                       |    4 
 drivers/thermal/intel/intel_soc_dts_iosf.c                     |    2 
 drivers/usb/gadget/udc/amd5536udc_pci.c                        |    3 
 drivers/vhost/net.c                                            |   11 
 drivers/vhost/vdpa.c                                           |   13 
 fs/afs/write.c                                                 |    7 
 fs/btrfs/tree-log.c                                            |    2 
 fs/cifs/connect.c                                              |    9 
 fs/cifs/dfs.c                                                  |    9 
 fs/cifs/smb2pdu.c                                              |    2 
 fs/gfs2/file.c                                                 |   17 
 fs/internal.h                                                  |    2 
 fs/ksmbd/server.c                                              |   33 
 fs/ksmbd/smb2misc.c                                            |   33 
 fs/ksmbd/smb2pdu.c                                             |  223 +---
 fs/ksmbd/smbacl.c                                              |   10 
 fs/ksmbd/vfs.c                                                 |  557 +++++-----
 fs/ksmbd/vfs.h                                                 |   36 
 fs/ksmbd/vfs_cache.c                                           |    7 
 fs/namei.c                                                     |  125 +-
 fs/nilfs2/page.c                                               |   10 
 fs/nilfs2/segbuf.c                                             |    6 
 fs/nilfs2/segment.c                                            |    7 
 fs/nilfs2/super.c                                              |   23 
 include/acpi/acpixf.h                                          |    1 
 include/asm-generic/vmlinux.lds.h                              |    3 
 include/linux/gpio/driver.h                                    |    8 
 include/linux/libata.h                                         |    2 
 include/linux/namei.h                                          |    9 
 include/linux/regulator/pca9450.h                              |    4 
 include/net/dsa.h                                              |    8 
 include/net/netfilter/nf_tables.h                              |   31 
 include/net/xfrm.h                                             |    1 
 include/target/iscsi/iscsi_target_core.h                       |    7 
 include/trace/events/writeback.h                               |    2 
 io_uring/net.c                                                 |   17 
 io_uring/poll.c                                                |    9 
 kernel/bpf/btf.c                                               |   20 
 kernel/bpf/syscall.c                                           |    5 
 kernel/bpf/verifier.c                                          |   10 
 kernel/cgroup/cgroup.c                                         |   20 
 kernel/cgroup/legacy_freezer.c                                 |    8 
 kernel/time/tick-common.c                                      |   13 
 kernel/time/tick-sched.c                                       |   13 
 mm/maccess.c                                                   |   16 
 mm/memfd.c                                                     |    9 
 mm/mprotect.c                                                  |    2 
 mm/usercopy.c                                                  |    2 
 mm/vmalloc.c                                                   |   17 
 net/core/sock.c                                                |    6 
 net/dsa/dsa.c                                                  |   24 
 net/ipv4/esp4_offload.c                                        |    3 
 net/ipv4/xfrm4_input.c                                         |    1 
 net/ipv6/esp6_offload.c                                        |    3 
 net/ipv6/xfrm6_input.c                                         |    3 
 net/mptcp/pm_netlink.c                                         |    1 
 net/mptcp/protocol.c                                           |  111 +
 net/mptcp/subflow.c                                            |   17 
 net/netfilter/ipvs/ip_vs_xmit.c                                |    2 
 net/netfilter/nf_tables_api.c                                  |  330 ++++-
 net/netfilter/nfnetlink_osf.c                                  |    1 
 net/netfilter/nft_immediate.c                                  |   90 +
 net/netfilter/nft_set_bitmap.c                                 |    5 
 net/netfilter/nft_set_hash.c                                   |   23 
 net/netfilter/nft_set_pipapo.c                                 |   20 
 net/netfilter/nft_set_rbtree.c                                 |    5 
 net/netfilter/xt_osf.c                                         |    1 
 net/sched/sch_api.c                                            |    2 
 net/sched/sch_netem.c                                          |    8 
 net/xfrm/xfrm_input.c                                          |    1 
 net/xfrm/xfrm_interface_core.c                                 |   54 
 net/xfrm/xfrm_policy.c                                         |   14 
 scripts/gfp-translate                                          |    6 
 scripts/mod/modpost.c                                          |    5 
 scripts/orc_hash.sh                                            |   16 
 sound/pci/hda/patch_realtek.c                                  |    2 
 sound/soc/amd/yc/acp6x-mach.c                                  |    7 
 sound/soc/codecs/nau8824.c                                     |   24 
 sound/soc/codecs/wcd938x-sdw.c                                 |    1 
 sound/soc/fsl/fsl_sai.c                                        |   11 
 sound/soc/fsl/fsl_sai.h                                        |    1 
 sound/soc/generic/simple-card.c                                |    1 
 tools/testing/selftests/net/fcnal-test.sh                      |   27 
 tools/testing/selftests/net/forwarding/mirror_gre_bridge_1d.sh |    4 
 tools/testing/selftests/net/forwarding/mirror_gre_bridge_1q.sh |    4 
 tools/testing/selftests/net/mptcp/config                       |    1 
 tools/testing/selftests/net/mptcp/diag.sh                      |   42 
 tools/testing/selftests/net/mptcp/mptcp_connect.c              |    8 
 tools/testing/selftests/net/mptcp/mptcp_connect.sh             |   20 
 tools/testing/selftests/net/mptcp/mptcp_join.sh                |  523 ++++++---
 tools/testing/selftests/net/mptcp/mptcp_lib.sh                 |   64 +
 tools/testing/selftests/net/mptcp/mptcp_sockopt.c              |   18 
 tools/testing/selftests/net/mptcp/mptcp_sockopt.sh             |   20 
 tools/testing/selftests/net/mptcp/pm_netlink.sh                |   27 
 tools/testing/selftests/net/mptcp/userspace_pm.sh              |   13 
 tools/testing/selftests/net/tls.c                              |   24 
 tools/testing/selftests/net/vrf-xfrm-tests.sh                  |   32 
 tools/virtio/ringtest/main.h                                   |   11 
 virt/kvm/kvm_main.c                                            |   20 
 206 files changed, 2801 insertions(+), 1444 deletions(-)

Al Viro (1):
fs: introduce lock_rename_child() helper

Alexander Gordeev (1):
s390/purgatory: disable branch profiling

Alexei Starovoitov (1):
mm: Fix copy_from_user_nofault().

Andreas Gruenbacher (1):
gfs2: Don't get stuck writing page onto itself under direct I/O

Andrew Powers-Holmes (1):
arm64: dts: rockchip: Fix rk356x PCIe register and range mappings

Andrey Smetanin (1):
vhost_net: revert upend_idx only on retriable error

Arınç ÜNAL (3):
net: dsa: mt7530: fix trapping frames on non-MT7621 SoC MT7530 switch
net: dsa: mt7530: fix handling of BPDUs on MT7530 switch
net: dsa: mt7530: fix handling of LLDP frames

Benedict Wong (2):
xfrm: Treat already-verified secpath entries as optional
xfrm: Ensure policies always checked on XFRM-I input path

Chancel Liu (1):
ASoC: fsl_sai: Enable BCI bit if SAI works on synchronous mode with BYP asserted

Chen Aotian (1):
ieee802154: hwsim: Fix possible memory leaks

Christophe Kerello (1):
mmc: mmci: stm32: fix max busy timeout calculation

Clark Wang (2):
spi: lpspi: disable lpspi module irq in DMA mode
i2c: imx-lpi2c: fix type char overflow issue when calculating the clock cycle

Damien Le Moal (1):
ata: libata-scsi: Avoid deadlock on rescan after device resume

Dan Carpenter (1):
usb: gadget: udc: fix NULL dereference in remove()

Danielle Ratson (1):
selftests: forwarding: Fix race condition in mirror installation

David Zheng (1):
i2c: designware: fix idx_write_cnt in read loop

Denis Arefev (1):
HID: wacom: Add error check to wacom_parse_and_register()

Dexuan Cui (6):
Drivers: hv: vmbus: Call hv_synic_free() if hv_synic_alloc() fails
PCI: hv: Fix a race condition bug in hv_pci_query_relations() Revert "PCI: hv: Fix a timing issue which causes kdump to fail occasionally"
PCI: hv: Remove the useless hv_pcichild_state from struct hv_pci_dev
PCI: hv: Fix a race condition in hv_irq_unmask() that can cause panic
PCI: hv: Add a per-bus mutex state_lock

Dheeraj Kumar Srivastava (1):
x86/apic: Fix kernel panic when booting with intremap=off and x2apic_phys

Edson Juliano Drosdeck (1):
ASoC: nau8824: Add quirk to active-high jack-detect

Eric Dumazet (1):
sch_netem: acquire qdisc lock in netem_change()

Florent Revest (1):
bpf/btf: Accept function names that contain dots

Francesco Dolcini (1):
Revert "net: phy: dp83867: perform soft reset and retain established link"

Gavin Shan (1):
KVM: Avoid illegal stage2 mapping on invalid memory slot

Greg Kroah-Hartman (1):

      Linux 6.3.10

Hans Verkuil (2):
media: cec: core: disable adapter in cec_devnode_unregister
media: cec: core: don't set last_initiator if tx in progress

Hans de Goede (2):
thermal/intel/intel_soc_dts_iosf: Fix reporting wrong temperatures
Input: soc_button_array - add invalid acpi_index DMI quirk handling

Hao Yao (1):
platform/x86: int3472: Avoid crash in unregistering regulator gpio

Herve Codina (1):
ASoC: simple-card: Add missing of_node_put() in case of error

Inki Dae (1):
drm/exynos: vidi: fix a wrong error return

Jens Axboe (4):
io_uring/net: clear msg_controllen on partial sendmsg retry io_uring/net: disable partial retries for recvmsg with cmsg io_uring/poll: serialize poll linked timer start with poll removal io_uring/net: use the correct msghdr union member in io_sendmsg_copy_hdr

Jiasheng Jiang (1):
gpio: sifive: add missing check for platform_get_irq

Jiawen Wu (2):
net: mdio: fix the wrong parameters
gpiolib: Fix GPIO chip IRQ initialization restriction

Jiri Olsa (1):
bpf: Force kprobe multi expected_attach_type for kprobe_multi link

Jisheng Zhang (1):
mmc: litex_mmc: set PROBE_PREFER_ASYNCHRONOUS

Krister Johansen (1):
bpf: ensure main program has an extable

Krzysztof Kozlowski (3):
arm64: dts: qcom: sc7280-idp: drop incorrect dai-cells from WCD938x SDW
arm64: dts: qcom: sc7280-qcard: drop incorrect dai-cells from WCD938x SDW
soundwire: qcom: add proper error paths in qcom_swrm_startup()

Lee Jones (1):
x86/mm: Avoid using set_pgd() outside of real PGD pages

Leon Romanovsky (1):
xfrm: add missed call to delete offloaded policies

Liam R. Howlett (1):
mm/mprotect: fix do_mprotect_pkey() limit check

Lino Sanfilippo (1):
tpm, tpm_tis: Claim locality in interrupt handler

Linus Torvalds (1):
Revert "efi: random: refresh non-volatile random seed when RNG is initialized"

Linus Walleij (1):
ARM: dts: Fix erroneous ADS touchscreen polarities

Lorenzo Stoakes (1):
mm/vmalloc: do not output a spurious warning when huge vmalloc() fails

Maciej Żenczykowski (2):
xfrm: fix inbound ipv4/udp/esp packets to UDPv6 dualstack sockets revert "net: align SO_RCVMARK required privileges with SO_MARK"

Magali Lemes (3):
selftests: net: tls: check if FIPS mode is enabled
selftests: net: vrf-xfrm-tests: change authentication and encryption algos
selftests: net: fcnal-test: check if FIPS mode is enabled

Marc Zyngier (2):
arm64: Add missing Set/Way CMO encodings
KVM: arm64: Restore GICv2-on-GICv3 functionality

Martin Hundebøll (1):
mmc: meson-gx: remove redundant mmc_request_done() call from irq context

Matthieu Baerts (33):
selftests: mptcp: remove duplicated entries in usage
selftests: mptcp: join: fix ShellCheck warnings
selftests: mptcp: lib: skip if missing symbol
selftests: mptcp: connect: skip transp tests if not supported
selftests: mptcp: connect: skip disconnect tests if not supported
selftests: mptcp: connect: skip TFO tests if not supported
selftests: mptcp: diag: skip listen tests if not supported
selftests: mptcp: diag: skip inuse tests if not supported
selftests: mptcp: pm nl: remove hardcoded default limits
selftests: mptcp: pm nl: skip fullmesh flag checks if not supported
selftests: mptcp: sockopt: relax expected returned size
selftests: mptcp: sockopt: skip getsockopt checks if not supported
selftests: mptcp: sockopt: skip TCP_INQ checks if not supported
selftests: mptcp: userspace pm: skip if 'ip' tool is unavailable
selftests: mptcp: userspace pm: skip if not supported
selftests: mptcp: userspace pm: skip PM listener events tests if unavailable
selftests: mptcp: lib: skip if not below kernel version
selftests: mptcp: join: use 'iptables-legacy' if available
selftests: mptcp: join: helpers to skip tests
selftests: mptcp: join: skip check if MIB counter not supported
selftests: mptcp: join: skip test if iptables/tc cmds fail
selftests: mptcp: join: support local endpoint being tracked or not
selftests: mptcp: join: skip Fastclose tests if not supported
selftests: mptcp: join: support RM_ADDR for used endpoints or not
selftests: mptcp: join: skip implicit tests if not supported
selftests: mptcp: join: skip backup if set flag on ID not supported
selftests: mptcp: join: skip fullmesh flag tests if not supported
selftests: mptcp: join: skip userspace PM tests if not supported
selftests: mptcp: join: skip fail tests if not supported
selftests: mptcp: join: skip MPC backups tests if not supported
selftests: mptcp: join: skip PM listener tests if not supported
selftests: mptcp: join: uniform listener tests
selftests: mptcp: join: skip mixed tests if not supported

Maurizio Lombardi (3):
scsi: target: iscsi: Fix hang in the iSCSI login code
scsi: target: iscsi: Remove unused transport_timer
scsi: target: iscsi: Prevent login threads from racing between each other

Maxim Mikityanskiy (1):
bpf: Fix verifier id tracking of scalars on spill

Michael Kelley (1):
Drivers: hv: vmbus: Fix vmbus_wait_for_unload() to scan present CPUs

Michael S. Tsirkin (1):
Revert "virtio-blk: support completion batching for the IRQ path"

Michael Walle (1):
gpiolib: Fix irq_domain resource tracking for gpiochip_irqchip_add_domain()

Mike Kravetz (1):
udmabuf: revert 'Add support for mapping hugepages (v4)'

Min Li (2):
drm/exynos: fix race condition UAF in exynos_g2d_exec_ioctl drm/radeon: fix race condition UAF in radeon_gem_set_domain_ioctl

Min-Hua Chen (1):
net: sched: wrap tc_skip_wrapper with CONFIG_RETPOLINE

Ming Lei (1):
block: make sure local irq is disabled when calling __blkcg_rstat_flush

Mukesh Sisodiya (1):

      wifi: iwlwifi: pcie: Handle SO-F device for PCI id 0x7AF0

Namjae Jeon (9):
ksmbd: validate command payload size
ksmbd: fix out-of-bound read in smb2_write
ksmbd: validate session id and tree id in the compound request
ksmbd: remove internal.h include
ksmbd: fix racy issue from using ->d_parent and ->d_name
ksmbd: add mnt_want_write to ksmbd vfs functions
ksmbd: fix uninitialized pointer read in ksmbd_vfs_rename()
ksmbd: fix uninitialized pointer read in smb2_create_link()
ksmbd: call putname after using the last component

Nathan Chancellor (1):
riscv: Link with '-z norelro'

Neil Armstrong (1):
spi: spi-geni-qcom: correctly handle -EPROBE_DEFER from dma_request_chan()

Nicolas Frattaroli (1):
arm64: dts: rockchip: fix nEXTRST on SOQuartz

Nitesh Shetty (1):
null_blk: Fix: memory release when memory_backed=1

Omar Sandoval (1):
x86/unwind/orc: Add ELF section with ORC version identifier

Osama Muhammad (1):
nfcsim.c: Fix error checking for debugfs_create_dir

Pablo Neira Ayuso (10):
netfilter: nf_tables: fix chain binding transaction logic
netfilter: nf_tables: add NFT_TRANS_PREPARE_ERROR to deal with bound set/chain
netfilter: nf_tables: drop map element references from preparation phase
netfilter: nft_set_pipapo: .walk does not deal with generations
netfilter: nf_tables: disallow element updates of bound anonymous sets
netfilter: nf_tables: reject unbound anonymous set before commit phase
netfilter: nf_tables: reject unbound chain set before commit phase
netfilter: nf_tables: disallow updates of anonymous sets
netfilter: nfnetlink_osf: fix module autoload
netfilter: nf_tables: drop module reference after updating chain

Paolo Abeni (5):
mptcp: handle correctly disconnect() failures
mptcp: fix possible divide by zero in recvmsg()
mptcp: fix possible list corruption on passive MPJ
mptcp: consolidate fallback and non fallback state machine
mptcp: ensure listener is unhashed before updating the sk status

Pierre-Louis Bossart (1):
soundwire: dmi-quirks: add new mapping for HP Spectre x360

Prathu Baronia (1):
scripts: fix the gfp flags header path in gfp-translate

Rafael Aquini (1):

      writeback: fix dereferencing NULL mapping->host on writeback_page_template

Rafael J. Wysocki (1):
ACPI: sleep: Avoid breaking S3 wakeup due to might_sleep()

Reiji Watanabe (1):
KVM: arm64: PMU: Restore the host's PMUSERENR_EL0

Roberto Sassu (1):
memfd: check for non-NULL file_seals in memfd_create() syscall

Rodrigo Siqueira (2):
drm/amd/display: Use dc_update_planes_and_stream drm/amd/display: Add wrapper to call planes and stream update

Rong Tao (1):
tools/virtio: Fix arm64 ringtest compilation error

Ross Lagerwall (1):
be2net: Extend xmit workaround to BE3 chip

Russ Weight (1):
regmap: spi-avmm: Fix regmap_bus max_raw_write

Ryusuke Konishi (2):
nilfs2: fix buffer corruption due to concurrent device reads
nilfs2: prevent general protection fault in nilfs_clear_dirty_page()

Sayed, Karimuddin (1):
ALSA: hda/realtek: Add "Intel Reference board" and "NUC 13" SSID in the ALC256

Sebastian Andrzej Siewior (1):
xfrm: Linearize the skb after offloading if needed.

Sergey Shtylyov (12):
mmc: sdhci-spear: fix deferred probing
mmc: bcm2835: fix deferred probing
mmc: sunxi: fix deferred probing
mmc: meson-gx: fix deferred probing
mmc: mtk-sd: fix deferred probing
mmc: mvsdio: fix deferred probing
mmc: omap: fix deferred probing
mmc: omap_hsmmc: fix deferred probing
mmc: owl: fix deferred probing
mmc: sdhci-acpi: fix deferred probing
mmc: sh_mmcif: fix deferred probing
mmc: usdhi60rol0: fix deferred probing

Shannon Nelson (1):
vhost_vdpa: tell vqs about the negotiated

Shida Zhang (1):
btrfs: fix an uninitialized variable warning in btrfs_log_inode

Shyam Prasad N (1):
cifs: fix status checks in cifs_tree_connect

Shyam Sundar S K (1):
platform/x86/amd/pmf: Register notify handler only if SPS is enabled

Sicong Jiang (1):
ASoC: amd: yc: Add Thinkpad Neo14 to quirks list for acp6x

Simon Horman (1):
i2c: mchp-pci1xxxx: Avoid cast to incompatible function type

Srinivas Kandagatla (1):
ASoC: codecs: wcd938x-sdw: do not set can_multi_write flag

Stefan Wahren (1):
net: qca_spi: Avoid high load if QCA7000 is not available

Stephan Gerhold (1):
mmc: sdhci-msm: Disable broken 64-bit DMA on MSM8916

Steve French (1):
smb3: missing null check in SMB2_change_notify

Su Hui (1):
iommu/amd: Fix possible memory leak of 'domain'

Teresa Remmet (1):
regulator: pca9450: Fix LDO3OUT and LDO4OUT MASK

Terin Stock (1):
ipvs: align inner_mac_header for encapsulation

Tetsuo Handa (1):
cgroup,freezer: hold cpu_hotplug_lock before freezer_mutex in freezer_css_{online,offline}()

Thomas Gleixner (1):
tick/common: Align tick period during sched_timer setup

Tom Chung (1):
drm/amd/display: fix the system hang while disable PSR

Uday Shankar (3):
nvme: double KA polling frequency to avoid KATO with TBKAS on
nvme: check IO start time when deciding to defer KA
nvme: improve handling of long keep alives

Vineeth Vijayan (1):
s390/cio: unregister device when the only path is gone

Vishal Moola (Oracle) (2):
afs: Fix dangling folio ref counts in writeback
afs: Fix waiting for writeback then skipping folio

Vladimir Oltean (1):
net: dsa: introduce preferred_default_local_cpu_port and use on MT7530

Xiu Jianfeng (1):
cgroup: Do not corrupt task iteration when rebinding subsystem

Yevgeny Kliteynik (1):
net/mlx5: DR, Fix wrong action data allocation in decap action

Yonghong Song (1):
bpf: Fix a bpf_jit_dump issue for x86_64 with sysctl bpf_jit_enable.

min15.li (1):
nvme: fix miss command type check

Íñigo Huguet (1):
sfc: use budget for TX completions

author maintainer
#1 lore raw
Makefile +1 -1
index f8ee72375885..47253ac6c85c 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 6
 PATCHLEVEL = 3
-SUBLEVEL = 9
+SUBLEVEL = 10
 EXTRAVERSION =
 NAME = Hurr durr I'ma ninja sloth
 
arch/arm/boot/dts/am57xx-cl-som-am57x.dts +1 -1
index 2fc9a5d5e0c0..625b9b311b49 100644
@@ -527,7 +527,7 @@ touchscreen@1 {
 
 		interrupt-parent = <&gpio1>;
 		interrupts = <31 0>;
-		pendown-gpio = <&gpio1 31 0>;
+		pendown-gpio = <&gpio1 31 GPIO_ACTIVE_LOW>;
 
 
 		ti,x-min = /bits/ 16 <0x0>;
arch/arm/boot/dts/at91sam9261ek.dts +1 -1
index 88869ca874d1..045cb253f23a 100644
@@ -156,7 +156,7 @@ tsc2046@2 {
 					compatible = "ti,ads7843";
 					interrupts-extended = <&pioC 2 IRQ_TYPE_EDGE_BOTH>;
 					spi-max-frequency = <3000000>;
-					pendown-gpio = <&pioC 2 GPIO_ACTIVE_HIGH>;
+					pendown-gpio = <&pioC 2 GPIO_ACTIVE_LOW>;
 
 					ti,x-min = /bits/ 16 <150>;
 					ti,x-max = /bits/ 16 <3830>;
arch/arm/boot/dts/imx7d-pico-hobbit.dts +1 -1
index d917dc4f2f22..6ad39dca7009 100644
@@ -64,7 +64,7 @@ ads7846@0 {
 		interrupt-parent = <&gpio2>;
 		interrupts = <7 0>;
 		spi-max-frequency = <1000000>;
-		pendown-gpio = <&gpio2 7 0>;
+		pendown-gpio = <&gpio2 7 GPIO_ACTIVE_LOW>;
 		vcc-supply = <&reg_3p3v>;
 		ti,x-min = /bits/ 16 <0>;
 		ti,x-max = /bits/ 16 <4095>;
arch/arm/boot/dts/imx7d-sdb.dts +1 -1
index f483bc0afe5e..234e5fc647b2 100644
@@ -205,7 +205,7 @@ tsc2046@0 {
 		pinctrl-0 = <&pinctrl_tsc2046_pendown>;
 		interrupt-parent = <&gpio2>;
 		interrupts = <29 0>;
-		pendown-gpio = <&gpio2 29 GPIO_ACTIVE_HIGH>;
+		pendown-gpio = <&gpio2 29 GPIO_ACTIVE_LOW>;
 		touchscreen-max-pressure = <255>;
 		wakeup-source;
 	};
arch/arm/boot/dts/omap3-cm-t3x.dtsi +1 -1
index e61b8a2bfb7d..51baedf1603b 100644
@@ -227,7 +227,7 @@ ads7846@0 {
 
 		interrupt-parent = <&gpio2>;
 		interrupts = <25 0>;		/* gpio_57 */
-		pendown-gpio = <&gpio2 25 GPIO_ACTIVE_HIGH>;
+		pendown-gpio = <&gpio2 25 GPIO_ACTIVE_LOW>;
 
 		ti,x-min = /bits/ 16 <0x0>;
 		ti,x-max = /bits/ 16 <0x0fff>;
arch/arm/boot/dts/omap3-devkit8000-lcd-common.dtsi +1 -1
index 3decc2d78a6c..a7f99ae0c1fe 100644
@@ -54,7 +54,7 @@ ads7846@0 {
 
 		interrupt-parent = <&gpio1>;
 		interrupts = <27 0>;		/* gpio_27 */
-		pendown-gpio = <&gpio1 27 GPIO_ACTIVE_HIGH>;
+		pendown-gpio = <&gpio1 27 GPIO_ACTIVE_LOW>;
 
 		ti,x-min = /bits/ 16 <0x0>;
 		ti,x-max = /bits/ 16 <0x0fff>;
arch/arm/boot/dts/omap3-lilly-a83x.dtsi +1 -1
index c595afe4181d..d310b5c7bac3 100644
@@ -311,7 +311,7 @@ tsc2046@0 {
 		interrupt-parent = <&gpio1>;
 		interrupts = <8 0>;   /* boot6 / gpio_8 */
 		spi-max-frequency = <1000000>;
-		pendown-gpio = <&gpio1 8 GPIO_ACTIVE_HIGH>;
+		pendown-gpio = <&gpio1 8 GPIO_ACTIVE_LOW>;
 		vcc-supply = <&reg_vcc3>;
 		pinctrl-names = "default";
 		pinctrl-0 = <&tsc2048_pins>;
arch/arm/boot/dts/omap3-overo-common-lcd35.dtsi +1 -1
index 1d6e88f99eb3..c3570acc35fa 100644
@@ -149,7 +149,7 @@ ads7846@0 {
 
 		interrupt-parent = <&gpio4>;
 		interrupts = <18 0>;			/* gpio_114 */
-		pendown-gpio = <&gpio4 18 GPIO_ACTIVE_HIGH>;
+		pendown-gpio = <&gpio4 18 GPIO_ACTIVE_LOW>;
 
 		ti,x-min = /bits/ 16 <0x0>;
 		ti,x-max = /bits/ 16 <0x0fff>;
arch/arm/boot/dts/omap3-overo-common-lcd43.dtsi +1 -1
index 7e30f9d45790..d95a0e130058 100644
@@ -160,7 +160,7 @@ ads7846@0 {
 
 		interrupt-parent = <&gpio4>;
 		interrupts = <18 0>;			/* gpio_114 */
-		pendown-gpio = <&gpio4 18 GPIO_ACTIVE_HIGH>;
+		pendown-gpio = <&gpio4 18 GPIO_ACTIVE_LOW>;
 
 		ti,x-min = /bits/ 16 <0x0>;
 		ti,x-max = /bits/ 16 <0x0fff>;
arch/arm/boot/dts/omap3-pandora-common.dtsi +1 -1
index 559853764487..4c3b6bab179c 100644
@@ -651,7 +651,7 @@ tsc2046@0 {
 		pinctrl-0 = <&penirq_pins>;
 		interrupt-parent = <&gpio3>;
 		interrupts = <30 IRQ_TYPE_NONE>;	/* GPIO_94 */
-		pendown-gpio = <&gpio3 30 GPIO_ACTIVE_HIGH>;
+		pendown-gpio = <&gpio3 30 GPIO_ACTIVE_LOW>;
 		vcc-supply = <&vaux4>;
 
 		ti,x-min = /bits/ 16 <0>;
arch/arm/boot/dts/omap5-cm-t54.dts +1 -1
index 2d87b9fc230e..af288d63a26a 100644
@@ -354,7 +354,7 @@ ads7846@0 {
 
 		interrupt-parent = <&gpio1>;
 		interrupts = <15 0>;			/* gpio1_wk15 */
-		pendown-gpio = <&gpio1 15 GPIO_ACTIVE_HIGH>;
+		pendown-gpio = <&gpio1 15 GPIO_ACTIVE_LOW>;
 
 
 		ti,x-min = /bits/ 16 <0x0>;
arch/arm64/boot/dts/qcom/sc7280-idp.dtsi +0 -2
index 8b5293e7fd2a..a0e767ff252c 100644
@@ -480,7 +480,6 @@ &swr0 {
 	wcd_rx: codec@0,4 {
 		compatible = "sdw20217010d00";
 		reg = <0 4>;
-		#sound-dai-cells = <1>;
 		qcom,rx-port-mapping = <1 2 3 4 5>;
 	};
 };
@@ -491,7 +490,6 @@ &swr1 {
 	wcd_tx: codec@0,3 {
 		compatible = "sdw20217010d00";
 		reg = <0 3>;
-		#sound-dai-cells = <1>;
 		qcom,tx-port-mapping = <1 2 3 4>;
 	};
 };
arch/arm64/boot/dts/qcom/sc7280-qcard.dtsi +0 -2
index 88204f794ccb..1080d701d45a 100644
@@ -419,7 +419,6 @@ &swr0 {
 	wcd_rx: codec@0,4 {
 		compatible = "sdw20217010d00";
 		reg = <0 4>;
-		#sound-dai-cells = <1>;
 		qcom,rx-port-mapping = <1 2 3 4 5>;
 	};
 };
@@ -428,7 +427,6 @@ &swr1 {
 	wcd_tx: codec@0,3 {
 		compatible = "sdw20217010d00";
 		reg = <0 3>;
-		#sound-dai-cells = <1>;
 		qcom,tx-port-mapping = <1 2 3 4>;
 	};
 };
arch/arm64/boot/dts/rockchip/rk3566-soquartz-cm4.dts +11 -7
index 263ce40770dd..cddf6cd2fecb 100644
@@ -28,6 +28,16 @@ vcc_5v: vcc-5v-regulator {
 		regulator-max-microvolt = <5000000>;
 		vin-supply = <&vcc12v_dcin>;
 	};
+
+	vcc_sd_pwr: vcc-sd-pwr-regulator {
+		compatible = "regulator-fixed";
+		regulator-name = "vcc_sd_pwr";
+		regulator-always-on;
+		regulator-boot-on;
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		vin-supply = <&vcc3v3_sys>;
+	};
 };
 
 /* phy for pcie */
@@ -130,13 +140,7 @@ &saradc {
 };
 
 &sdmmc0 {
-	vmmc-supply = <&sdmmc_pwr>;
-	status = "okay";
-};
-
-&sdmmc_pwr {
-	regulator-min-microvolt = <3300000>;
-	regulator-max-microvolt = <3300000>;
+	vmmc-supply = <&vcc_sd_pwr>;
 	status = "okay";
 };
 
arch/arm64/boot/dts/rockchip/rk3566-soquartz.dtsi +13 -16
index 102e448bc026..31aa2b8efe39 100644
@@ -104,16 +104,6 @@ vcc3v3_sys: vcc3v3-sys-regulator {
 		regulator-max-microvolt = <3300000>;
 		vin-supply = <&vcc5v0_sys>;
 	};
-
-	sdmmc_pwr: sdmmc-pwr-regulator {
-		compatible = "regulator-fixed";
-		enable-active-high;
-		gpio = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>;
-		pinctrl-names = "default";
-		pinctrl-0 = <&sdmmc_pwr_h>;
-		regulator-name = "sdmmc_pwr";
-		status = "disabled";
-	};
 };
 
 &cpu0 {
@@ -155,6 +145,19 @@ &gmac1m0_clkinout
 	status = "disabled";
 };
 
+&gpio0 {
+	nextrst-hog {
+		gpio-hog;
+		/*
+		 * GPIO_ACTIVE_LOW + output-low here means that the pin is set
+		 * to high, because output-low decides the value pre-inversion.
+		 */
+		gpios = <RK_PA5 GPIO_ACTIVE_LOW>;
+		line-name = "nEXTRST";
+		output-low;
+	};
+};
+
 &gpu {
 	mali-supply = <&vdd_gpu>;
 	status = "okay";
@@ -538,12 +541,6 @@ wifi_enable_h: wifi-enable-h {
 			rockchip,pins = <2 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
 		};
 	};
-
-	sdmmc-pwr {
-		sdmmc_pwr_h: sdmmc-pwr-h {
-			rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
-		};
-	};
 };
 
 &pmu_io_domains {
arch/arm64/boot/dts/rockchip/rk3568.dtsi +8 -6
index ba67b58f05b7..f1be76a54ceb 100644
@@ -94,9 +94,10 @@ pcie3x1: pcie@fe270000 {
 		power-domains = <&power RK3568_PD_PIPE>;
 		reg = <0x3 0xc0400000 0x0 0x00400000>,
 		      <0x0 0xfe270000 0x0 0x00010000>,
-		      <0x3 0x7f000000 0x0 0x01000000>;
-		ranges = <0x01000000 0x0 0x3ef00000 0x3 0x7ef00000 0x0 0x00100000>,
-			 <0x02000000 0x0 0x00000000 0x3 0x40000000 0x0 0x3ef00000>;
+		      <0x0 0xf2000000 0x0 0x00100000>;
+		ranges = <0x01000000 0x0 0xf2100000 0x0 0xf2100000 0x0 0x00100000>,
+			 <0x02000000 0x0 0xf2200000 0x0 0xf2200000 0x0 0x01e00000>,
+			 <0x03000000 0x0 0x40000000 0x3 0x40000000 0x0 0x40000000>;
 		reg-names = "dbi", "apb", "config";
 		resets = <&cru SRST_PCIE30X1_POWERUP>;
 		reset-names = "pipe";
@@ -146,9 +147,10 @@ pcie3x2: pcie@fe280000 {
 		power-domains = <&power RK3568_PD_PIPE>;
 		reg = <0x3 0xc0800000 0x0 0x00400000>,
 		      <0x0 0xfe280000 0x0 0x00010000>,
-		      <0x3 0xbf000000 0x0 0x01000000>;
-		ranges = <0x01000000 0x0 0x3ef00000 0x3 0xbef00000 0x0 0x00100000>,
-			 <0x02000000 0x0 0x00000000 0x3 0x80000000 0x0 0x3ef00000>;
+		      <0x0 0xf0000000 0x0 0x00100000>;
+		ranges = <0x01000000 0x0 0xf0100000 0x0 0xf0100000 0x0 0x00100000>,
+			 <0x02000000 0x0 0xf0200000 0x0 0xf0200000 0x0 0x01e00000>,
+			 <0x03000000 0x0 0x40000000 0x3 0x80000000 0x0 0x40000000>;
 		reg-names = "dbi", "apb", "config";
 		resets = <&cru SRST_PCIE30X2_POWERUP>;
 		reset-names = "pipe";
arch/arm64/boot/dts/rockchip/rk356x.dtsi +4 -3
index eed0059a68b8..3ee5d764ac63 100644
@@ -952,7 +952,7 @@ pcie2x1: pcie@fe260000 {
 		compatible = "rockchip,rk3568-pcie";
 		reg = <0x3 0xc0000000 0x0 0x00400000>,
 		      <0x0 0xfe260000 0x0 0x00010000>,
-		      <0x3 0x3f000000 0x0 0x01000000>;
+		      <0x0 0xf4000000 0x0 0x00100000>;
 		reg-names = "dbi", "apb", "config";
 		interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>,
 			     <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>,
@@ -982,8 +982,9 @@ pcie2x1: pcie@fe260000 {
 		phys = <&combphy2 PHY_TYPE_PCIE>;
 		phy-names = "pcie-phy";
 		power-domains = <&power RK3568_PD_PIPE>;
-		ranges = <0x01000000 0x0 0x3ef00000 0x3 0x3ef00000 0x0 0x00100000
-			  0x02000000 0x0 0x00000000 0x3 0x00000000 0x0 0x3ef00000>;
+		ranges = <0x01000000 0x0 0xf4100000 0x0 0xf4100000 0x0 0x00100000>,
+			 <0x02000000 0x0 0xf4200000 0x0 0xf4200000 0x0 0x01e00000>,
+			 <0x03000000 0x0 0x40000000 0x3 0x00000000 0x0 0x40000000>;
 		resets = <&cru SRST_PCIE20_POWERUP>;
 		reset-names = "pipe";
 		#address-cells = <3>;
arch/arm64/include/asm/sysreg.h +6 -0
index 9e3ecba3c4e6..d4a85c1db2e2 100644
@@ -115,8 +115,14 @@
 #define SB_BARRIER_INSN			__SYS_BARRIER_INSN(0, 7, 31)
 
 #define SYS_DC_ISW			sys_insn(1, 0, 7, 6, 2)
+#define SYS_DC_IGSW			sys_insn(1, 0, 7, 6, 4)
+#define SYS_DC_IGDSW			sys_insn(1, 0, 7, 6, 6)
 #define SYS_DC_CSW			sys_insn(1, 0, 7, 10, 2)
+#define SYS_DC_CGSW			sys_insn(1, 0, 7, 10, 4)
+#define SYS_DC_CGDSW			sys_insn(1, 0, 7, 10, 6)
 #define SYS_DC_CISW			sys_insn(1, 0, 7, 14, 2)
+#define SYS_DC_CIGSW			sys_insn(1, 0, 7, 14, 4)
+#define SYS_DC_CIGDSW			sys_insn(1, 0, 7, 14, 6)
 
 /*
  * Automatically generated definitions for system registers, the
arch/arm64/kvm/hyp/include/hyp/switch.h +11 -2
index 33f4d4200329..168365167a13 100644
@@ -81,7 +81,12 @@ static inline void __activate_traps_common(struct kvm_vcpu *vcpu)
 	 * EL1 instead of being trapped to EL2.
 	 */
 	if (kvm_arm_support_pmu_v3()) {
+		struct kvm_cpu_context *hctxt;
+
 		write_sysreg(0, pmselr_el0);
+
+		hctxt = &this_cpu_ptr(&kvm_host_data)->host_ctxt;
+		ctxt_sys_reg(hctxt, PMUSERENR_EL0) = read_sysreg(pmuserenr_el0);
 		write_sysreg(ARMV8_PMU_USERENR_MASK, pmuserenr_el0);
 	}
 
@@ -105,8 +110,12 @@ static inline void __deactivate_traps_common(struct kvm_vcpu *vcpu)
 	write_sysreg(vcpu->arch.mdcr_el2_host, mdcr_el2);
 
 	write_sysreg(0, hstr_el2);
-	if (kvm_arm_support_pmu_v3())
-		write_sysreg(0, pmuserenr_el0);
+	if (kvm_arm_support_pmu_v3()) {
+		struct kvm_cpu_context *hctxt;
+
+		hctxt = &this_cpu_ptr(&kvm_host_data)->host_ctxt;
+		write_sysreg(ctxt_sys_reg(hctxt, PMUSERENR_EL0), pmuserenr_el0);
+	}
 
 	if (cpus_have_final_cap(ARM64_SME)) {
 		sysreg_clear_set_s(SYS_HFGRTR_EL2, 0,
arch/arm64/kvm/vgic/vgic-init.c +7 -4
index c199ba2f192e..06ca3b722f26 100644
@@ -446,6 +446,7 @@ int vgic_lazy_init(struct kvm *kvm)
 int kvm_vgic_map_resources(struct kvm *kvm)
 {
 	struct vgic_dist *dist = &kvm->arch.vgic;
+	enum vgic_type type;
 	gpa_t dist_base;
 	int ret = 0;
 
@@ -460,10 +461,13 @@ int kvm_vgic_map_resources(struct kvm *kvm)
 	if (!irqchip_in_kernel(kvm))
 		goto out;
 
-	if (dist->vgic_model == KVM_DEV_TYPE_ARM_VGIC_V2)
+	if (dist->vgic_model == KVM_DEV_TYPE_ARM_VGIC_V2) {
 		ret = vgic_v2_map_resources(kvm);
-	else
+		type = VGIC_V2;
+	} else {
 		ret = vgic_v3_map_resources(kvm);
+		type = VGIC_V3;
+	}
 
 	if (ret) {
 		__kvm_vgic_destroy(kvm);
@@ -473,8 +477,7 @@ int kvm_vgic_map_resources(struct kvm *kvm)
 	dist_base = dist->vgic_dist_base;
 	mutex_unlock(&kvm->arch.config_lock);
 
-	ret = vgic_register_dist_iodev(kvm, dist_base,
-				       kvm_vgic_global_state.type);
+	ret = vgic_register_dist_iodev(kvm, dist_base, type);
 	if (ret) {
 		kvm_err("Unable to register VGIC dist MMIO regions\n");
 		kvm_vgic_destroy(kvm);
arch/riscv/Makefile +1 -1
index b05e833a022d..d46b6722710f 100644
@@ -7,7 +7,7 @@
 #
 
 OBJCOPYFLAGS    := -O binary
-LDFLAGS_vmlinux :=
+LDFLAGS_vmlinux := -z norelro
 ifeq ($(CONFIG_DYNAMIC_FTRACE),y)
 	LDFLAGS_vmlinux := --no-relax
 	KBUILD_CPPFLAGS += -DCC_USING_PATCHABLE_FUNCTION_ENTRY
arch/s390/purgatory/Makefile +1 -0
index 32573b4f9bd2..cc8cf5abea15 100644
@@ -26,6 +26,7 @@ KBUILD_CFLAGS += -Wno-pointer-sign -Wno-sign-compare
 KBUILD_CFLAGS += -fno-zero-initialized-in-bss -fno-builtin -ffreestanding
 KBUILD_CFLAGS += -Os -m64 -msoft-float -fno-common
 KBUILD_CFLAGS += -fno-stack-protector
+KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING
 KBUILD_CFLAGS += $(CLANG_FLAGS)
 KBUILD_CFLAGS += $(call cc-option,-fno-PIE)
 KBUILD_AFLAGS := $(filter-out -DCC_USING_EXPOLINE,$(KBUILD_AFLAGS))
arch/x86/Makefile +12 -0
index b39975977c03..fdc2e3abd615 100644
@@ -305,6 +305,18 @@ ifeq ($(RETPOLINE_CFLAGS),)
 endif
 endif
 
+ifdef CONFIG_UNWINDER_ORC
+orc_hash_h := arch/$(SRCARCH)/include/generated/asm/orc_hash.h
+orc_hash_sh := $(srctree)/scripts/orc_hash.sh
+targets += $(orc_hash_h)
+quiet_cmd_orc_hash = GEN     $@
+      cmd_orc_hash = mkdir -p $(dir $@); \
+		     $(CONFIG_SHELL) $(orc_hash_sh) < $< > $@
+$(orc_hash_h): $(srctree)/arch/x86/include/asm/orc_types.h $(orc_hash_sh) FORCE
+	$(call if_changed,orc_hash)
+archprepare: $(orc_hash_h)
+endif
+
 archclean:
 	$(Q)rm -rf $(objtree)/arch/i386
 	$(Q)rm -rf $(objtree)/arch/x86_64
arch/x86/include/asm/Kbuild +1 -0
index 1e51650b79d7..4f1ce5fc4e19 100644
@@ -1,6 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 
 
+generated-y += orc_hash.h
 generated-y += syscalls_32.h
 generated-y += syscalls_64.h
 generated-y += syscalls_x32.h
arch/x86/include/asm/orc_header.h new file +19 -0
new file mode 100644
index 000000000000..07bacf3e160e
@@ -0,0 +1,19 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/* Copyright (c) Meta Platforms, Inc. and affiliates. */
+
+#ifndef _ORC_HEADER_H
+#define _ORC_HEADER_H
+
+#include <linux/types.h>
+#include <linux/compiler.h>
+#include <asm/orc_hash.h>
+
+/*
+ * The header is currently a 20-byte hash of the ORC entry definition; see
+ * scripts/orc_hash.sh.
+ */
+#define ORC_HEADER					\
+	__used __section(".orc_header") __aligned(4)	\
+	static const u8 orc_header[] = { ORC_HASH }
+
+#endif /* _ORC_HEADER_H */
arch/x86/kernel/apic/x2apic_phys.c +4 -1
index 6bde05a86b4e..896bc41cb2ba 100644
@@ -97,7 +97,10 @@ static void init_x2apic_ldr(void)
 
 static int x2apic_phys_probe(void)
 {
-	if (x2apic_mode && (x2apic_phys || x2apic_fadt_phys()))
+	if (!x2apic_mode)
+		return 0;
+
+	if (x2apic_phys || x2apic_fadt_phys())
 		return 1;
 
 	return apic == &apic_x2apic_phys;
arch/x86/kernel/unwind_orc.c +3 -0
index 37307b40f8da..c960f250624a 100644
@@ -7,6 +7,9 @@
 #include <asm/unwind.h>
 #include <asm/orc_types.h>
 #include <asm/orc_lookup.h>
+#include <asm/orc_header.h>
+
+ORC_HEADER;
 
 #define orc_warn(fmt, ...) \
 	printk_deferred_once(KERN_WARNING "WARNING: " fmt, ##__VA_ARGS__)
arch/x86/mm/kaslr.c +4 -4
index 557f0fe25dff..37db264866b6 100644
@@ -172,10 +172,10 @@ void __meminit init_trampoline_kaslr(void)
 		set_p4d(p4d_tramp,
 			__p4d(_KERNPG_TABLE | __pa(pud_page_tramp)));
 
-		set_pgd(&trampoline_pgd_entry,
-			__pgd(_KERNPG_TABLE | __pa(p4d_page_tramp)));
+		trampoline_pgd_entry =
+			__pgd(_KERNPG_TABLE | __pa(p4d_page_tramp));
 	} else {
-		set_pgd(&trampoline_pgd_entry,
-			__pgd(_KERNPG_TABLE | __pa(pud_page_tramp)));
+		trampoline_pgd_entry =
+			__pgd(_KERNPG_TABLE | __pa(pud_page_tramp));
 	}
 }
arch/x86/net/bpf_jit_comp.c +1 -1
index 1056bbf55b17..438adb695daa 100644
@@ -2570,7 +2570,7 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *prog)
 	}
 
 	if (bpf_jit_enable > 1)
-		bpf_jit_dump(prog->len, proglen, pass + 1, image);
+		bpf_jit_dump(prog->len, proglen, pass + 1, rw_image);
 
 	if (image) {
 		if (!prog->is_func || extra_pass) {
block/blk-cgroup.c +3 -2
index dd6d1c0117b1..581aa08e34a8 100644
@@ -907,6 +907,7 @@ static void __blkcg_rstat_flush(struct blkcg *blkcg, int cpu)
 	struct llist_head *lhead = per_cpu_ptr(blkcg->lhead, cpu);
 	struct llist_node *lnode;
 	struct blkg_iostat_set *bisc, *next_bisc;
+	unsigned long flags;
 
 	rcu_read_lock();
 
@@ -920,7 +921,7 @@ static void __blkcg_rstat_flush(struct blkcg *blkcg, int cpu)
 	 * When flushing from cgroup, cgroup_rstat_lock is always held, so
 	 * this lock won't cause contention most of time.
 	 */
-	raw_spin_lock(&blkg_stat_lock);
+	raw_spin_lock_irqsave(&blkg_stat_lock, flags);
 
 	/*
 	 * Iterate only the iostat_cpu's queued in the lockless list.
@@ -946,7 +947,7 @@ static void __blkcg_rstat_flush(struct blkcg *blkcg, int cpu)
 			blkcg_iostat_update(parent, &blkg->iostat.cur,
 					    &blkg->iostat.last);
 	}
-	raw_spin_unlock(&blkg_stat_lock);
+	raw_spin_unlock_irqrestore(&blkg_stat_lock, flags);
 out:
 	rcu_read_unlock();
 }
drivers/acpi/acpica/achware.h +0 -2
index 6f2787506b50..c1b6e7bf4fcb 100644
@@ -101,8 +101,6 @@ acpi_status
 acpi_hw_get_gpe_status(struct acpi_gpe_event_info *gpe_event_info,
 		       acpi_event_status *event_status);
 
-acpi_status acpi_hw_disable_all_gpes(void);
-
 acpi_status acpi_hw_enable_all_runtime_gpes(void);
 
 acpi_status acpi_hw_enable_all_wakeup_gpes(void);
drivers/acpi/sleep.c +12 -4
index 4ca667251272..539c12fbd2f1 100644
@@ -636,11 +636,19 @@ static int acpi_suspend_enter(suspend_state_t pm_state)
 	}
 
 	/*
-	 * Disable and clear GPE status before interrupt is enabled. Some GPEs
-	 * (like wakeup GPE) haven't handler, this can avoid such GPE misfire.
-	 * acpi_leave_sleep_state will reenable specific GPEs later
+	 * Disable all GPE and clear their status bits before interrupts are
+	 * enabled. Some GPEs (like wakeup GPEs) have no handlers and this can
+	 * prevent them from producing spurious interrups.
+	 *
+	 * acpi_leave_sleep_state() will reenable specific GPEs later.
+	 *
+	 * Because this code runs on one CPU with disabled interrupts (all of
+	 * the other CPUs are offline at this time), it need not acquire any
+	 * sleeping locks which may trigger an implicit preemption point even
+	 * if there is no contention, so avoid doing that by using a low-level
+	 * library routine here.
 	 */
-	acpi_disable_all_gpes();
+	acpi_hw_disable_all_gpes();
 	/* Allow EC transactions to happen. */
 	acpi_ec_unblock_transactions();
 
drivers/ata/libata-core.c +2 -1
index 14c17c3bda4e..d37df499c9fa 100644
@@ -5348,7 +5348,7 @@ struct ata_port *ata_port_alloc(struct ata_host *host)
 
 	mutex_init(&ap->scsi_scan_mutex);
 	INIT_DELAYED_WORK(&ap->hotplug_task, ata_scsi_hotplug);
-	INIT_WORK(&ap->scsi_rescan_task, ata_scsi_dev_rescan);
+	INIT_DELAYED_WORK(&ap->scsi_rescan_task, ata_scsi_dev_rescan);
 	INIT_LIST_HEAD(&ap->eh_done_q);
 	init_waitqueue_head(&ap->eh_wait_q);
 	init_completion(&ap->park_req_pending);
@@ -5954,6 +5954,7 @@ static void ata_port_detach(struct ata_port *ap)
 	WARN_ON(!(ap->pflags & ATA_PFLAG_UNLOADED));
 
 	cancel_delayed_work_sync(&ap->hotplug_task);
+	cancel_delayed_work_sync(&ap->scsi_rescan_task);
 
  skip_eh:
 	/* clean up zpodd on port removal */
drivers/ata/libata-eh.c +1 -1
index a6c901811802..6f8d14191593 100644
@@ -2984,7 +2984,7 @@ static int ata_eh_revalidate_and_attach(struct ata_link *link,
 			ehc->i.flags |= ATA_EHI_SETMODE;
 
 			/* schedule the scsi_rescan_device() here */
-			schedule_work(&(ap->scsi_rescan_task));
+			schedule_delayed_work(&ap->scsi_rescan_task, 0);
 		} else if (dev->class == ATA_DEV_UNKNOWN &&
 			   ehc->tries[dev->devno] &&
 			   ata_class_enabled(ehc->classes[dev->devno])) {
drivers/ata/libata-scsi.c +21 -1
index a9e768fdae4e..51673d95e5b2 100644
@@ -4597,10 +4597,11 @@ int ata_scsi_user_scan(struct Scsi_Host *shost, unsigned int channel,
 void ata_scsi_dev_rescan(struct work_struct *work)
 {
 	struct ata_port *ap =
-		container_of(work, struct ata_port, scsi_rescan_task);
+		container_of(work, struct ata_port, scsi_rescan_task.work);
 	struct ata_link *link;
 	struct ata_device *dev;
 	unsigned long flags;
+	bool delay_rescan = false;
 
 	mutex_lock(&ap->scsi_scan_mutex);
 	spin_lock_irqsave(ap->lock, flags);
@@ -4614,6 +4615,21 @@ void ata_scsi_dev_rescan(struct work_struct *work)
 			if (scsi_device_get(sdev))
 				continue;
 
+			/*
+			 * If the rescan work was scheduled because of a resume
+			 * event, the port is already fully resumed, but the
+			 * SCSI device may not yet be fully resumed. In such
+			 * case, executing scsi_rescan_device() may cause a
+			 * deadlock with the PM code on device_lock(). Prevent
+			 * this by giving up and retrying rescan after a short
+			 * delay.
+			 */
+			delay_rescan = sdev->sdev_gendev.power.is_suspended;
+			if (delay_rescan) {
+				scsi_device_put(sdev);
+				break;
+			}
+
 			spin_unlock_irqrestore(ap->lock, flags);
 			scsi_rescan_device(&(sdev->sdev_gendev));
 			scsi_device_put(sdev);
@@ -4623,4 +4639,8 @@ void ata_scsi_dev_rescan(struct work_struct *work)
 
 	spin_unlock_irqrestore(ap->lock, flags);
 	mutex_unlock(&ap->scsi_scan_mutex);
+
+	if (delay_rescan)
+		schedule_delayed_work(&ap->scsi_rescan_task,
+				      msecs_to_jiffies(5));
 }
drivers/base/regmap/regmap-spi-avmm.c +1 -1
index 4c2b94b3e30b..6af692844c19 100644
@@ -660,7 +660,7 @@ static const struct regmap_bus regmap_spi_avmm_bus = {
 	.reg_format_endian_default = REGMAP_ENDIAN_NATIVE,
 	.val_format_endian_default = REGMAP_ENDIAN_NATIVE,
 	.max_raw_read = SPI_AVMM_VAL_SIZE * MAX_READ_CNT,
-	.max_raw_write = SPI_AVMM_VAL_SIZE * MAX_WRITE_CNT,
+	.max_raw_write = SPI_AVMM_REG_SIZE + SPI_AVMM_VAL_SIZE * MAX_WRITE_CNT,
 	.free_context = spi_avmm_bridge_ctx_free,
 };
 
drivers/block/null_blk/main.c +1 -0
index 14491952047f..3b6b4cb400f4 100644
@@ -2212,6 +2212,7 @@ static void null_destroy_dev(struct nullb *nullb)
 	struct nullb_device *dev = nullb->dev;
 
 	null_del_dev(nullb);
+	null_free_device_storage(dev, false);
 	null_free_dev(dev);
 }
 
drivers/block/virtio_blk.c +37 -45

115 lines not on this page · raw message

drivers/char/tpm/tpm_tis_core.c +2 -0
index e05d2b227de3..55f6ff1e05aa 100644
@@ -772,7 +772,9 @@ static irqreturn_t tis_int_handler(int dummy, void *dev_id)
 		wake_up_interruptible(&priv->int_queue);
 
 	/* Clear interrupts handled with TPM_EOI */
+	tpm_tis_request_locality(chip, 0);
 	rc = tpm_tis_write32(priv, TPM_INT_STATUS(priv->locality), interrupt);
+	tpm_tis_relinquish_locality(chip, 0);
 	if (rc < 0)
 		return IRQ_NONE;
 
drivers/dma-buf/udmabuf.c +6 -41

77 lines not on this page · raw message

drivers/firmware/efi/efi.c +0 -21
index abeff7dc0b58..34b9e7876538 100644
@@ -361,24 +361,6 @@ static void __init efi_debugfs_init(void)
 static inline void efi_debugfs_init(void) {}
 #endif
 
-static void refresh_nv_rng_seed(struct work_struct *work)
-{
-	u8 seed[EFI_RANDOM_SEED_SIZE];
-
-	get_random_bytes(seed, sizeof(seed));
-	efi.set_variable(L"RandomSeed", &LINUX_EFI_RANDOM_SEED_TABLE_GUID,
-			 EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS |
-			 EFI_VARIABLE_RUNTIME_ACCESS, sizeof(seed), seed);
-	memzero_explicit(seed, sizeof(seed));
-}
-static int refresh_nv_rng_seed_notification(struct notifier_block *nb, unsigned long action, void *data)
-{
-	static DECLARE_WORK(work, refresh_nv_rng_seed);
-	schedule_work(&work);
-	return NOTIFY_DONE;
-}
-static struct notifier_block refresh_nv_rng_seed_nb = { .notifier_call = refresh_nv_rng_seed_notification };
-
 /*
  * We register the efi subsystem with the firmware subsystem and the
  * efivars subsystem with the efi subsystem, if the system was booted with
@@ -451,9 +433,6 @@ static int __init efisubsys_init(void)
 		platform_device_register_simple("efi_secret", 0, NULL, 0);
 #endif
 
-	if (efi_rt_services_supported(EFI_RT_SUPPORTED_SET_VARIABLE))
-		execute_with_initialized_rng(&refresh_nv_rng_seed_nb);
-
 	return 0;
 
 err_remove_group:
drivers/gpio/gpio-sifive.c +6 -2
index bc5660f61c57..0f1e1226ebbe 100644
@@ -221,8 +221,12 @@ static int sifive_gpio_probe(struct platform_device *pdev)
 		return -ENODEV;
 	}
 
-	for (i = 0; i < ngpio; i++)
-		chip->irq_number[i] = platform_get_irq(pdev, i);
+	for (i = 0; i < ngpio; i++) {
+		ret = platform_get_irq(pdev, i);
+		if (ret < 0)
+			return ret;
+		chip->irq_number[i] = ret;
+	}
 
 	ret = bgpio_init(&chip->gc, dev, 4,
 			 chip->base + SIFIVE_GPIO_INPUT_VAL,
drivers/gpio/gpiolib.c +10 -1
index 4472214fcd43..ce8f71e06eb6 100644
@@ -1716,7 +1716,7 @@ static void gpiochip_irqchip_remove(struct gpio_chip *gc)
 	}
 
 	/* Remove all IRQ mappings and delete the domain */
-	if (gc->irq.domain) {
+	if (!gc->irq.domain_is_allocated_externally && gc->irq.domain) {
 		unsigned int irq;
 
 		for (offset = 0; offset < gc->ngpio; offset++) {
@@ -1762,6 +1762,15 @@ int gpiochip_irqchip_add_domain(struct gpio_chip *gc,
 
 	gc->to_irq = gpiochip_to_irq;
 	gc->irq.domain = domain;
+	gc->irq.domain_is_allocated_externally = true;
+
+	/*
+	 * Using barrier() here to prevent compiler from reordering
+	 * gc->irq.initialized before adding irqdomain.
+	 */
+	barrier();
+
+	gc->irq.initialized = true;
 
 	return 0;
 }
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +53 -20

103 lines not on this page · raw message

drivers/gpu/drm/exynos/exynos_drm_g2d.c +1 -1
index ec784e58da5c..414e585ec7dd 100644
@@ -1335,7 +1335,7 @@ int exynos_g2d_exec_ioctl(struct drm_device *drm_dev, void *data,
 	/* Let the runqueue know that there is work to do. */
 	queue_work(g2d->g2d_workq, &g2d->runqueue_work);
 
-	if (runqueue_node->async)
+	if (req->async)
 		goto out;
 
 	wait_for_completion(&runqueue_node->complete);
drivers/gpu/drm/exynos/exynos_drm_vidi.c +0 -2
index 4d56c8c799c5..f5e1adfcaa51 100644
@@ -469,8 +469,6 @@ static int vidi_remove(struct platform_device *pdev)
 	if (ctx->raw_edid != (struct edid *)fake_edid_info) {
 		kfree(ctx->raw_edid);
 		ctx->raw_edid = NULL;
-
-		return -EINVAL;
 	}
 
 	component_del(&pdev->dev, &vidi_component_ops);
drivers/gpu/drm/radeon/radeon_gem.c +1 -3
index 261fcbae88d7..75d79c311038 100644
@@ -459,7 +459,6 @@ int radeon_gem_set_domain_ioctl(struct drm_device *dev, void *data,
 	struct radeon_device *rdev = dev->dev_private;
 	struct drm_radeon_gem_set_domain *args = data;
 	struct drm_gem_object *gobj;
-	struct radeon_bo *robj;
 	int r;
 
 	/* for now if someone requests domain CPU -
@@ -472,13 +471,12 @@ int radeon_gem_set_domain_ioctl(struct drm_device *dev, void *data,
 		up_read(&rdev->exclusive_lock);
 		return -ENOENT;
 	}
-	robj = gem_to_radeon_bo(gobj);
 
 	r = radeon_gem_set_domain(gobj, args->read_domains, args->write_domain);
 
 	drm_gem_object_put(gobj);
 	up_read(&rdev->exclusive_lock);
-	r = radeon_gem_handle_lockup(robj->rdev, r);
+	r = radeon_gem_handle_lockup(rdev, r);
 	return r;
 }
 
drivers/hid/wacom_sys.c +6 -1
index fb538a6c4add..aff4a21a46b6 100644
@@ -2417,8 +2417,13 @@ static int wacom_parse_and_register(struct wacom *wacom, bool wireless)
 		goto fail_quirks;
 	}
 
-	if (features->device_type & WACOM_DEVICETYPE_WL_MONITOR)
+	if (features->device_type & WACOM_DEVICETYPE_WL_MONITOR) {
 		error = hid_hw_open(hdev);
+		if (error) {
+			hid_err(hdev, "hw open failed\n");
+			goto fail_quirks;
+		}
+	}
 
 	wacom_set_shared_values(wacom_wac);
 	devres_close_group(&hdev->dev, wacom);
drivers/hv/channel_mgmt.c +16 -2
index cc23b90cae02..d95e567a190d 100644
@@ -829,11 +829,22 @@ static void vmbus_wait_for_unload(void)
 		if (completion_done(&vmbus_connection.unload_event))
 			goto completed;
 
-		for_each_online_cpu(cpu) {
+		for_each_present_cpu(cpu) {
 			struct hv_per_cpu_context *hv_cpu
 				= per_cpu_ptr(hv_context.cpu_context, cpu);
 
+			/*
+			 * In a CoCo VM the synic_message_page is not allocated
+			 * in hv_synic_alloc(). Instead it is set/cleared in
+			 * hv_synic_enable_regs() and hv_synic_disable_regs()
+			 * such that it is set only when the CPU is online. If
+			 * not all present CPUs are online, the message page
+			 * might be NULL, so skip such CPUs.
+			 */
 			page_addr = hv_cpu->synic_message_page;
+			if (!page_addr)
+				continue;
+
 			msg = (struct hv_message *)page_addr
 				+ VMBUS_MESSAGE_SINT;
 
@@ -867,11 +878,14 @@ static void vmbus_wait_for_unload(void)
 	 * maybe-pending messages on all CPUs to be able to receive new
 	 * messages after we reconnect.
 	 */
-	for_each_online_cpu(cpu) {
+	for_each_present_cpu(cpu) {
 		struct hv_per_cpu_context *hv_cpu
 			= per_cpu_ptr(hv_context.cpu_context, cpu);
 
 		page_addr = hv_cpu->synic_message_page;
+		if (!page_addr)
+			continue;
+
 		msg = (struct hv_message *)page_addr + VMBUS_MESSAGE_SINT;
 		msg->header.message_type = HVMSG_NONE;
 	}
drivers/hv/vmbus_drv.c +2 -3
index d24dd65b33d4..b50cc83e8315 100644
@@ -1525,7 +1525,7 @@ static int vmbus_bus_init(void)
 	ret = cpuhp_setup_state(CPUHP_AP_ONLINE_DYN, "hyperv/vmbus:online",
 				hv_synic_init, hv_synic_cleanup);
 	if (ret < 0)
-		goto err_cpuhp;
+		goto err_alloc;
 	hyperv_cpuhp_online = ret;
 
 	ret = vmbus_connect();
@@ -1577,9 +1577,8 @@ static int vmbus_bus_init(void)
 
 err_connect:
 	cpuhp_remove_state(hyperv_cpuhp_online);
-err_cpuhp:
-	hv_synic_free();
 err_alloc:
+	hv_synic_free();
 	if (vmbus_irq == -1) {
 		hv_remove_vmbus_handler();
 	} else {
drivers/i2c/busses/i2c-designware-core.h +1 -0
index 050d8c63ad3c..0164d9216330 100644
@@ -40,6 +40,7 @@
 #define DW_IC_CON_BUS_CLEAR_CTRL		BIT(11)
 
 #define DW_IC_DATA_CMD_DAT			GENMASK(7, 0)
+#define DW_IC_DATA_CMD_FIRST_DATA_BYTE		BIT(11)
 
 /*
  * Registers offset
drivers/i2c/busses/i2c-designware-slave.c +4 -0
index cec25054bb24..2e079cf20bb5 100644
@@ -176,6 +176,10 @@ static irqreturn_t i2c_dw_isr_slave(int this_irq, void *dev_id)
 
 		do {
 			regmap_read(dev->map, DW_IC_DATA_CMD, &tmp);
+			if (tmp & DW_IC_DATA_CMD_FIRST_DATA_BYTE)
+				i2c_slave_event(dev->slave,
+						I2C_SLAVE_WRITE_REQUESTED,
+						&val);
 			val = tmp;
 			i2c_slave_event(dev->slave, I2C_SLAVE_WRITE_RECEIVED,
 					&val);
drivers/i2c/busses/i2c-imx-lpi2c.c +2 -2
index a49b14d52a98..ff12018bc206 100644
@@ -201,8 +201,8 @@ static void lpi2c_imx_stop(struct lpi2c_imx_struct *lpi2c_imx)
 /* CLKLO = I2C_CLK_RATIO * CLKHI, SETHOLD = CLKHI, DATAVD = CLKHI/2 */
 static int lpi2c_imx_config(struct lpi2c_imx_struct *lpi2c_imx)
 {
-	u8 prescale, filt, sethold, clkhi, clklo, datavd;
-	unsigned int clk_rate, clk_cycle;
+	u8 prescale, filt, sethold, datavd;
+	unsigned int clk_rate, clk_cycle, clkhi, clklo;
 	enum lpi2c_imx_pincfg pincfg;
 	unsigned int temp;
 
drivers/i2c/busses/i2c-mchp-pci1xxxx.c +4 -2
index b21ffd6df927..5ef136c3ecb1 100644
@@ -1118,8 +1118,10 @@ static int pci1xxxx_i2c_resume(struct device *dev)
 static DEFINE_SIMPLE_DEV_PM_OPS(pci1xxxx_i2c_pm_ops, pci1xxxx_i2c_suspend,
 			 pci1xxxx_i2c_resume);
 
-static void pci1xxxx_i2c_shutdown(struct pci1xxxx_i2c *i2c)
+static void pci1xxxx_i2c_shutdown(void *data)
 {
+	struct pci1xxxx_i2c *i2c = data;
+
 	pci1xxxx_i2c_config_padctrl(i2c, false);
 	pci1xxxx_i2c_configure_core_reg(i2c, false);
 }
@@ -1156,7 +1158,7 @@ static int pci1xxxx_i2c_probe_pci(struct pci_dev *pdev,
 	init_completion(&i2c->i2c_xfer_done);
 	pci1xxxx_i2c_init(i2c);
 
-	ret = devm_add_action(dev, (void (*)(void *))pci1xxxx_i2c_shutdown, i2c);
+	ret = devm_add_action(dev, pci1xxxx_i2c_shutdown, i2c);
 	if (ret)
 		return ret;
 
drivers/input/misc/soc_button_array.c +30 -0
index 09489380afda..e79f5497948b 100644
@@ -108,6 +108,27 @@ static const struct dmi_system_id dmi_use_low_level_irq[] = {
 	{} /* Terminating entry */
 };
 
+/*
+ * Some devices have a wrong entry which points to a GPIO which is
+ * required in another driver, so this driver must not claim it.
+ */
+static const struct dmi_system_id dmi_invalid_acpi_index[] = {
+	{
+		/*
+		 * Lenovo Yoga Book X90F / X90L, the PNP0C40 home button entry
+		 * points to a GPIO which is not a home button and which is
+		 * required by the lenovo-yogabook driver.
+		 */
+		.matches = {
+			DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Intel Corporation"),
+			DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "CHERRYVIEW D1 PLATFORM"),
+			DMI_EXACT_MATCH(DMI_PRODUCT_VERSION, "YETI-11"),
+		},
+		.driver_data = (void *)1l,
+	},
+	{} /* Terminating entry */
+};
+
 /*
  * Get the Nth GPIO number from the ACPI object.
  */
@@ -137,6 +158,8 @@ soc_button_device_create(struct platform_device *pdev,
 	struct platform_device *pd;
 	struct gpio_keys_button *gpio_keys;
 	struct gpio_keys_platform_data *gpio_keys_pdata;
+	const struct dmi_system_id *dmi_id;
+	int invalid_acpi_index = -1;
 	int error, gpio, irq;
 	int n_buttons = 0;
 
@@ -154,10 +177,17 @@ soc_button_device_create(struct platform_device *pdev,
 	gpio_keys = (void *)(gpio_keys_pdata + 1);
 	n_buttons = 0;
 
+	dmi_id = dmi_first_match(dmi_invalid_acpi_index);
+	if (dmi_id)
+		invalid_acpi_index = (long)dmi_id->driver_data;
+
 	for (info = button_info; info->name; info++) {
 		if (info->autorepeat != autorepeat)
 			continue;
 
+		if (info->acpi_index == invalid_acpi_index)
+			continue;
+
 		error = soc_button_lookup_gpio(&pdev->dev, info->acpi_index, &gpio, &irq);
 		if (error || irq < 0) {
 			/*
drivers/iommu/amd/iommu.c +4 -4
index cd0e3fb78c3f..e9eac86cddbd 100644
@@ -2069,10 +2069,6 @@ static struct protection_domain *protection_domain_alloc(unsigned int type)
 	int mode = DEFAULT_PGTABLE_LEVEL;
 	int ret;
 
-	domain = kzalloc(sizeof(*domain), GFP_KERNEL);
-	if (!domain)
-		return NULL;
-
 	/*
 	 * Force IOMMU v1 page table when iommu=pt and
 	 * when allocating domain for pass-through devices.
@@ -2088,6 +2084,10 @@ static struct protection_domain *protection_domain_alloc(unsigned int type)
 		return NULL;
 	}
 
+	domain = kzalloc(sizeof(*domain), GFP_KERNEL);
+	if (!domain)
+		return NULL;
+
 	switch (pgtable) {
 	case AMD_IOMMU_V1:
 		ret = protection_domain_init_v1(domain, mode);
drivers/media/cec/core/cec-adap.c +6 -2
index 4f5ab3cae8a7..b1512f9c5895 100644
@@ -1090,7 +1090,8 @@ void cec_received_msg_ts(struct cec_adapter *adap,
 	mutex_lock(&adap->lock);
 	dprintk(2, "%s: %*ph\n", __func__, msg->len, msg->msg);
 
-	adap->last_initiator = 0xff;
+	if (!adap->transmit_in_progress)
+		adap->last_initiator = 0xff;
 
 	/* Check if this message was for us (directed or broadcast). */
 	if (!cec_msg_is_broadcast(msg))
@@ -1582,7 +1583,7 @@ static void cec_claim_log_addrs(struct cec_adapter *adap, bool block)
  *
  * This function is called with adap->lock held.
  */
-static int cec_adap_enable(struct cec_adapter *adap)
+int cec_adap_enable(struct cec_adapter *adap)
 {
 	bool enable;
 	int ret = 0;
@@ -1592,6 +1593,9 @@ static int cec_adap_enable(struct cec_adapter *adap)
 	if (adap->needs_hpd)
 		enable = enable && adap->phys_addr != CEC_PHYS_ADDR_INVALID;
 
+	if (adap->devnode.unregistered)
+		enable = false;
+
 	if (enable == adap->is_enabled)
 		return 0;
 
drivers/media/cec/core/cec-core.c +2 -0
index af358e901b5f..7e153c5cad04 100644
@@ -191,6 +191,8 @@ static void cec_devnode_unregister(struct cec_adapter *adap)
 	mutex_lock(&adap->lock);
 	__cec_s_phys_addr(adap, CEC_PHYS_ADDR_INVALID, false);
 	__cec_s_log_addrs(adap, NULL, false);
+	// Disable the adapter (since adap->devnode.unregistered is true)
+	cec_adap_enable(adap);
 	mutex_unlock(&adap->lock);
 
 	cdev_device_del(&devnode->cdev, &devnode->dev);
drivers/media/cec/core/cec-priv.h +1 -0
index b78df931aa74..ed1f8c67626b 100644
@@ -47,6 +47,7 @@ int cec_monitor_pin_cnt_inc(struct cec_adapter *adap);
 void cec_monitor_pin_cnt_dec(struct cec_adapter *adap);
 int cec_adap_status(struct seq_file *file, void *priv);
 int cec_thread_func(void *_adap);
+int cec_adap_enable(struct cec_adapter *adap);
 void __cec_s_phys_addr(struct cec_adapter *adap, u16 phys_addr, bool block);
 int __cec_s_log_addrs(struct cec_adapter *adap,
 		      struct cec_log_addrs *log_addrs, bool block);
drivers/mmc/host/bcm2835.c +2 -2
index 8648f7e63ca1..eea208856ce0 100644
@@ -1403,8 +1403,8 @@ static int bcm2835_probe(struct platform_device *pdev)
 	host->max_clk = clk_get_rate(clk);
 
 	host->irq = platform_get_irq(pdev, 0);
-	if (host->irq <= 0) {
-		ret = -EINVAL;
+	if (host->irq < 0) {
+		ret = host->irq;
 		goto err;
 	}
 
drivers/mmc/host/litex_mmc.c +1 -0
index 39c6707fdfdb..9af6b0902efe 100644
@@ -649,6 +649,7 @@ static struct platform_driver litex_mmc_driver = {
 	.driver = {
 		.name = "litex-mmc",
 		.of_match_table = litex_match,
+		.probe_type = PROBE_PREFER_ASYNCHRONOUS,
 	},
 };
 module_platform_driver(litex_mmc_driver);
drivers/mmc/host/meson-gx-mmc.c +4 -10
index 2b963a81c2ad..2eda0e496225 100644
@@ -1006,11 +1006,8 @@ static irqreturn_t meson_mmc_irq(int irq, void *dev_id)
 
 		if (data && !cmd->error)
 			data->bytes_xfered = data->blksz * data->blocks;
-		if (meson_mmc_bounce_buf_read(data) ||
-		    meson_mmc_get_next_command(cmd))
-			ret = IRQ_WAKE_THREAD;
-		else
-			ret = IRQ_HANDLED;
+
+		return IRQ_WAKE_THREAD;
 	}
 
 out:
@@ -1022,9 +1019,6 @@ static irqreturn_t meson_mmc_irq(int irq, void *dev_id)
 		writel(start, host->regs + SD_EMMC_START);
 	}
 
-	if (ret == IRQ_HANDLED)
-		meson_mmc_request_done(host->mmc, cmd->mrq);
-
 	return ret;
 }
 
@@ -1208,8 +1202,8 @@ static int meson_mmc_probe(struct platform_device *pdev)
 		return PTR_ERR(host->regs);
 
 	host->irq = platform_get_irq(pdev, 0);
-	if (host->irq <= 0)
-		return -EINVAL;
+	if (host->irq < 0)
+		return host->irq;
 
 	cd_irq = platform_get_irq_optional(pdev, 1);
 	mmc_gpio_set_cd_irq(mmc, cd_irq);
drivers/mmc/host/mmci.c +2 -1
index b9e5dfe74e5c..1c326e4307f4 100644
@@ -1735,7 +1735,8 @@ static void mmci_set_max_busy_timeout(struct mmc_host *mmc)
 		return;
 
 	if (host->variant->busy_timeout && mmc->actual_clock)
-		max_busy_timeout = ~0UL / (mmc->actual_clock / MSEC_PER_SEC);
+		max_busy_timeout = U32_MAX / DIV_ROUND_UP(mmc->actual_clock,
+							  MSEC_PER_SEC);
 
 	mmc->max_busy_timeout = max_busy_timeout;
 }
drivers/mmc/host/mtk-sd.c +1 -1
index edade0e54a0c..9785ec91654f 100644
@@ -2680,7 +2680,7 @@ static int msdc_drv_probe(struct platform_device *pdev)
 
 	host->irq = platform_get_irq(pdev, 0);
 	if (host->irq < 0) {
-		ret = -EINVAL;
+		ret = host->irq;
 		goto host_free;
 	}
 
drivers/mmc/host/mvsdio.c +1 -1
index 629efbe639c4..b4f6a0a2fcb5 100644
@@ -704,7 +704,7 @@ static int mvsd_probe(struct platform_device *pdev)
 	}
 	irq = platform_get_irq(pdev, 0);
 	if (irq < 0)
-		return -ENXIO;
+		return irq;
 
 	mmc = mmc_alloc_host(sizeof(struct mvsd_host), &pdev->dev);
 	if (!mmc) {
drivers/mmc/host/omap.c +1 -1
index 57d39283924d..cc2213ea324f 100644
@@ -1343,7 +1343,7 @@ static int mmc_omap_probe(struct platform_device *pdev)
 
 	irq = platform_get_irq(pdev, 0);
 	if (irq < 0)
-		return -ENXIO;
+		return irq;
 
 	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 	host->virt_base = devm_ioremap_resource(&pdev->dev, res);
drivers/mmc/host/omap_hsmmc.c +4 -2
index 4bd744755205..2db3a16e63c4 100644
@@ -1791,9 +1791,11 @@ static int omap_hsmmc_probe(struct platform_device *pdev)
 	}
 
 	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	irq = platform_get_irq(pdev, 0);
-	if (res == NULL || irq < 0)
+	if (!res)
 		return -ENXIO;
+	irq = platform_get_irq(pdev, 0);
+	if (irq < 0)
+		return irq;
 
 	base = devm_ioremap_resource(&pdev->dev, res);
 	if (IS_ERR(base))
drivers/mmc/host/owl-mmc.c +1 -1
index 3dc143b03939..679b8b0b310e 100644
@@ -638,7 +638,7 @@ static int owl_mmc_probe(struct platform_device *pdev)
 
 	owl_host->irq = platform_get_irq(pdev, 0);
 	if (owl_host->irq < 0) {
-		ret = -EINVAL;
+		ret = owl_host->irq;
 		goto err_release_channel;
 	}
 
drivers/mmc/host/sdhci-acpi.c +1 -1
index 8f0e639236b1..edf2e6c14dc6 100644
@@ -829,7 +829,7 @@ static int sdhci_acpi_probe(struct platform_device *pdev)
 	host->ops	= &sdhci_acpi_ops_dflt;
 	host->irq	= platform_get_irq(pdev, 0);
 	if (host->irq < 0) {
-		err = -EINVAL;
+		err = host->irq;
 		goto err_free;
 	}
 
drivers/mmc/host/sdhci-msm.c +3 -0
index 8ac81d57a3df..1877d583fe8c 100644
@@ -2479,6 +2479,9 @@ static inline void sdhci_msm_get_of_property(struct platform_device *pdev,
 		msm_host->ddr_config = DDR_CONFIG_POR_VAL;
 
 	of_property_read_u32(node, "qcom,dll-config", &msm_host->dll_config);
+
+	if (of_device_is_compatible(node, "qcom,msm8916-sdhci"))
+		host->quirks2 |= SDHCI_QUIRK2_BROKEN_64_BIT_DMA;
 }
 
 static int sdhci_msm_gcc_reset(struct device *dev, struct sdhci_host *host)
drivers/mmc/host/sdhci-spear.c +2 -2
index d463e2fd5b1a..c79035727b20 100644
@@ -65,8 +65,8 @@ static int sdhci_probe(struct platform_device *pdev)
 	host->hw_name = "sdhci";
 	host->ops = &sdhci_pltfm_ops;
 	host->irq = platform_get_irq(pdev, 0);
-	if (host->irq <= 0) {
-		ret = -EINVAL;
+	if (host->irq < 0) {
+		ret = host->irq;
 		goto err_host;
 	}
 	host->quirks = SDHCI_QUIRK_BROKEN_ADMA;
drivers/mmc/host/sh_mmcif.c +1 -1
index 0fd4c9d644dd..5cf53348372a 100644
@@ -1400,7 +1400,7 @@ static int sh_mmcif_probe(struct platform_device *pdev)
 	irq[0] = platform_get_irq(pdev, 0);
 	irq[1] = platform_get_irq_optional(pdev, 1);
 	if (irq[0] < 0)
-		return -ENXIO;
+		return irq[0];
 
 	reg = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(reg))
drivers/mmc/host/sunxi-mmc.c +2 -2
index 3db9f32d6a7b..69dcb8805e05 100644
@@ -1350,8 +1350,8 @@ static int sunxi_mmc_resource_request(struct sunxi_mmc_host *host,
 		return ret;
 
 	host->irq = platform_get_irq(pdev, 0);
-	if (host->irq <= 0) {
-		ret = -EINVAL;
+	if (host->irq < 0) {
+		ret = host->irq;
 		goto error_disable_mmc;
 	}
 
drivers/mmc/host/usdhi6rol0.c +4 -2
index 99515be6e5e5..2032e4e1ee68 100644
@@ -1757,8 +1757,10 @@ static int usdhi6_probe(struct platform_device *pdev)
 	irq_cd = platform_get_irq_byname(pdev, "card detect");
 	irq_sd = platform_get_irq_byname(pdev, "data");
 	irq_sdio = platform_get_irq_byname(pdev, "SDIO");
-	if (irq_sd < 0 || irq_sdio < 0)
-		return -ENODEV;
+	if (irq_sd < 0)
+		return irq_sd;
+	if (irq_sdio < 0)
+		return irq_sdio;
 
 	mmc = mmc_alloc_host(sizeof(struct usdhi6_host), dev);
 	if (!mmc)
drivers/net/dsa/mt7530.c +32 -3
index 0c81f5830b90..566545b6554b 100644
@@ -419,6 +419,20 @@ static void mt7530_pll_setup(struct mt7530_priv *priv)
 	core_set(priv, CORE_TRGMII_GSW_CLK_CG, REG_GSWCK_EN);
 }
 
+/* If port 6 is available as a CPU port, always prefer that as the default,
+ * otherwise don't care.
+ */
+static struct dsa_port *
+mt753x_preferred_default_local_cpu_port(struct dsa_switch *ds)
+{
+	struct dsa_port *cpu_dp = dsa_to_port(ds, 6);
+
+	if (dsa_port_is_cpu(cpu_dp))
+		return cpu_dp;
+
+	return NULL;
+}
+
 /* Setup port 6 interface mode and TRGMII TX circuit */
 static int
 mt7530_pad_clk_setup(struct dsa_switch *ds, phy_interface_t interface)
@@ -991,6 +1005,18 @@ static void mt7530_setup_port5(struct dsa_switch *ds, phy_interface_t interface)
 	mutex_unlock(&priv->reg_mutex);
 }
 
+static void
+mt753x_trap_frames(struct mt7530_priv *priv)
+{
+	/* Trap BPDUs to the CPU port(s) */
+	mt7530_rmw(priv, MT753X_BPC, MT753X_BPDU_PORT_FW_MASK,
+		   MT753X_BPDU_CPU_ONLY);
+
+	/* Trap LLDP frames with :0E MAC DA to the CPU port(s) */
+	mt7530_rmw(priv, MT753X_RGAC2, MT753X_R0E_PORT_FW_MASK,
+		   MT753X_R0E_PORT_FW(MT753X_BPDU_CPU_ONLY));
+}
+
 static int
 mt753x_cpu_port_enable(struct dsa_switch *ds, int port)
 {
@@ -1013,7 +1039,7 @@ mt753x_cpu_port_enable(struct dsa_switch *ds, int port)
 		   UNU_FFP(BIT(port)));
 
 	/* Set CPU port number */
-	if (priv->id == ID_MT7621)
+	if (priv->id == ID_MT7530 || priv->id == ID_MT7621)
 		mt7530_rmw(priv, MT7530_MFC, CPU_MASK, CPU_EN | CPU_PORT(port));
 
 	/* CPU port gets connected to all user ports of
@@ -2214,6 +2240,8 @@ mt7530_setup(struct dsa_switch *ds)
 
 	priv->p6_interface = PHY_INTERFACE_MODE_NA;
 
+	mt753x_trap_frames(priv);
+
 	/* Enable and reset MIB counters */
 	mt7530_mib_reset(ds);
 
@@ -2320,8 +2348,8 @@ mt7531_setup_common(struct dsa_switch *ds)
 			   BIT(cpu_dp->index));
 		break;
 	}
-	mt7530_rmw(priv, MT753X_BPC, MT753X_BPDU_PORT_FW_MASK,
-		   MT753X_BPDU_CPU_ONLY);
+
+	mt753x_trap_frames(priv);
 
 	/* Enable and reset MIB counters */
 	mt7530_mib_reset(ds);
@@ -3177,6 +3205,7 @@ static int mt753x_set_mac_eee(struct dsa_switch *ds, int port,
 static const struct dsa_switch_ops mt7530_switch_ops = {
 	.get_tag_protocol	= mtk_get_tag_protocol,
 	.setup			= mt753x_setup,
+	.preferred_default_local_cpu_port = mt753x_preferred_default_local_cpu_port,
 	.get_strings		= mt7530_get_strings,
 	.get_ethtool_stats	= mt7530_get_ethtool_stats,
 	.get_sset_count		= mt7530_get_sset_count,
drivers/net/dsa/mt7530.h +5 -0
index 6b2fc6290ea8..31c0f7156b69 100644
@@ -65,6 +65,11 @@ enum mt753x_id {
 #define MT753X_BPC			0x24
 #define  MT753X_BPDU_PORT_FW_MASK	GENMASK(2, 0)
 
+/* Register for :03 and :0E MAC DA frame control */
+#define MT753X_RGAC2			0x2c
+#define  MT753X_R0E_PORT_FW_MASK	GENMASK(18, 16)
+#define  MT753X_R0E_PORT_FW(x)		FIELD_PREP(MT753X_R0E_PORT_FW_MASK, x)
+
 enum mt753x_bpdu_port_fw {
 	MT753X_BPDU_FOLLOW_MFC,
 	MT753X_BPDU_CPU_EXCLUDE = 4,
drivers/net/ethernet/emulex/benet/be_main.c +2 -2
index 46fe3d74e2e9..7236c4f70cf5 100644
@@ -1136,8 +1136,8 @@ static struct sk_buff *be_lancer_xmit_workarounds(struct be_adapter *adapter,
 	eth_hdr_len = ntohs(skb->protocol) == ETH_P_8021Q ?
 						VLAN_ETH_HLEN : ETH_HLEN;
 	if (skb->len <= 60 &&
-	    (lancer_chip(adapter) || skb_vlan_tag_present(skb)) &&
-	    is_ipv4_pkt(skb)) {
+	    (lancer_chip(adapter) || BE3_chip(adapter) ||
+	     skb_vlan_tag_present(skb)) && is_ipv4_pkt(skb)) {
 		ip = (struct iphdr *)ip_hdr(skb);
 		pskb_trim(skb, eth_hdr_len + ntohs(ip->tot_len));
 	}
drivers/net/ethernet/mellanox/mlx5/core/steering/dr_action.c +8 -1
index ee104cf04392..438c3bfae762 100644
@@ -1403,9 +1403,13 @@ dr_action_create_reformat_action(struct mlx5dr_domain *dmn,
 	}
 	case DR_ACTION_TYP_TNL_L3_TO_L2:
 	{
-		u8 hw_actions[ACTION_CACHE_LINE_SIZE] = {};
+		u8 *hw_actions;
 		int ret;
 
+		hw_actions = kzalloc(ACTION_CACHE_LINE_SIZE, GFP_KERNEL);
+		if (!hw_actions)
+			return -ENOMEM;
+
 		ret = mlx5dr_ste_set_action_decap_l3_list(dmn->ste_ctx,
 							  data, data_sz,
 							  hw_actions,
@@ -1413,6 +1417,7 @@ dr_action_create_reformat_action(struct mlx5dr_domain *dmn,
 							  &action->rewrite->num_of_actions);
 		if (ret) {
 			mlx5dr_dbg(dmn, "Failed creating decap l3 action list\n");
+			kfree(hw_actions);
 			return ret;
 		}
 
@@ -1420,6 +1425,7 @@ dr_action_create_reformat_action(struct mlx5dr_domain *dmn,
 								DR_CHUNK_SIZE_8);
 		if (!action->rewrite->chunk) {
 			mlx5dr_dbg(dmn, "Failed allocating modify header chunk\n");
+			kfree(hw_actions);
 			return -ENOMEM;
 		}
 
@@ -1433,6 +1439,7 @@ dr_action_create_reformat_action(struct mlx5dr_domain *dmn,
 		if (ret) {
 			mlx5dr_dbg(dmn, "Writing decap l3 actions to ICM failed\n");
 			mlx5dr_icm_free_chunk(action->rewrite->chunk);
+			kfree(hw_actions);
 			return ret;
 		}
 		return 0;
drivers/net/ethernet/qualcomm/qca_spi.c +1 -2
index c865a4be05ee..4a1b94e5a8ea 100644
@@ -582,8 +582,7 @@ qcaspi_spi_thread(void *data)
 	while (!kthread_should_stop()) {
 		set_current_state(TASK_INTERRUPTIBLE);
 		if ((qca->intr_req == qca->intr_svc) &&
-		    (qca->txr.skb[qca->txr.head] == NULL) &&
-		    (qca->sync == QCASPI_SYNC_READY))
+		    !qca->txr.skb[qca->txr.head])
 			schedule();
 
 		set_current_state(TASK_RUNNING);
drivers/net/ethernet/sfc/ef10.c +18 -7
index d30459dbfe8f..b63e47af6365 100644
@@ -2950,7 +2950,7 @@ static u32 efx_ef10_extract_event_ts(efx_qword_t *event)
 	return tstamp;
 }
 
-static void
+static int
 efx_ef10_handle_tx_event(struct efx_channel *channel, efx_qword_t *event)
 {
 	struct efx_nic *efx = channel->efx;
@@ -2958,13 +2958,14 @@ efx_ef10_handle_tx_event(struct efx_channel *channel, efx_qword_t *event)
 	unsigned int tx_ev_desc_ptr;
 	unsigned int tx_ev_q_label;
 	unsigned int tx_ev_type;
+	int work_done;
 	u64 ts_part;
 
 	if (unlikely(READ_ONCE(efx->reset_pending)))
-		return;
+		return 0;
 
 	if (unlikely(EFX_QWORD_FIELD(*event, ESF_DZ_TX_DROP_EVENT)))
-		return;
+		return 0;
 
 	/* Get the transmit queue */
 	tx_ev_q_label = EFX_QWORD_FIELD(*event, ESF_DZ_TX_QLABEL);
@@ -2973,8 +2974,7 @@ efx_ef10_handle_tx_event(struct efx_channel *channel, efx_qword_t *event)
 	if (!tx_queue->timestamping) {
 		/* Transmit completion */
 		tx_ev_desc_ptr = EFX_QWORD_FIELD(*event, ESF_DZ_TX_DESCR_INDX);
-		efx_xmit_done(tx_queue, tx_ev_desc_ptr & tx_queue->ptr_mask);
-		return;
+		return efx_xmit_done(tx_queue, tx_ev_desc_ptr & tx_queue->ptr_mask);
 	}
 
 	/* Transmit timestamps are only available for 8XXX series. They result
@@ -3000,6 +3000,7 @@ efx_ef10_handle_tx_event(struct efx_channel *channel, efx_qword_t *event)
 	 * fields in the event.
 	 */
 	tx_ev_type = EFX_QWORD_FIELD(*event, ESF_EZ_TX_SOFT1);
+	work_done = 0;
 
 	switch (tx_ev_type) {
 	case TX_TIMESTAMP_EVENT_TX_EV_COMPLETION:
@@ -3016,6 +3017,7 @@ efx_ef10_handle_tx_event(struct efx_channel *channel, efx_qword_t *event)
 		tx_queue->completed_timestamp_major = ts_part;
 
 		efx_xmit_done_single(tx_queue);
+		work_done = 1;
 		break;
 
 	default:
@@ -3026,6 +3028,8 @@ efx_ef10_handle_tx_event(struct efx_channel *channel, efx_qword_t *event)
 			  EFX_QWORD_VAL(*event));
 		break;
 	}
+
+	return work_done;
 }
 
 static void
@@ -3081,13 +3085,16 @@ static void efx_ef10_handle_driver_generated_event(struct efx_channel *channel,
 	}
 }
 
+#define EFX_NAPI_MAX_TX 512
+
 static int efx_ef10_ev_process(struct efx_channel *channel, int quota)
 {
 	struct efx_nic *efx = channel->efx;
 	efx_qword_t event, *p_event;
 	unsigned int read_ptr;
-	int ev_code;
+	int spent_tx = 0;
 	int spent = 0;
+	int ev_code;
 
 	if (quota <= 0)
 		return spent;
@@ -3126,7 +3133,11 @@ static int efx_ef10_ev_process(struct efx_channel *channel, int quota)
 			}
 			break;
 		case ESE_DZ_EV_CODE_TX_EV:
-			efx_ef10_handle_tx_event(channel, &event);
+			spent_tx += efx_ef10_handle_tx_event(channel, &event);
+			if (spent_tx >= EFX_NAPI_MAX_TX) {
+				spent = quota;
+				goto out;
+			}
 			break;
 		case ESE_DZ_EV_CODE_DRIVER_EV:
 			efx_ef10_handle_driver_event(channel, &event);
drivers/net/ethernet/sfc/ef100_nic.c +6 -1
index 4dc643b0d2db..7adde9639c8a 100644
@@ -253,6 +253,8 @@ static void ef100_ev_read_ack(struct efx_channel *channel)
 		   efx_reg(channel->efx, ER_GZ_EVQ_INT_PRIME));
 }
 
+#define EFX_NAPI_MAX_TX 512
+
 static int ef100_ev_process(struct efx_channel *channel, int quota)
 {
 	struct efx_nic *efx = channel->efx;
@@ -260,6 +262,7 @@ static int ef100_ev_process(struct efx_channel *channel, int quota)
 	bool evq_phase, old_evq_phase;
 	unsigned int read_ptr;
 	efx_qword_t *p_event;
+	int spent_tx = 0;
 	int spent = 0;
 	bool ev_phase;
 	int ev_type;
@@ -295,7 +298,9 @@ static int ef100_ev_process(struct efx_channel *channel, int quota)
 			efx_mcdi_process_event(channel, p_event);
 			break;
 		case ESE_GZ_EF100_EV_TX_COMPLETION:
-			ef100_ev_tx(channel, p_event);
+			spent_tx += ef100_ev_tx(channel, p_event);
+			if (spent_tx >= EFX_NAPI_MAX_TX)
+				spent = quota;
 			break;
 		case ESE_GZ_EF100_EV_DRIVER:
 			netif_info(efx, drv, efx->net_dev,
drivers/net/ethernet/sfc/ef100_tx.c +2 -2
index 29ffaf35559d..849e5555bd12 100644
@@ -346,7 +346,7 @@ void ef100_tx_write(struct efx_tx_queue *tx_queue)
 	ef100_tx_push_buffers(tx_queue);
 }
 
-void ef100_ev_tx(struct efx_channel *channel, const efx_qword_t *p_event)
+int ef100_ev_tx(struct efx_channel *channel, const efx_qword_t *p_event)
 {
 	unsigned int tx_done =
 		EFX_QWORD_FIELD(*p_event, ESF_GZ_EV_TXCMPL_NUM_DESC);
@@ -357,7 +357,7 @@ void ef100_ev_tx(struct efx_channel *channel, const efx_qword_t *p_event)
 	unsigned int tx_index = (tx_queue->read_count + tx_done - 1) &
 				tx_queue->ptr_mask;
 
-	efx_xmit_done(tx_queue, tx_index);
+	return efx_xmit_done(tx_queue, tx_index);
 }
 
 /* Add a socket buffer to a TX queue
drivers/net/ethernet/sfc/ef100_tx.h +1 -1
index e9e11540fcde..d9a0819c5a72 100644
@@ -20,7 +20,7 @@ void ef100_tx_init(struct efx_tx_queue *tx_queue);
 void ef100_tx_write(struct efx_tx_queue *tx_queue);
 unsigned int ef100_tx_max_skb_descs(struct efx_nic *efx);
 
-void ef100_ev_tx(struct efx_channel *channel, const efx_qword_t *p_event);
+int ef100_ev_tx(struct efx_channel *channel, const efx_qword_t *p_event);
 
 netdev_tx_t ef100_enqueue_skb(struct efx_tx_queue *tx_queue, struct sk_buff *skb);
 int __ef100_enqueue_skb(struct efx_tx_queue *tx_queue, struct sk_buff *skb,
drivers/net/ethernet/sfc/tx_common.c +3 -1
index 67e789b96c43..755aa92bf823 100644
@@ -249,7 +249,7 @@ void efx_xmit_done_check_empty(struct efx_tx_queue *tx_queue)
 	}
 }
 
-void efx_xmit_done(struct efx_tx_queue *tx_queue, unsigned int index)
+int efx_xmit_done(struct efx_tx_queue *tx_queue, unsigned int index)
 {
 	unsigned int fill_level, pkts_compl = 0, bytes_compl = 0;
 	unsigned int efv_pkts_compl = 0;
@@ -279,6 +279,8 @@ void efx_xmit_done(struct efx_tx_queue *tx_queue, unsigned int index)
 	}
 
 	efx_xmit_done_check_empty(tx_queue);
+
+	return pkts_compl + efv_pkts_compl;
 }
 
 /* Remove buffers put into a tx_queue for the current packet.
drivers/net/ethernet/sfc/tx_common.h +1 -1
index d87aecbc7bf1..1e9f42938aac 100644
@@ -28,7 +28,7 @@ static inline bool efx_tx_buffer_in_use(struct efx_tx_buffer *buffer)
 }
 
 void efx_xmit_done_check_empty(struct efx_tx_queue *tx_queue);
-void efx_xmit_done(struct efx_tx_queue *tx_queue, unsigned int index);
+int efx_xmit_done(struct efx_tx_queue *tx_queue, unsigned int index);
 
 void efx_enqueue_unwind(struct efx_tx_queue *tx_queue,
 			unsigned int insert_count);
drivers/net/ieee802154/mac802154_hwsim.c +4 -2
index 8445c2189d11..31cba9aa7636 100644
@@ -685,7 +685,7 @@ static int hwsim_del_edge_nl(struct sk_buff *msg, struct genl_info *info)
 static int hwsim_set_edge_lqi(struct sk_buff *msg, struct genl_info *info)
 {
 	struct nlattr *edge_attrs[MAC802154_HWSIM_EDGE_ATTR_MAX + 1];
-	struct hwsim_edge_info *einfo;
+	struct hwsim_edge_info *einfo, *einfo_old;
 	struct hwsim_phy *phy_v0;
 	struct hwsim_edge *e;
 	u32 v0, v1;
@@ -723,8 +723,10 @@ static int hwsim_set_edge_lqi(struct sk_buff *msg, struct genl_info *info)
 	list_for_each_entry_rcu(e, &phy_v0->edges, list) {
 		if (e->endpoint->idx == v1) {
 			einfo->lqi = lqi;
-			rcu_assign_pointer(e->info, einfo);
+			einfo_old = rcu_replace_pointer(e->info, einfo,
+							lockdep_is_held(&hwsim_phys_lock));
 			rcu_read_unlock();
+			kfree_rcu(einfo_old, rcu);
 			mutex_unlock(&hwsim_phys_lock);
 			return 0;
 		}
drivers/net/phy/dp83867.c +1 -1
index 9f7ff8820048..76fe7e7d9ac9 100644
@@ -905,7 +905,7 @@ static int dp83867_phy_reset(struct phy_device *phydev)
 {
 	int err;
 
-	err = phy_write(phydev, DP83867_CTRL, DP83867_SW_RESTART);
+	err = phy_write(phydev, DP83867_CTRL, DP83867_SW_RESET);
 	if (err < 0)
 		return err;
 
drivers/net/phy/mdio_bus.c +1 -1
index 389f33a12534..8b3618d3da4a 100644
@@ -1287,7 +1287,7 @@ EXPORT_SYMBOL_GPL(mdiobus_modify_changed);
  * @mask: bit mask of bits to clear
  * @set: bit mask of bits to set
  */
-int mdiobus_c45_modify_changed(struct mii_bus *bus, int devad, int addr,
+int mdiobus_c45_modify_changed(struct mii_bus *bus, int addr, int devad,
 			       u32 regnum, u16 mask, u16 set)
 {
 	int err;
drivers/net/wireless/intel/iwlwifi/pcie/drv.c +2 -0
index 25b2d41de4c1..3a6a7d62e883 100644
@@ -547,6 +547,8 @@ static const struct iwl_dev_info iwl_dev_info_table[] = {
 	IWL_DEV_INFO(0x54F0, 0x1692, iwlax411_2ax_cfg_so_gf4_a0, iwl_ax411_killer_1690i_name),
 	IWL_DEV_INFO(0x7A70, 0x1691, iwlax411_2ax_cfg_so_gf4_a0, iwl_ax411_killer_1690s_name),
 	IWL_DEV_INFO(0x7A70, 0x1692, iwlax411_2ax_cfg_so_gf4_a0, iwl_ax411_killer_1690i_name),
+	IWL_DEV_INFO(0x7AF0, 0x1691, iwlax411_2ax_cfg_so_gf4_a0, iwl_ax411_killer_1690s_name),
+	IWL_DEV_INFO(0x7AF0, 0x1692, iwlax411_2ax_cfg_so_gf4_a0, iwl_ax411_killer_1690i_name),
 
 	IWL_DEV_INFO(0x271C, 0x0214, iwl9260_2ac_cfg, iwl9260_1_name),
 	IWL_DEV_INFO(0x7E40, 0x1691, iwl_cfg_ma_a0_gf4_a0, iwl_ax411_killer_1690s_name),
drivers/nfc/nfcsim.c +0 -4
index 85bf8d586c70..0f6befe8be1e 100644
@@ -336,10 +336,6 @@ static struct dentry *nfcsim_debugfs_root;
 static void nfcsim_debugfs_init(void)
 {
 	nfcsim_debugfs_root = debugfs_create_dir("nfcsim", NULL);
-
-	if (!nfcsim_debugfs_root)
-		pr_err("Could not create debugfs entry\n");
-
 }
 
 static void nfcsim_debugfs_remove(void)
drivers/nvme/host/core.c +48 -4

102 lines not on this page · raw message

drivers/nvme/host/ioctl.c +1 -1
index d24ea2e05156..0264ec74a436 100644
@@ -254,7 +254,7 @@ static int nvme_submit_user_cmd(struct request_queue *q,
 	blk_mq_free_request(req);
 
 	if (effects)
-		nvme_passthru_end(ctrl, effects, cmd, ret);
+		nvme_passthru_end(ctrl, ns, effects, cmd, ret);
 
 	return ret;
 }
drivers/nvme/host/nvme.h +2 -1
index a2d4f59e0535..8657811f8b88 100644
@@ -328,6 +328,7 @@ struct nvme_ctrl {
 	struct delayed_work ka_work;
 	struct delayed_work failfast_work;
 	struct nvme_command ka_cmd;
+	unsigned long ka_last_check_time;
 	struct work_struct fw_act_work;
 	unsigned long events;
 
@@ -1077,7 +1078,7 @@ u32 nvme_command_effects(struct nvme_ctrl *ctrl, struct nvme_ns *ns,
 			 u8 opcode);
 u32 nvme_passthru_start(struct nvme_ctrl *ctrl, struct nvme_ns *ns, u8 opcode);
 int nvme_execute_rq(struct request *rq, bool at_head);
-void nvme_passthru_end(struct nvme_ctrl *ctrl, u32 effects,
+void nvme_passthru_end(struct nvme_ctrl *ctrl, struct nvme_ns *ns, u32 effects,
 		       struct nvme_command *cmd, int status);
 struct nvme_ctrl *nvme_ctrl_from_file(struct file *file);
 struct nvme_ns *nvme_find_get_ns(struct nvme_ctrl *ctrl, unsigned nsid);
drivers/nvme/target/passthru.c +1 -1
index 511c980d538d..71a9c1cc57f5 100644
@@ -243,7 +243,7 @@ static void nvmet_passthru_execute_cmd_work(struct work_struct *w)
 	blk_mq_free_request(rq);
 
 	if (effects)
-		nvme_passthru_end(ctrl, effects, req->cmd, status);
+		nvme_passthru_end(ctrl, ns, effects, req->cmd, status);
 }
 
 static enum rq_end_io_ret nvmet_passthru_req_done(struct request *rq,
drivers/pci/controller/pci-hyperv.c +82 -57

272 lines not on this page · raw message

drivers/platform/x86/amd/pmf/core.c +5 -5
index dc9803e1a4b9..73d2357e32f8 100644
@@ -297,6 +297,8 @@ static void amd_pmf_init_features(struct amd_pmf_dev *dev)
 	/* Enable Static Slider */
 	if (is_apmf_func_supported(dev, APMF_FUNC_STATIC_SLIDER_GRANULAR)) {
 		amd_pmf_init_sps(dev);
+		dev->pwr_src_notifier.notifier_call = amd_pmf_pwr_src_notify_call;
+		power_supply_reg_notifier(&dev->pwr_src_notifier);
 		dev_dbg(dev->dev, "SPS enabled and Platform Profiles registered\n");
 	}
 
@@ -315,8 +317,10 @@ static void amd_pmf_init_features(struct amd_pmf_dev *dev)
 
 static void amd_pmf_deinit_features(struct amd_pmf_dev *dev)
 {
-	if (is_apmf_func_supported(dev, APMF_FUNC_STATIC_SLIDER_GRANULAR))
+	if (is_apmf_func_supported(dev, APMF_FUNC_STATIC_SLIDER_GRANULAR)) {
+		power_supply_unreg_notifier(&dev->pwr_src_notifier);
 		amd_pmf_deinit_sps(dev);
+	}
 
 	if (is_apmf_func_supported(dev, APMF_FUNC_AUTO_MODE)) {
 		amd_pmf_deinit_auto_mode(dev);
@@ -399,9 +403,6 @@ static int amd_pmf_probe(struct platform_device *pdev)
 	apmf_install_handler(dev);
 	amd_pmf_dbgfs_register(dev);
 
-	dev->pwr_src_notifier.notifier_call = amd_pmf_pwr_src_notify_call;
-	power_supply_reg_notifier(&dev->pwr_src_notifier);
-
 	dev_info(dev->dev, "registered PMF device successfully\n");
 
 	return 0;
@@ -411,7 +412,6 @@ static int amd_pmf_remove(struct platform_device *pdev)
 {
 	struct amd_pmf_dev *dev = platform_get_drvdata(pdev);
 
-	power_supply_unreg_notifier(&dev->pwr_src_notifier);
 	amd_pmf_deinit_features(dev);
 	apmf_acpi_deinit(dev);
 	amd_pmf_dbgfs_unregister(dev);
drivers/platform/x86/intel/int3472/clk_and_regulator.c +8 -5
index 1086c3d83494..399f0623ca1b 100644
@@ -101,9 +101,11 @@ int skl_int3472_register_clock(struct int3472_discrete_device *int3472,
 
 	int3472->clock.ena_gpio = acpi_get_and_request_gpiod(path, agpio->pin_table[0],
 							     "int3472,clk-enable");
-	if (IS_ERR(int3472->clock.ena_gpio))
-		return dev_err_probe(int3472->dev, PTR_ERR(int3472->clock.ena_gpio),
-				     "getting clk-enable GPIO\n");
+	if (IS_ERR(int3472->clock.ena_gpio)) {
+		ret = PTR_ERR(int3472->clock.ena_gpio);
+		int3472->clock.ena_gpio = NULL;
+		return dev_err_probe(int3472->dev, ret, "getting clk-enable GPIO\n");
+	}
 
 	if (polarity == GPIO_ACTIVE_LOW)
 		gpiod_toggle_active_low(int3472->clock.ena_gpio);
@@ -199,8 +201,9 @@ int skl_int3472_register_regulator(struct int3472_discrete_device *int3472,
 	int3472->regulator.gpio = acpi_get_and_request_gpiod(path, agpio->pin_table[0],
 							     "int3472,regulator");
 	if (IS_ERR(int3472->regulator.gpio)) {
-		dev_err(int3472->dev, "Failed to get regulator GPIO line\n");
-		return PTR_ERR(int3472->regulator.gpio);
+		ret = PTR_ERR(int3472->regulator.gpio);
+		int3472->regulator.gpio = NULL;
+		return dev_err_probe(int3472->dev, ret, "getting regulator GPIO\n");
 	}
 
 	/* Ensure the pin is in output mode and non-active state */
drivers/s390/cio/device.c +4 -1
index d5c43e9b5128..c0d620ffea61 100644
@@ -1376,6 +1376,7 @@ void ccw_device_set_notoper(struct ccw_device *cdev)
 enum io_sch_action {
 	IO_SCH_UNREG,
 	IO_SCH_ORPH_UNREG,
+	IO_SCH_UNREG_CDEV,
 	IO_SCH_ATTACH,
 	IO_SCH_UNREG_ATTACH,
 	IO_SCH_ORPH_ATTACH,
@@ -1408,7 +1409,7 @@ static enum io_sch_action sch_get_action(struct subchannel *sch)
 	}
 	if ((sch->schib.pmcw.pam & sch->opm) == 0) {
 		if (ccw_device_notify(cdev, CIO_NO_PATH) != NOTIFY_OK)
-			return IO_SCH_UNREG;
+			return IO_SCH_UNREG_CDEV;
 		return IO_SCH_DISC;
 	}
 	if (device_is_disconnected(cdev))
@@ -1470,6 +1471,7 @@ static int io_subchannel_sch_event(struct subchannel *sch, int process)
 	case IO_SCH_ORPH_ATTACH:
 		ccw_device_set_disconnected(cdev);
 		break;
+	case IO_SCH_UNREG_CDEV:
 	case IO_SCH_UNREG_ATTACH:
 	case IO_SCH_UNREG:
 		if (!cdev)
@@ -1503,6 +1505,7 @@ static int io_subchannel_sch_event(struct subchannel *sch, int process)
 		if (rc)
 			goto out;
 		break;
+	case IO_SCH_UNREG_CDEV:
 	case IO_SCH_UNREG_ATTACH:
 		spin_lock_irqsave(sch->lock, flags);
 		sch_set_cdev(sch, NULL);
drivers/soundwire/dmi-quirks.c +7 -0
index 58ea013fa918..2a1096dab63d 100644
@@ -99,6 +99,13 @@ static const struct dmi_system_id adr_remap_quirk_table[] = {
 		},
 		.driver_data = (void *)intel_tgl_bios,
 	},
+	{
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "HP"),
+			DMI_MATCH(DMI_BOARD_NAME, "8709"),
+		},
+		.driver_data = (void *)intel_tgl_bios,
+	},
 	{
 		/* quirk used for NUC15 'Bishop County' LAPBC510 and LAPBC710 skews */
 		.matches = {
drivers/soundwire/qcom.c +13 -4
index 30575ed20947..0dcdbd4e1ec3 100644
@@ -1098,8 +1098,10 @@ static int qcom_swrm_startup(struct snd_pcm_substream *substream,
 	}
 
 	sruntime = sdw_alloc_stream(dai->name);
-	if (!sruntime)
-		return -ENOMEM;
+	if (!sruntime) {
+		ret = -ENOMEM;
+		goto err_alloc;
+	}
 
 	ctrl->sruntime[dai->id] = sruntime;
 
@@ -1109,12 +1111,19 @@ static int qcom_swrm_startup(struct snd_pcm_substream *substream,
 		if (ret < 0 && ret != -ENOTSUPP) {
 			dev_err(dai->dev, "Failed to set sdw stream on %s\n",
 				codec_dai->name);
-			sdw_release_stream(sruntime);
-			return ret;
+			goto err_set_stream;
 		}
 	}
 
 	return 0;
+
+err_set_stream:
+	sdw_release_stream(sruntime);
+err_alloc:
+	pm_runtime_mark_last_busy(ctrl->dev);
+	pm_runtime_put_autosuspend(ctrl->dev);
+
+	return ret;
 }
 
 static void qcom_swrm_shutdown(struct snd_pcm_substream *substream,
drivers/spi/spi-fsl-lpspi.c +6 -1
index 34488de55587..457fe6bc7e41 100644
@@ -910,9 +910,14 @@ static int fsl_lpspi_probe(struct platform_device *pdev)
 	ret = fsl_lpspi_dma_init(&pdev->dev, fsl_lpspi, controller);
 	if (ret == -EPROBE_DEFER)
 		goto out_pm_get;
-
 	if (ret < 0)
 		dev_err(&pdev->dev, "dma setup error %d, use pio\n", ret);
+	else
+		/*
+		 * disable LPSPI module IRQ when enable DMA mode successfully,
+		 * to prevent the unexpected LPSPI module IRQ events.
+		 */
+		disable_irq(irq);
 
 	ret = devm_spi_register_controller(&pdev->dev, controller);
 	if (ret < 0) {
drivers/spi/spi-geni-qcom.c +2 -0
index b106faf21a72..baf477383682 100644
@@ -646,6 +646,8 @@ static int spi_geni_init(struct spi_geni_master *mas)
 			geni_se_select_mode(se, GENI_GPI_DMA);
 			dev_dbg(mas->dev, "Using GPI DMA mode for SPI\n");
 			break;
+		} else if (ret == -EPROBE_DEFER) {
+			goto out_pm;
 		}
 		/*
 		 * in case of failure to get gpi dma channel, we can still do the
drivers/target/iscsi/iscsi_target.c +0 -2
index 07e196b44b91..c70ce1fa399f 100644
@@ -363,8 +363,6 @@ struct iscsi_np *iscsit_add_np(
 	init_completion(&np->np_restart_comp);
 	INIT_LIST_HEAD(&np->np_list);
 
-	timer_setup(&np->np_login_timer, iscsi_handle_login_thread_timeout, 0);
-
 	ret = iscsi_target_setup_login_socket(np, sockaddr);
 	if (ret != 0) {
 		kfree(np);
drivers/target/iscsi/iscsi_target_login.c +5 -58

103 lines not on this page · raw message

drivers/target/iscsi/iscsi_target_nego.c +42 -32

147 lines not on this page · raw message

drivers/target/iscsi/iscsi_target_util.c +51 -0

57 lines not on this page · raw message

drivers/target/iscsi/iscsi_target_util.h +4 -0
index 33ea799a0850..24b8e577575a 100644
@@ -56,6 +56,10 @@ extern void iscsit_handle_nopin_timeout(struct timer_list *t);
 extern void __iscsit_start_nopin_timer(struct iscsit_conn *);
 extern void iscsit_start_nopin_timer(struct iscsit_conn *);
 extern void iscsit_stop_nopin_timer(struct iscsit_conn *);
+extern void iscsit_login_timeout(struct timer_list *t);
+extern void iscsit_start_login_timer(struct iscsit_conn *, struct task_struct *kthr);
+extern void iscsit_stop_login_timer(struct iscsit_conn *);
+extern int iscsit_set_login_timer_kworker(struct iscsit_conn *, struct task_struct *kthr);
 extern int iscsit_send_tx_data(struct iscsit_cmd *, struct iscsit_conn *, int);
 extern int iscsit_fe_sendpage_sg(struct iscsit_cmd *, struct iscsit_conn *);
 extern int iscsit_tx_login_rsp(struct iscsit_conn *, u8, u8);
drivers/thermal/intel/intel_soc_dts_iosf.c +1 -1
index 8c26f7b2316b..99b3c2ce4643 100644
@@ -401,7 +401,7 @@ struct intel_soc_dts_sensors *intel_soc_dts_iosf_init(
 	spin_lock_init(&sensors->intr_notify_lock);
 	mutex_init(&sensors->dts_update_lock);
 	sensors->intr_type = intr_type;
-	sensors->tj_max = tj_max;
+	sensors->tj_max = tj_max * 1000;
 	if (intr_type == INTEL_SOC_DTS_INTERRUPT_NONE)
 		notification = false;
 	else
drivers/usb/gadget/udc/amd5536udc_pci.c +3 -0
index c80f9bd51b75..a36913ae31f9 100644
@@ -170,6 +170,9 @@ static int udc_pci_probe(
 		retval = -ENODEV;
 		goto err_probe;
 	}
+
+	udc = dev;
+
 	return 0;
 
 err_probe:
drivers/vhost/net.c +8 -3
index 07181cd8d52e..ae2273196b0c 100644
@@ -935,13 +935,18 @@ static void handle_tx_zerocopy(struct vhost_net *net, struct socket *sock)
 
 		err = sock->ops->sendmsg(sock, &msg, len);
 		if (unlikely(err < 0)) {
+			bool retry = err == -EAGAIN || err == -ENOMEM || err == -ENOBUFS;
+
 			if (zcopy_used) {
 				if (vq->heads[ubuf->desc].len == VHOST_DMA_IN_PROGRESS)
 					vhost_net_ubuf_put(ubufs);
-				nvq->upend_idx = ((unsigned)nvq->upend_idx - 1)
-					% UIO_MAXIOV;
+				if (retry)
+					nvq->upend_idx = ((unsigned)nvq->upend_idx - 1)
+						% UIO_MAXIOV;
+				else
+					vq->heads[ubuf->desc].len = VHOST_DMA_DONE_LEN;
 			}
-			if (err == -EAGAIN || err == -ENOMEM || err == -ENOBUFS) {
+			if (retry) {
 				vhost_discard_vq_desc(vq, 1);
 				vhost_net_enable_vq(net, vq);
 				break;
drivers/vhost/vdpa.c +13 -0
index 779fc4467716..22e6b23ac96f 100644
@@ -385,7 +385,10 @@ static long vhost_vdpa_set_features(struct vhost_vdpa *v, u64 __user *featurep)
 {
 	struct vdpa_device *vdpa = v->vdpa;
 	const struct vdpa_config_ops *ops = vdpa->config;
+	struct vhost_dev *d = &v->vdev;
+	u64 actual_features;
 	u64 features;
+	int i;
 
 	/*
 	 * It's not allowed to change the features after they have
@@ -400,6 +403,16 @@ static long vhost_vdpa_set_features(struct vhost_vdpa *v, u64 __user *featurep)
 	if (vdpa_set_features(vdpa, features))
 		return -EINVAL;
 
+	/* let the vqs know what has been configured */
+	actual_features = ops->get_driver_features(vdpa);
+	for (i = 0; i < d->nvqs; ++i) {
+		struct vhost_virtqueue *vq = d->vqs[i];
+
+		mutex_lock(&vq->mutex);
+		vq->acked_features = actual_features;
+		mutex_unlock(&vq->mutex);
+	}
+
 	return 0;
 }
 
fs/afs/write.c +5 -2
index 571f3b9a417e..ad46f4b3c0c8 100644
@@ -731,6 +731,7 @@ static int afs_writepages_region(struct address_space *mapping,
 			 * (changing page->mapping to NULL), or even swizzled
 			 * back from swapper_space to tmpfs file mapping
 			 */
+try_again:
 			if (wbc->sync_mode != WB_SYNC_NONE) {
 				ret = folio_lock_killable(folio);
 				if (ret < 0) {
@@ -757,12 +758,14 @@ static int afs_writepages_region(struct address_space *mapping,
 #ifdef CONFIG_AFS_FSCACHE
 					folio_wait_fscache(folio);
 #endif
-				} else {
-					start += folio_size(folio);
+					goto try_again;
 				}
+
+				start += folio_size(folio);
 				if (wbc->sync_mode == WB_SYNC_NONE) {
 					if (skips >= 5 || need_resched()) {
 						*_next = start;
+						folio_batch_release(&fbatch);
 						_leave(" = 0 [%llx]", *_next);
 						return 0;
 					}
fs/btrfs/tree-log.c +1 -1
index 200cea6e49e5..b91fa398b814 100644
@@ -6163,7 +6163,7 @@ static int log_delayed_deletions_incremental(struct btrfs_trans_handle *trans,
 {
 	struct btrfs_root *log = inode->root->log_root;
 	const struct btrfs_delayed_item *curr;
-	u64 last_range_start;
+	u64 last_range_start = 0;
 	u64 last_range_end = 0;
 	struct btrfs_key key;
 
fs/cifs/connect.c +5 -4
index 8e9a672320ab..1250d156619b 100644
@@ -4086,16 +4086,17 @@ int cifs_tree_connect(const unsigned int xid, struct cifs_tcon *tcon, const stru
 
 	/* only send once per connect */
 	spin_lock(&tcon->tc_lock);
+	if (tcon->status == TID_GOOD) {
+		spin_unlock(&tcon->tc_lock);
+		return 0;
+	}
+
 	if (tcon->status != TID_NEW &&
 	    tcon->status != TID_NEED_TCON) {
 		spin_unlock(&tcon->tc_lock);
 		return -EHOSTDOWN;
 	}
 
-	if (tcon->status == TID_GOOD) {
-		spin_unlock(&tcon->tc_lock);
-		return 0;
-	}
 	tcon->status = TID_IN_TCON;
 	spin_unlock(&tcon->tc_lock);
 
fs/cifs/dfs.c +5 -4
index 2f93bf8c3325..2390b2fedd6a 100644
@@ -575,16 +575,17 @@ int cifs_tree_connect(const unsigned int xid, struct cifs_tcon *tcon, const stru
 
 	/* only send once per connect */
 	spin_lock(&tcon->tc_lock);
+	if (tcon->status == TID_GOOD) {
+		spin_unlock(&tcon->tc_lock);
+		return 0;
+	}
+
 	if (tcon->status != TID_NEW &&
 	    tcon->status != TID_NEED_TCON) {
 		spin_unlock(&tcon->tc_lock);
 		return -EHOSTDOWN;
 	}
 
-	if (tcon->status == TID_GOOD) {
-		spin_unlock(&tcon->tc_lock);
-		return 0;
-	}
 	tcon->status = TID_IN_TCON;
 	spin_unlock(&tcon->tc_lock);
 
fs/cifs/smb2pdu.c +1 -1
index 02228a590cd5..a2a95cd113df 100644
@@ -3777,7 +3777,7 @@ SMB2_change_notify(const unsigned int xid, struct cifs_tcon *tcon,
 		if (*out_data == NULL) {
 			rc = -ENOMEM;
 			goto cnotify_exit;
-		} else
+		} else if (plen)
 			*plen = le32_to_cpu(smb_rsp->OutputBufferLength);
 	}
 
fs/gfs2/file.c +14 -3
index 300844f50dcd..cb62c8f07d1e 100644
@@ -784,9 +784,13 @@ static inline bool should_fault_in_pages(struct iov_iter *i,
 	if (!user_backed_iter(i))
 		return false;
 
+	/*
+	 * Try to fault in multiple pages initially.  When that doesn't result
+	 * in any progress, fall back to a single page.
+	 */
 	size = PAGE_SIZE;
 	offs = offset_in_page(iocb->ki_pos);
-	if (*prev_count != count || !*window_size) {
+	if (*prev_count != count) {
 		size_t nr_dirtied;
 
 		nr_dirtied = max(current->nr_dirtied_pause -
@@ -870,6 +874,7 @@ static ssize_t gfs2_file_direct_write(struct kiocb *iocb, struct iov_iter *from,
 	struct gfs2_inode *ip = GFS2_I(inode);
 	size_t prev_count = 0, window_size = 0;
 	size_t written = 0;
+	bool enough_retries;
 	ssize_t ret;
 
 	/*
@@ -913,11 +918,17 @@ static ssize_t gfs2_file_direct_write(struct kiocb *iocb, struct iov_iter *from,
 	if (ret > 0)
 		written = ret;
 
+	enough_retries = prev_count == iov_iter_count(from) &&
+			 window_size <= PAGE_SIZE;
 	if (should_fault_in_pages(from, iocb, &prev_count, &window_size)) {
 		gfs2_glock_dq(gh);
 		window_size -= fault_in_iov_iter_readable(from, window_size);
-		if (window_size)
-			goto retry;
+		if (window_size) {
+			if (!enough_retries)
+				goto retry;
+			/* fall back to buffered I/O */
+			ret = 0;
+		}
 	}
 out_unlock:
 	if (gfs2_holder_queued(gh))
fs/internal.h +0 -2
index dc4eb91a577a..071a7517f1a7 100644
@@ -59,8 +59,6 @@ extern int finish_clean_context(struct fs_context *fc);
  */
 extern int filename_lookup(int dfd, struct filename *name, unsigned flags,
 			   struct path *path, struct path *root);
-extern int vfs_path_lookup(struct dentry *, struct vfsmount *,
-			   const char *, unsigned int, struct path *);
 int do_rmdir(int dfd, struct filename *name);
 int do_unlinkat(int dfd, struct filename *name);
 int may_linkat(struct mnt_idmap *idmap, const struct path *link);
fs/ksmbd/server.c +20 -13
index dc76d7cf241f..14df83c20557 100644
@@ -185,24 +185,31 @@ static void __handle_ksmbd_work(struct ksmbd_work *work,
 		goto send;
 	}
 
-	if (conn->ops->check_user_session) {
-		rc = conn->ops->check_user_session(work);
-		if (rc < 0) {
-			command = conn->ops->get_cmd_val(work);
-			conn->ops->set_rsp_status(work,
-					STATUS_USER_SESSION_DELETED);
-			goto send;
-		} else if (rc > 0) {
-			rc = conn->ops->get_ksmbd_tcon(work);
+	do {
+		if (conn->ops->check_user_session) {
+			rc = conn->ops->check_user_session(work);
 			if (rc < 0) {
-				conn->ops->set_rsp_status(work,
-					STATUS_NETWORK_NAME_DELETED);
+				if (rc == -EINVAL)
+					conn->ops->set_rsp_status(work,
+						STATUS_INVALID_PARAMETER);
+				else
+					conn->ops->set_rsp_status(work,
+						STATUS_USER_SESSION_DELETED);
 				goto send;
+			} else if (rc > 0) {
+				rc = conn->ops->get_ksmbd_tcon(work);
+				if (rc < 0) {
+					if (rc == -EINVAL)
+						conn->ops->set_rsp_status(work,
+							STATUS_INVALID_PARAMETER);
+					else
+						conn->ops->set_rsp_status(work,
+							STATUS_NETWORK_NAME_DELETED);
+					goto send;
+				}
 			}
 		}
-	}
 
-	do {
 		rc = __process_request(work, conn, &command);
 		if (rc == SERVER_HANDLER_ABORT)
 			break;
fs/ksmbd/smb2misc.c +20 -13
index 0ffe663b7590..33b7e6c4ceff 100644
@@ -351,9 +351,16 @@ int ksmbd_smb2_check_message(struct ksmbd_work *work)
 	int command;
 	__u32 clc_len;  /* calculated length */
 	__u32 len = get_rfc1002_len(work->request_buf);
+	__u32 req_struct_size, next_cmd = le32_to_cpu(hdr->NextCommand);
 
-	if (le32_to_cpu(hdr->NextCommand) > 0)
-		len = le32_to_cpu(hdr->NextCommand);
+	if ((u64)work->next_smb2_rcv_hdr_off + next_cmd > len) {
+		pr_err("next command(%u) offset exceeds smb msg size\n",
+				next_cmd);
+		return 1;
+	}
+
+	if (next_cmd > 0)
+		len = next_cmd;
 	else if (work->next_smb2_rcv_hdr_off)
 		len -= work->next_smb2_rcv_hdr_off;
 
@@ -373,17 +380,9 @@ int ksmbd_smb2_check_message(struct ksmbd_work *work)
 	}
 
 	if (smb2_req_struct_sizes[command] != pdu->StructureSize2) {
-		if (command != SMB2_OPLOCK_BREAK_HE &&
-		    (hdr->Status == 0 || pdu->StructureSize2 != SMB2_ERROR_STRUCTURE_SIZE2_LE)) {
-			/* error packets have 9 byte structure size */
-			ksmbd_debug(SMB,
-				    "Illegal request size %u for command %d\n",
-				    le16_to_cpu(pdu->StructureSize2), command);
-			return 1;
-		} else if (command == SMB2_OPLOCK_BREAK_HE &&
-			   hdr->Status == 0 &&
-			   le16_to_cpu(pdu->StructureSize2) != OP_BREAK_STRUCT_SIZE_20 &&
-			   le16_to_cpu(pdu->StructureSize2) != OP_BREAK_STRUCT_SIZE_21) {
+		if (command == SMB2_OPLOCK_BREAK_HE &&
+		    le16_to_cpu(pdu->StructureSize2) != OP_BREAK_STRUCT_SIZE_20 &&
+		    le16_to_cpu(pdu->StructureSize2) != OP_BREAK_STRUCT_SIZE_21) {
 			/* special case for SMB2.1 lease break message */
 			ksmbd_debug(SMB,
 				    "Illegal request size %d for oplock break\n",
@@ -392,6 +391,14 @@ int ksmbd_smb2_check_message(struct ksmbd_work *work)
 		}
 	}
 
+	req_struct_size = le16_to_cpu(pdu->StructureSize2) +
+		__SMB2_HEADER_STRUCTURE_SIZE;
+	if (command == SMB2_LOCK_HE)
+		req_struct_size -= sizeof(struct smb2_lock_element);
+
+	if (req_struct_size > len + 1)
+		return 1;
+
 	if (smb2_calc_size(hdr, &clc_len))
 		return 1;
 
fs/ksmbd/smb2pdu.c +88 -135

126 lines not on this page · raw message

fs/ksmbd/smbacl.c +4 -6
index 0a5862a61c77..ad919a4239d0 100644

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

fs/ksmbd/vfs.c +285 -272

557 lines not on this page · raw message

fs/ksmbd/vfs.h +16 -20
index 9d676ab0cd25..8c0931d4d531 100644

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

fs/ksmbd/vfs_cache.c +2 -5
index 054a7d2e0f48..f41f8d6108ce 100644

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

fs/namei.c +102 -23

125 lines not on this page · raw message

fs/nilfs2/page.c +9 -1
index 41ccd43cd979..afbf4bcefaf2 100644

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

fs/nilfs2/segbuf.c +6 -0
index 1362ccb64ec7..6e59dc19a732 100644

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

fs/nilfs2/segment.c +7 -0
index ac949fd7603f..c2553024bd25 100644

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

fs/nilfs2/super.c +22 -1
index 77f1e5778d1c..9ba4933087af 100644

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

include/acpi/acpixf.h +1 -0
index 8e364cbdd14a..651c0fe56757 100644

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

include/asm-generic/vmlinux.lds.h +3 -0
index d1f57e4868ed..7058b01e9f14 100644

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

include/linux/gpio/driver.h +8 -0
index ccd8a512d854..b769ff6b00fd 100644

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

include/linux/libata.h +1 -1
index a759dfbdcc91..bb5dda3ec2db 100644

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

include/linux/namei.h +9 -0
index 0d797f3367ca..1463cbda4888 100644

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

include/linux/regulator/pca9450.h +2 -2
index 3c01c2bf84f5..505c908dbb81 100644

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

include/net/dsa.h +8 -0
index a15f17a38eca..def06ef676dd 100644

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

include/net/netfilter/nf_tables.h +29 -2
index 300bce4d67ce..730c63ceee56 100644

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

include/net/xfrm.h +1 -0
index 3e1f70e8e424..47ecf1d4719b 100644

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

include/target/iscsi/iscsi_target_core.h +4 -3
index 229118156a1f..4c15420e8965 100644

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

include/trace/events/writeback.h +1 -1
index 86b2a82da546..54e353c9f919 100644

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

io_uring/net.c +11 -6
index 05fd285ac75a..2cf671cef0b6 100644

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

io_uring/poll.c +4 -5
index 55306e801081..e346a518dfcf 100644

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

kernel/bpf/btf.c +8 -12
index 46bce5577fb4..3cc3232f8c33 100644

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

kernel/bpf/syscall.c +5 -0
index adc83cb82f37..8bd5e3741d41 100644

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

kernel/bpf/verifier.c +8 -2
index 8ed149cc9f64..b03999013744 100644

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

kernel/cgroup/cgroup.c +17 -3
index fd57c1dca1cc..dad3eacf5126 100644

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

kernel/cgroup/legacy_freezer.c +6 -2
index 936473203a6b..122dacb3a443 100644

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

kernel/time/tick-common.c +1 -12
index 65b8658da829..e9138cd7a0f5 100644

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

kernel/time/tick-sched.c +12 -1
index a46506f7ec6d..d6fb6a676bbb 100644

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

mm/maccess.c +11 -5
index 074f6b086671..518a25667323 100644

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

mm/memfd.c +6 -3
index a0a7a37e8177..0382f001e2a0 100644

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

mm/mprotect.c +1 -1
index 36351a00c0e8..498de2c2f2c4 100644

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

mm/usercopy.c +1 -1
index 4c3164beacec..83c164aba6e0 100644

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

mm/vmalloc.c +13 -4
index 31ff782d368b..f908abba4d4a 100644

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

net/core/sock.c +0 -6
index 3fd71f343c9f..b34c48f802e9 100644

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

net/dsa/dsa.c +23 -1
index e5f156940c67..6cd8607a3928 100644

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

net/ipv4/esp4_offload.c +3 -0
index 3969fa805679..ee848be59e65 100644

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

net/ipv4/xfrm4_input.c +1 -0
index ad2afeef4f10..eac206a290d0 100644

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

net/ipv6/esp6_offload.c +3 -0
index 75c02992c520..772340268997 100644

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

net/ipv6/xfrm6_input.c +3 -0
index 04cbeefd8982..4907ab241d6b 100644

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

net/mptcp/pm_netlink.c +1 -0
index 5396907cc596..7b185a064acc 100644

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

net/mptcp/protocol.c +64 -47

111 lines not on this page · raw message

net/mptcp/subflow.c +10 -7
index bb0301398d3b..8e0c35c59828 100644

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

net/netfilter/ipvs/ip_vs_xmit.c +2 -0
index 80448885c3d7..b452eb3ddcec 100644

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

net/netfilter/nf_tables_api.c +274 -56

330 lines not on this page · raw message

net/netfilter/nfnetlink_osf.c +1 -0
index ee6840bd5933..8f1bfa6ccc2d 100644

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

net/netfilter/nft_immediate.c +81 -9

90 lines not on this page · raw message

net/netfilter/nft_set_bitmap.c +3 -2
index 96081ac8d2b4..1e5e7a181e0b 100644

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

net/netfilter/nft_set_hash.c +18 -5
index 76de6c8d9865..0b73cb0e752f 100644

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

net/netfilter/nft_set_pipapo.c +14 -6
index 15e451dc3fc4..0452ee586c1c 100644

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

net/netfilter/nft_set_rbtree.c +3 -2
index 2f114aa10f1a..5c05c9b990fb 100644

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

net/netfilter/xt_osf.c +0 -1
index e1990baf3a3b..dc9485854002 100644

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

net/sched/sch_api.c +2 -0
index 3f7311529cc0..34c90c9c2fca 100644

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

net/sched/sch_netem.c +6 -2
index 6ef3021e1169..e79be1b3e74d 100644

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

net/xfrm/xfrm_input.c +1 -0
index 436d29640ac2..9f294a20dcec 100644

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

net/xfrm/xfrm_interface_core.c +50 -4

54 lines not on this page · raw message

net/xfrm/xfrm_policy.c +14 -0
index 6d15788b5123..e7617c9959c3 100644

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

scripts/gfp-translate +3 -3
index b2ce416d944b..6c9aed17cf56 100755

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

scripts/mod/modpost.c +5 -0
index 9466b6a2abae..5b3964b39709 100644

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

scripts/orc_hash.sh new file +16 -0
new file mode 100644
index 000000000000..466611aa0053

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

sound/pci/hda/patch_realtek.c +2 -0
index 920e44ba998a..eb049014f87a 100644

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

sound/soc/amd/yc/acp6x-mach.c +7 -0
index 84b401b685f7..c1ca3ceac5f2 100644

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

sound/soc/codecs/nau8824.c +24 -0
index 4f19fd9b65d1..5a4db8944d06 100644

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

sound/soc/codecs/wcd938x-sdw.c +0 -1
index 402286dfaea4..9c10200ff34b 100644

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

sound/soc/fsl/fsl_sai.c +9 -2
index 990bba0be1fb..8a64f3c1d155 100644

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

sound/soc/fsl/fsl_sai.h +1 -0
index 197748a888d5..a53c4f0e25fa 100644

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

sound/soc/generic/simple-card.c +1 -0
index e98932c16754..5f8468ff3656 100644

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

tools/testing/selftests/net/fcnal-test.sh +19 -8
index 21ca91473c09..ee6880ac3e5e 100755

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

tools/testing/selftests/net/forwarding/mirror_gre_bridge_1d.sh +4 -0
index c5095da7f6bf..aec752a22e9e 100755

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

tools/testing/selftests/net/forwarding/mirror_gre_bridge_1q.sh +4 -0
index 9ff22f28032d..0cf4c47a46f9 100755

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

tools/testing/selftests/net/mptcp/config +1 -0
index 38021a0dd527..6032f9b23c4c 100644

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

tools/testing/selftests/net/mptcp/diag.sh +17 -25

42 lines not on this page · raw message

tools/testing/selftests/net/mptcp/mptcp_connect.c +4 -4
index b25a31445ded..c7f9ebeebc2c 100644

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

tools/testing/selftests/net/mptcp/mptcp_connect.sh +20 -0
index c1f7bac19942..773dd770a567 100755

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

tools/testing/selftests/net/mptcp/mptcp_join.sh +336 -187

523 lines not on this page · raw message

tools/testing/selftests/net/mptcp/mptcp_lib.sh +64 -0

64 lines not on this page · raw message

tools/testing/selftests/net/mptcp/mptcp_sockopt.c +12 -6
index ae61f39556ca..b35148edbf02 100644

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

tools/testing/selftests/net/mptcp/mptcp_sockopt.sh +18 -2
index ff5adbb9c7f2..f295a371ff14 100755

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

tools/testing/selftests/net/mptcp/pm_netlink.sh +17 -10
index 32f7533e0919..d02e0d63a8f9 100755

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

tools/testing/selftests/net/mptcp/userspace_pm.sh +12 -1
index 8092399d911f..98d9e4d2d3fc 100755

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

tools/testing/selftests/net/tls.c +23 -1
index 2cbb12736596..c0ad8385441f 100644

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

tools/testing/selftests/net/vrf-xfrm-tests.sh +16 -16
index 184da81f554f..452638ae8aed 100755

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

tools/virtio/ringtest/main.h +11 -0
index b68920d52750..d18dd317e27f 100644

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

virt/kvm/kvm_main.c +19 -1
index 4ec97f72f8ce..9386e415e6b1 100644

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

The rest of this diff is not shown. View the raw message.

Part of the diff is not shown here. View the raw message.