Skip to contentSkip to conversation

Linux 6.1.22

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Mar 30, 2023 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 6.1.22 kernel.

All users of the 6.1 kernel series must upgrade.

The updated 6.1.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.1.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/e60k02.dtsi                                  |    1 
 arch/arm/boot/dts/e70k02.dtsi                                  |    1 
 arch/arm/boot/dts/imx6sl-tolino-shine2hd.dts                   |    1 
 arch/arm64/boot/dts/freescale/imx8dxl-evk.dts                  |    6 
 arch/arm64/boot/dts/freescale/imx8mm-nitrogen-r2.dts           |    2 
 arch/arm64/boot/dts/freescale/imx8mn.dtsi                      |    5 
 arch/arm64/boot/dts/freescale/imx93.dtsi                       |   16 
 arch/arm64/boot/dts/qcom/sc7280.dtsi                           |    2 
 arch/arm64/boot/dts/qcom/sm8150.dtsi                           |    4 
 arch/arm64/boot/dts/qcom/sm8450.dtsi                           |    1 
 arch/m68k/kernel/traps.c                                       |    4 
 arch/m68k/mm/motorola.c                                        |   10 
 arch/riscv/Kconfig                                             |   22 
 arch/riscv/Makefile                                            |   10 
 arch/riscv/include/asm/tlbflush.h                              |    2 
 arch/riscv/include/uapi/asm/setup.h                            |    8 
 arch/riscv/mm/context.c                                        |    2 
 arch/riscv/mm/tlbflush.c                                       |    2 
 arch/sh/include/asm/processor_32.h                             |    1 
 arch/sh/kernel/signal_32.c                                     |    3 
 arch/x86/events/amd/core.c                                     |    3 
 arch/x86/kernel/fpu/xstate.c                                   |   30 
 drivers/acpi/x86/s2idle.c                                      |   24 
 drivers/acpi/x86/utils.c                                       |   37 -
 drivers/atm/idt77252.c                                         |   11 
 drivers/bluetooth/btqcomsmd.c                                  |   17 
 drivers/bluetooth/btsdio.c                                     |    1 
 drivers/bluetooth/btusb.c                                      |   10 
 drivers/bus/imx-weim.c                                         |    2 
 drivers/firmware/arm_scmi/mailbox.c                            |   37 +
 drivers/firmware/efi/libstub/smbios.c                          |    2 
 drivers/firmware/efi/sysfb_efi.c                               |    5 
 drivers/firmware/sysfb.c                                       |    4 
 drivers/firmware/sysfb_simplefb.c                              |    2 
 drivers/gpu/drm/amd/amdgpu/amdgpu.h                            |    5 
 drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c                       |   41 -
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c                     |   15 
 drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c                        |    5 
 drivers/gpu/drm/amd/amdgpu/amdgpu_object.c                     |    2 
 drivers/gpu/drm/amd/amdgpu/nbio_v7_2.c                         |   14 
 drivers/gpu/drm/amd/amdgpu/nv.c                                |    2 
 drivers/gpu/drm/amd/amdgpu/vi.c                                |   17 
 drivers/gpu/drm/amd/amdkfd/kfd_crat.c                          |  364 ++--------
 drivers/gpu/drm/amd/amdkfd/kfd_crat.h                          |   12 
 drivers/gpu/drm/amd/amdkfd/kfd_device.c                        |    2 
 drivers/gpu/drm/amd/amdkfd/kfd_topology.c                      |  245 ++++++
 drivers/gpu/drm/amd/amdkfd/kfd_topology.h                      |    5 
 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn301/vg_clk_mgr.c     |   19 
 drivers/gpu/drm/amd/display/dc/core/dc_link.c                  |    9 
 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_dccg.c              |    3 
 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hwseq.c             |    4 
 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_resource.c          |    1 
 drivers/gpu/drm/bridge/lontium-lt8912b.c                       |    4 
 drivers/gpu/drm/i915/display/intel_display.c                   |    1 
 drivers/gpu/drm/i915/display/intel_fbdev.c                     |   28 
 drivers/gpu/drm/i915/gt/intel_gt.c                             |    4 
 drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c                 |   30 
 drivers/gpu/drm/i915/i915_active.c                             |    3 
 drivers/gpu/drm/i915/i915_gpu_error.h                          |    2 
 drivers/gpu/drm/meson/meson_drv.c                              |   13 
 drivers/gpu/drm/tiny/cirrus.c                                  |    2 
 drivers/hid/hid-cp2112.c                                       |    1 
 drivers/hid/hid-logitech-hidpp.c                               |    2 
 drivers/hid/intel-ish-hid/ipc/ipc.c                            |    9 
 drivers/hwmon/hwmon.c                                          |    7 
 drivers/hwmon/it87.c                                           |    4 
 drivers/i2c/busses/i2c-hisi.c                                  |    6 
 drivers/i2c/busses/i2c-imx-lpi2c.c                             |    4 
 drivers/i2c/busses/i2c-mxs.c                                   |   18 
 drivers/i2c/busses/i2c-xgene-slimpro.c                         |    3 
 drivers/interconnect/qcom/osm-l3.c                             |    2 
 drivers/interconnect/qcom/qcm2290.c                            |    4 
 drivers/interconnect/qcom/sm8450.c                             |   98 --
 drivers/md/dm-crypt.c                                          |   16 
 drivers/md/dm-stats.c                                          |    7 
 drivers/md/dm-stats.h                                          |    2 
 drivers/md/dm-thin.c                                           |    2 
 drivers/md/dm.c                                                |    4 
 drivers/net/dsa/b53/b53_mmap.c                                 |    2 
 drivers/net/dsa/mt7530.c                                       |   49 -
 drivers/net/ethernet/google/gve/gve_ethtool.c                  |    5 
 drivers/net/ethernet/intel/i40e/i40e_txrx.c                    |    8 
 drivers/net/ethernet/intel/iavf/iavf_common.c                  |    2 
 drivers/net/ethernet/intel/iavf/iavf_main.c                    |   13 
 drivers/net/ethernet/intel/iavf/iavf_txrx.c                    |    2 
 drivers/net/ethernet/intel/iavf/iavf_virtchnl.c                |    2 
 drivers/net/ethernet/intel/ice/ice_sriov.c                     |    8 
 drivers/net/ethernet/intel/igb/igb_main.c                      |    2 
 drivers/net/ethernet/intel/igbvf/netdev.c                      |    8 
 drivers/net/ethernet/intel/igbvf/vf.c                          |   13 
 drivers/net/ethernet/intel/igc/igc_main.c                      |   20 
 drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c           |    2 
 drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c      |    9 
 drivers/net/ethernet/mellanox/mlx5/core/en_dcbnl.c             |    6 
 drivers/net/ethernet/mellanox/mlx5/core/en_main.c              |    6 
 drivers/net/ethernet/mellanox/mlx5/core/esw/acl/ingress_ofld.c |    3 
 drivers/net/ethernet/mellanox/mlx5/core/eswitch.c              |    1 
 drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c     |   19 
 drivers/net/ethernet/mellanox/mlxsw/core_thermal.c             |  216 +----
 drivers/net/ethernet/mellanox/mlxsw/spectrum_fid.c             |    4 
 drivers/net/ethernet/natsemi/sonic.c                           |    4 
 drivers/net/ethernet/qlogic/qed/qed_sriov.c                    |    5 
 drivers/net/ethernet/qualcomm/emac/emac.c                      |    6 
 drivers/net/ethernet/stmicro/stmmac/common.h                   |    1 
 drivers/net/ethernet/stmicro/stmmac/dwmac-imx.c                |    2 
 drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c              |    4 
 drivers/net/ethernet/stmicro/stmmac/dwmac-mediatek.c           |    2 
 drivers/net/ethernet/stmicro/stmmac/stmmac_main.c              |   30 
 drivers/net/ethernet/toshiba/ps3_gelic_net.c                   |   41 -
 drivers/net/ethernet/toshiba/ps3_gelic_net.h                   |    5 
 drivers/net/ethernet/xircom/xirc2ps_cs.c                       |    5 
 drivers/net/ieee802154/ca8210.c                                |    2 
 drivers/net/mdio/acpi_mdio.c                                   |   10 
 drivers/net/mdio/mdio-thunder.c                                |    1 
 drivers/net/mdio/of_mdio.c                                     |   12 
 drivers/net/phy/mdio_devres.c                                  |   11 
 drivers/net/phy/phy.c                                          |   23 
 drivers/net/usb/asix_devices.c                                 |   32 
 drivers/net/usb/cdc_mbim.c                                     |    5 
 drivers/net/usb/lan78xx.c                                      |   18 
 drivers/net/usb/qmi_wwan.c                                     |    1 
 drivers/net/usb/smsc95xx.c                                     |    6 
 drivers/platform/chrome/cros_ec_chardev.c                      |    2 
 drivers/platform/x86/intel/int3472/tps68470_board_data.c       |    5 
 drivers/power/supply/bq24190_charger.c                         |    1 
 drivers/power/supply/da9150-charger.c                          |    1 
 drivers/scsi/device_handler/scsi_dh_alua.c                     |    6 
 drivers/scsi/hisi_sas/hisi_sas_v3_hw.c                         |    3 
 drivers/scsi/lpfc/lpfc_init.c                                  |    2 
 drivers/scsi/lpfc/lpfc_sli.c                                   |   12 
 drivers/scsi/mpi3mr/mpi3mr_app.c                               |    4 
 drivers/scsi/mpi3mr/mpi3mr_fw.c                                |   19 
 drivers/scsi/mpi3mr/mpi3mr_transport.c                         |   15 
 drivers/scsi/qla2xxx/qla_gbl.h                                 |    1 
 drivers/scsi/qla2xxx/qla_init.c                                |    3 
 drivers/scsi/qla2xxx/qla_isr.c                                 |    3 
 drivers/scsi/qla2xxx/qla_os.c                                  |   21 
 drivers/scsi/scsi_devinfo.c                                    |    1 
 drivers/scsi/storvsc_drv.c                                     |   16 
 drivers/soc/qcom/llcc-qcom.c                                   |    6 
 drivers/target/iscsi/iscsi_target_parameters.c                 |   12 
 drivers/tee/amdtee/core.c                                      |   29 
 drivers/thunderbolt/debugfs.c                                  |   12 
 drivers/thunderbolt/nhi.c                                      |   49 -
 drivers/thunderbolt/nhi_regs.h                                 |    6 
 drivers/thunderbolt/quirks.c                                   |   13 
 drivers/thunderbolt/retimer.c                                  |   23 
 drivers/thunderbolt/sb_regs.h                                  |    1 
 drivers/thunderbolt/switch.c                                   |    4 
 drivers/thunderbolt/tb.h                                       |   12 
 drivers/thunderbolt/usb4.c                                     |   36 
 drivers/tty/hvc/hvc_xen.c                                      |   19 
 drivers/ufs/core/ufshcd.c                                      |    1 
 drivers/usb/cdns3/cdns3-pci-wrap.c                             |    5 
 drivers/usb/cdns3/cdnsp-ep0.c                                  |   19 
 drivers/usb/cdns3/cdnsp-pci.c                                  |   27 
 drivers/usb/chipidea/ci.h                                      |    2 
 drivers/usb/chipidea/core.c                                    |   11 
 drivers/usb/chipidea/otg.c                                     |    5 
 drivers/usb/dwc2/drd.c                                         |    3 
 drivers/usb/dwc2/platform.c                                    |   16 
 drivers/usb/dwc3/gadget.c                                      |   14 
 drivers/usb/gadget/function/u_audio.c                          |    2 
 drivers/usb/misc/onboard_usb_hub.c                             |    1 
 drivers/usb/misc/onboard_usb_hub.h                             |    1 
 drivers/usb/storage/unusual_uas.h                              |    7 
 drivers/usb/typec/tcpm/tcpm.c                                  |   28 
 drivers/usb/typec/ucsi/ucsi.c                                  |   11 
 drivers/usb/typec/ucsi/ucsi_acpi.c                             |    2 
 fs/btrfs/zoned.c                                               |   14 
 fs/cifs/cached_dir.c                                           |   37 -
 fs/cifs/cifs_debug.c                                           |   46 -
 fs/cifs/cifsfs.c                                               |    9 
 fs/cifs/cifssmb.c                                              |    6 
 fs/cifs/connect.c                                              |   14 
 fs/cifs/fs_context.h                                           |    2 
 fs/cifs/link.c                                                 |    2 
 fs/cifs/smb2inode.c                                            |    1 
 fs/cifs/smb2ops.c                                              |   27 
 fs/cifs/smb2pdu.c                                              |   12 
 fs/cifs/trace.h                                                |   12 
 fs/ksmbd/auth.c                                                |    5 
 fs/ksmbd/connection.c                                          |   11 
 fs/ksmbd/connection.h                                          |    3 
 fs/ksmbd/smb2pdu.c                                             |   20 
 fs/ksmbd/smb_common.c                                          |   27 
 fs/ksmbd/smb_common.h                                          |   30 
 fs/ksmbd/transport_rdma.c                                      |    2 
 fs/ksmbd/transport_tcp.c                                       |   35 
 fs/lockd/clnt4xdr.c                                            |    9 
 fs/lockd/xdr4.c                                                |   13 
 fs/nfs/read.c                                                  |    3 
 fs/nfsd/vfs.c                                                  |    9 
 fs/nilfs2/ioctl.c                                              |    2 
 fs/super.c                                                     |   15 
 fs/verity/verify.c                                             |   12 
 include/linux/acpi_mdio.h                                      |    9 
 include/linux/context_tracking.h                               |    1 
 include/linux/context_tracking_state.h                         |    2 
 include/linux/lockd/xdr4.h                                     |    1 
 include/linux/nvme-tcp.h                                       |    5 
 include/linux/of_mdio.h                                        |   22 
 include/linux/stmmac.h                                         |    2 
 include/linux/sysfb.h                                          |    9 
 io_uring/filetable.c                                           |    3 
 io_uring/net.c                                                 |   25 
 io_uring/rsrc.c                                                |    1 
 kernel/bpf/core.c                                              |    2 
 kernel/entry/common.c                                          |    5 
 kernel/events/core.c                                           |    4 
 kernel/sched/core.c                                            |    3 
 kernel/sched/fair.c                                            |   54 +
 kernel/trace/trace_hwlat.c                                     |    4 
 lib/maple_tree.c                                               |   24 
 lib/test_maple_tree.c                                          |   48 +
 mm/kfence/Makefile                                             |    2 
 mm/kfence/core.c                                               |   10 
 mm/ksm.c                                                       |   11 
 mm/page_alloc.c                                                |    3 
 mm/slab.c                                                      |    2 
 net/bluetooth/hci_core.c                                       |   23 
 net/bluetooth/hci_sync.c                                       |   68 +
 net/bluetooth/iso.c                                            |    9 
 net/bluetooth/l2cap_core.c                                     |  117 ++-
 net/bluetooth/mgmt.c                                           |    9 
 net/dsa/tag_brcm.c                                             |   10 
 net/ipv4/ip_gre.c                                              |    4 
 net/ipv6/ip6_gre.c                                             |    4 
 net/mac80211/wme.c                                             |    6 
 net/mptcp/protocol.c                                           |   63 -
 net/mptcp/protocol.h                                           |    6 
 net/mptcp/subflow.c                                            |  116 ---
 net/sched/act_mirred.c                                         |   23 
 net/xdp/xdp_umem.c                                             |   13 
 security/keys/request_key.c                                    |    9 
 sound/soc/amd/yc/acp6x-mach.c                                  |   14 
 tools/bootconfig/test-bootconfig.sh                            |   12 
 tools/testing/selftests/bpf/prog_tests/btf.c                   |   28 
 tools/testing/selftests/net/forwarding/tc_actions.sh           |   49 +
 tools/testing/selftests/x86/amx.c                              |  108 ++
 241 files changed, 2334 insertions(+), 1436 deletions(-)

AKASHI Takahiro (1):
igc: fix the validation logic for taprio's gate list

Abel Vesa (1):
soc: qcom: llcc: Fix slice configuration values for SC8280XP

Adrien Thierry (1):
scsi: ufs: core: Add soft dependency on governor_simpleondemand

Ahmed Zaki (1):
iavf: do not track VLAN 0 filters

Akihiko Odaki (1):
igbvf: Regard vf reset nack as success

Al Viro (1):
sh: sanitize the flags on sigreturn

Alexander Aring (1):
ca8210: fix mac_len negative array access

Alexander Lobakin (2):
iavf: fix inverted Rx hash condition leading to disabled hash
iavf: fix non-tunneled IPv6 UDP packet type and hashing

Alexander Stein (3):
arm64: dts: imx93: add missing #address-cells and #size-cells to i2c nodes
i2c: imx-lpi2c: check only for enabled interrupt flags
usb: misc: onboard-hub: add support for Microchip USB2517 USB 2.0 hub

Alexandr Sapozhnikov (1):

      drm/cirrus: NULL-check pipe->plane.state->fb in cirrus_pipe_update()

Alexandre Ghiti (1):
riscv: Bump COMMAND_LINE_SIZE value to 1024

Alvin Šipraga (1):
usb: gadget: u_audio: don't let userspace block driver unbind

Andrew Halaney (1):
arm64: dts: imx8dxl-evk: Fix eqos phy reset gpio

Andrzej Hajda (1):
drm/i915/gt: perform uc late init after probe error injection

Ard Biesheuvel (1):
efi/libstub: smbios: Use length member instead of record struct size

Arınç ÜNAL (3):
net: dsa: mt7530: move enabling disabling core clock to mt7530_pll_setup()
net: dsa: mt7530: move lowering TRGMII driving to mt7530_setup()
net: dsa: mt7530: move setting ssc_delta to PHY_INTERFACE_MODE_TRGMII case

Aurabindo Pillai (1):
drm/amd/display: fix k1 k2 divider programming for phantom streams

Breno Leitao (1):
perf/x86/amd/core: Always clear status for idx

Brian Gix (1):
Bluetooth: Remove "Power-on" check from Mesh feature

Caleb Sander (1):
nvme-tcp: fix nvme_tcp_term_pdu to match spec

Chang S. Bae (2):
x86/fpu/xstate: Prevent false-positive warning in __copy_xstate_uabi_buf() selftests/x86/amx: Add a ptrace test

ChenXiaoSong (1):
ksmbd: fix possible refcount leak in smb2_open()

Coly Li (1):
dm thin: fix deadlock when swapping to thin device

Costa Shulyupin (1):
tracing/hwlat: Replace sched_setaffinity with set_cpus_allowed_ptr

Cristian Marussi (1):
firmware: arm_scmi: Fix device node validation for mailbox transport

Cruise Hung (1):
drm/amd/display: Fix DP MST sinks removal issue

Dan Carpenter (1):
net/mlx5: E-Switch, Fix an Oops in error handling code

Daniel Borkmann (1):
bpf: Adjust insufficient default bpf_jit_limit

Daniel Lezcano (1):
thermal/drivers/mellanox: Use generic thermal_zone_get_trip() function

Daniel Scally (1):
platform/x86: int3472: Add GPIOs to Surface Go 3 Board data

Daniel Wagner (1):
scsi: qla2xxx: Add option to disable FC2 Target support

Daniil Tatianin (1):
qed/qed_sriov: guard against NULL derefs from qed_iov_get_vf_info

Danny Kaehn (1):
HID: cp2112: Fix driver not registering GPIO IRQ chip as threaded

Dave Wysochanski (1):
NFS: Fix /proc/PID/io read_bytes for buffered reads

David Howells (1):
keys: Do not cache key in task struct if key is requested from kernel thread

Davide Caratti (2):
net/sched: act_mirred: better wording on protection against excessive stack growth
act_mirred: use the backlog for nested calls to mirred ingress

Dmitry Baryshkov (2):
interconnect: qcom: osm-l3: fix icc_onecell_data allocation
interconnect: qcom: sm8450: switch to qcom_icc_rpmh_* function

Duc Anh Le (1):

      ASoC: amd: yc: Add DMI entries to support HP OMEN 16-n0xxx (8A43)

Dylan Jhong (1):
riscv: mm: Fix incorrect ASID argument when flushing TLB

Emeel Hakim (1):
net/mlx5e: Overcome slow response for first macsec ASO WQE

Enrico Sau (2):
net: usb: cdc_mbim: avoid altsetting toggling for Telit FE990
net: usb: qmi_wwan: add Telit 0x1080 composition

Eric Bernstein (1):
drm/amd/display: Include virtual signal to set k1 and k2 values

Eric Biggers (1):
fscrypt: destroy keyring after security_sb_delete()

Eric Dumazet (1):
erspan: do not use skb_mac_header() in ndo_start_xmit()

Fabrice Gasnier (1):
usb: dwc2: fix a devres leak in hw_enable upon suspend resume

Felix Fietkau (1):
wifi: mac80211: fix qos on mesh interfaces

Florian Fainelli (2):
net: phy: Ensure state transitions are processed from phy_stop()
net: mdio: fix owner field for mdio buses registered using ACPI

Frank Crawford (1):
hwmon (it87): Fix voltage scaling for chips with 10.9mV ADCs

Frederic Weisbecker (1):
entry/rcu: Check TIF_RESCHED _after_ delayed RCU wake-up

Gaosheng Cui (1):
intel/igbvf: free irq on the error path in igbvf_request_msix()

Gavin Li (2):
net/mlx5e: Set uplink rep as NETNS_LOCAL
net/mlx5e: Block entering switchdev mode with ns inconsistency

Geert Uytterhoeven (1):
mm/slab: Fix undefined init_cache_node_node() for NUMA and !SMP

Geoff Levand (2):
net/ps3_gelic_net: Fix RX sk_buff length
net/ps3_gelic_net: Use dma_mapping_error

Gil Fine (1):
thunderbolt: Add missing UNSET_INBOUND_SBTX for retimer access

Grant Grundler (1):
net: asix: fix modprobe "sysfs: cannot create duplicate filename"

Greg Kroah-Hartman (1):

      Linux 6.1.22

Hans de Goede (3):
efi: sysfb_efi: Fix DMI quirks not working for simpledrm
usb: ucsi: Fix NULL pointer deref in ucsi_connector_change()
usb: ucsi_acpi: Increase the command completion timeout

Hersen Wu (2):
drm/amd/display: Set dcn32 caps.seamless_odm drm/amd/display: fix wrong index used in dccg32_set_dpstreamclk

Howard Chung (1):
Bluetooth: mgmt: Fix MGMT add advmon with RSSI command

Ido Schimmel (2):
mlxsw: core_thermal: Fix fan speed in maximum cooling state
mlxsw: spectrum_fid: Fix incorrect local port type

Ivan Bornyakov (1):
bus: imx-weim: fix branch condition evaluates to a garbage value

Jakob Koschel (1):
scsi: lpfc: Avoid usage of list iterator variable after loop

Jeff Layton (2):
nfsd: don't replace page in rq_pages if it's a continuation of last page
lockd: set file_lock start and end when decoding nlm4 testargs

Jens Axboe (1):
io_uring/net: avoid sending -ECONNABORTED on repeated connection requests

Jiasheng Jiang (2):
octeontx2-vf: Add missing free for alloc_percpu dm stats: check for and propagate alloc_percpu failure

Jochen Henneberg (1):
net: stmmac: Fix for mismatched host/device DMA address width

Joel Selvaraj (1):
scsi: core: Add BLIST_SKIP_VPD_PAGES for SKhynix H28U74301AMR

Johan Hovold (1):
drm/meson: fix missing component unbind on bind errors

John Harrison (2):
drm/i915/guc: Rename GuC register state capture node to be more obvious drm/i915/guc: Fix missing ecodes

Joseph Hunkeler (1):
ASoC: amd: yp: Add OMEN by HP Gaming Laptop 16z-n000 to quirks

Josh Poimboeuf (1):
entry: Fix noinstr warning in __enter_from_user_mode()

Joshua Washington (1):
gve: Cache link_speed value from device

Justin Tee (1):
scsi: lpfc: Check kzalloc() in lpfc_sli4_cgn_params_read()

Kai-Heng Feng (1):
drm/amdgpu/nv: Apply ASPM quirk on Intel ADL + AMD Navi

Kal Conley (1):
xsk: Add missing overflow check in xdp_umem_reg

Kang Chen (1):
scsi: hisi_sas: Check devm_add_action() return value

Kars de Jong (1):
m68k: mm: Fix systems with memory at end of 32-bit address space

Konrad Dybcio (1):
interconnect: qcom: qcm2290: Fix MASTER_SNOC_BIMC_NRT

Krishna chaitanya chundru (1):
arm64: dts: qcom: sc7280: Mark PCIe controller as cache coherent

Krzysztof Kozlowski (1):
arm64: dts: imx8mm-nitrogen-r2: fix WM8960 clock name

Lama Kayal (1):
net/mlx5: Fix steering rules cleanup

Li Zetao (1):

      atm: idt77252: fix kmemleak when rmmod idt77252

Liam R. Howlett (3):
test_maple_tree: add more testing for mas_empty_area()
maple_tree: fix mas_skip_node() end slot detection mm/ksm: fix race with VMA iteration and mm_struct teardown

Liang He (1):
net: mdio: thunder: Add missing fwnode_handle_put()

Lin Ma (1):
igb: revert rtnl_lock() that causes deadlock

Lorenz Bauer (1):
selftests/bpf: check that modifier resolves after pointer

Luiz Augusto von Dentz (3):
Bluetooth: hci_core: Detect if an ACL packet is in fact an ISO packet
Bluetooth: btusb: Remove detection of ISO packets over bulk
Bluetooth: L2CAP: Fix responding with wrong PDU type

Ma Jun (2):
drm/amdkfd: Fix the warning of array-index-out-of-bounds drm/amdkfd: Fix the memory overrun

Maher Sanalla (1):
net/mlx5: Read the TC mapping of all priorities on ETS query

Manivannan Sadhasivam (2):
arm64: dts: qcom: sm8450: Mark UFS controller as cache coherent
arm64: dts: qcom: sm8150: Fix the iommu mask used for PCIe controllers

Marco Elver (1):
kfence: avoid passing -g for test

Marek Vasut (1):
arm64: dts: imx8mn: specify #sound-dai-cells for SAI nodes

Mario Limonciello (5):
thunderbolt: Disable interrupt auto clear for rings
thunderbolt: Use const qualifier for ring_interrupt_index
ACPI: x86: Drop quirk for HP Elitebook
ACPI: x86: utils: Add Cezanne to the list for forcing StorageD3Enable drm/amd: Fix initialization mistake for NBIO 7.3.0

Masami Hiramatsu (Google) (1):
bootconfig: Fix testcase to increase max node

Matheus Castello (1):
drm/bridge: lt8912b: return EPROBE_DEFER if bridge is not found

Matthias Schiffer (1):
i2c: mxs: ensure that DMA buffers are safe for DMA

Maurizio Lombardi (1):
scsi: target: iscsi: Fix an error message in iscsi_check_key()

Maxime Bizon (1):
net: mdio: fix owner field for mdio buses registered using device-tree

Michael Kelley (1):
scsi: storvsc: Handle BlockSize change in Hyper-V VHD/VHDX file

Michael Schmitz (1):
m68k: Only force 030 bus error if PC not in exception table

Michal Swiatkowski (1):
ice: check if VF exists before mode check

Mika Westerberg (3):
thunderbolt: Use scale field when allocating USB3 bandwidth
thunderbolt: Call tb_check_quirks() after initializing adapters
thunderbolt: Fix memory leak in margining

Mike Snitzer (1):
dm crypt: avoid accessing uninitialized tasklet

Mikulas Patocka (1):
dm crypt: add cond_resched() to dmcrypt_write()

Min Li (1):
Bluetooth: Fix race condition in hci_cmd_sync_clear

Muchun Song (1):
mm: kfence: fix using kfence_metadata without initialization in show_object()

Namjae Jeon (7):
ksmbd: add low bound validation to FSCTL_SET_ZERO_DATA
ksmbd: add low bound validation to FSCTL_QUERY_ALLOCATED_RANGES
ksmbd: fix wrong signingkey creation when encryption is AES256
ksmbd: set FILE_NAMED_STREAMS attribute in FS_ATTRIBUTE_INFORMATION
ksmbd: don't terminate inactive sessions after a few seconds
ksmbd: return STATUS_NOT_SUPPORTED on unsupported smb2.0 dialect
ksmbd: return unsupported error on smb1 mount

Naohiro Aota (1):
btrfs: zoned: fix btrfs_can_activate_zone() to support DUP profile

Nathan Chancellor (1):
riscv: Handle zicsr/zifencei issues between clang and binutils

Nathan Huckleberry (1):
fsverity: Remove WQ_UNBOUND from fsverity read workqueue

Nilesh Javali (1):
scsi: qla2xxx: Perform lockless command completion in abort path

Nirmoy Das (2):
drm/i915: Print return value on error drm/i915/active: Fix missing debug object activation

Paolo Abeni (3):
mptcp: refactor passive socket initialization
mptcp: use the workqueue to destroy unaccepted sockets
mptcp: fix UaF in listener shutdown

Pauli Virtanen (1):
Bluetooth: ISO: fix timestamped HCI ISO data packet parsing

Paulo Alcantara (1):
cifs: fix dentry lookups in directory handle cache

Pawel Laszczak (3):
usb: cdns3: Fix issue with using incorrect PCI device function
usb: cdnsp: Fixes issue with redundant Status Stage
usb: cdnsp: changes PCI Device ID to fix conflict with CNDS3 driver

Peng Fan (3):
ARM: dts: imx6sll: e70k02: fix usbotg1 pinctrl
ARM: dts: imx6sll: e60k02: fix usbotg1 pinctrl
ARM: dts: imx6sl: tolino-shine2hd: fix usbotg1 pinctrl

Peter Collingbourne (1):
Revert "kasan: drop skip_kasan_poison variable in free_pages_prepare"

Phinex Hung (1):
hwmon: fix potential sensor registration fail if of_node is missing

Prike Liang (1):
drm/amdkfd: introduce dummy cache info for property asic

Quinn Tran (1):
scsi: qla2xxx: Synchronize the IOCB count to be in order

Radoslaw Tyl (1):
i40e: fix flow director packet filter programming

Rafał Szalecki (1):
HID: logitech-hidpp: Add support for Logitech MX Master 3S mouse

Ranjan Kumar (4):
scsi: mpi3mr: Driver unload crashes host when enhanced logging is enabled
scsi: mpi3mr: Wait for diagnostic save during controller init
scsi: mpi3mr: NVMe command size greater than 8K fails
scsi: mpi3mr: Bad drive in topology results kernel crash

Reka Norman (1):
HID: intel-ish-hid: ipc: Fix potential use-after-free in work function

Rijo Thomas (1):
tee: amdtee: fix race condition in amdtee_open_session

Roger Pau Monne (1):
hvc/xen: prevent concurrent accesses to the shared ring

Ryusuke Konishi (1):
nilfs2: fix kernel-infoleak in nilfs_ioctl_wrap_copy()

Saaem Rizvi (1):
drm/amd/display: Remove OTG DIV register write for Virtual signals.

Sanjay R Mehta (1):
thunderbolt: Add quirk to disable CLx

Savino Dicanosa (1):
io_uring/rsrc: fix null-ptr-deref in io_file_bitmap_get()

Shyam Prasad N (6):
cifs: lock chan_lock outside match_session
cifs: append path to open_enter trace event
cifs: do not poll server interfaces too regularly
cifs: empty interface list when server doesn't support query interfaces
cifs: dump pending mids for all channels in DebugData
cifs: print session id while listing open files

Song Liu (1):

      perf: fix perf_event_context->time

Stefan Assmann (1):
iavf: fix hang on reboot with ice

Stephan Gerhold (1):
Bluetooth: btqcomsmd: Fix command timeout after setting BD address

Steve French (2):
smb3: lower default deferred close timeout to address perf regression
smb3: fix unusable share after force unmount failure

Sungwoo Kim (1):
Bluetooth: HCI: Fix global-out-of-bounds

Swapnil Patel (1):
drm/amd/display: Update clock table to include highest clock setting

Szymon Heidrich (2):

      net: usb: smsc95xx: Limit packet length to skb->len
      net: usb: lan78xx: Limit packet length to skb->len

Tejas Upadhyay (1):
drm/i915/fbdev: lock the fbdev obj before vma pin

Tim Huang (2):
drm/amdgpu: skip ASIC reset for APUs when go to S4 drm/amdgpu: reposition the gpu reset checking for reuse

Tom Rix (1):
thunderbolt: Rename shadowed variables bit to interrupt_bit and auto_clear_bit

Tzung-Bi Shih (1):
platform/chrome: cros_ec_chardev: fix kernel data leak from ioctl

Ville Syrjälä (1):

      drm/i915: Preserve crtc_state->inherited during state clearing

Vincent Guittot (1):
sched/fair: Sanitize vruntime of entity being migrated

Wei Chen (1):
i2c: xgene-slimpro: Fix out-of-bounds bug in xgene_slimpro_i2c_xfer()

Wei Fang (1):
arm64: dts: imx8dxl-evk: Disable hibernation mode of AR8031 for EQOS

Wesley Cheng (1):
usb: dwc3: gadget: Add 1ms delay after end transfer command without IOC

Xu Yang (4):
usb: typec: tcpm: fix create duplicate source-capabilities file
usb: typec: tcpm: fix warning when handle discover_identity message
usb: chipdea: core: fix return -EINVAL if request role is the same with current role
usb: chipidea: core: fix possible concurrent when switch role

Yang Jihong (1):
perf/core: Fix perf_output_begin parameter is incorrectly invoked in perf_event_bpf_output

Yaroslav Furman (1):
uas: Add US_FL_NO_REPORT_OPCODES for JMicron JMS583Gen 2

Yicong Yang (1):
i2c: hisi: Only use the completion interrupt to finish the transfer

Yifan Zhang (1):
drm/amdkfd: add GC 11.0.4 KFD support

Yu Kuai (1):
scsi: scsi_dh_alua: Fix memleak for 'qdata' in alua_activate()

Zhang Changzhong (1):
net/sonic: use dma_mapping_error() for error check

Zhang Qiao (1):
sched/fair: sanitize vruntime of entity being placed

Zheng Wang (5):
power: supply: bq24190: Fix use after free bug in bq24190_remove due to race condition
power: supply: da9150: Fix use after free bug in da9150_charger_remove due to race condition
xirc2ps_cs: Fix use after free bug in xirc2ps_detach
net: qcom/emac: Fix use after free bug in emac_remove due to race condition
Bluetooth: btsdio: fix use after free bug in btsdio_remove due to unfinished work

Zhengping Jiang (1):
Bluetooth: hci_sync: Resume adv with no RPA when active scan

Ziyang Huang (1):
usb: dwc2: drd: fix inconsistent mode if role-switch-default-mode="host"

lyndonli (1):
drm/amdgpu: Fix call trace warning and hang when removing amdgpu device

Álvaro Fernández Rojas (2):
net: dsa: b53: mmap: fix device tree support
net: dsa: tag_brcm: legacy: fix daisy-chained switches

author maintainer
#1 lore raw
Makefile +1 -1
index 0a9f0770bdf3..c3d44de8850c 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 6
 PATCHLEVEL = 1
-SUBLEVEL = 21
+SUBLEVEL = 22
 EXTRAVERSION =
 NAME = Hurr durr I'ma ninja sloth
 
arch/arm/boot/dts/e60k02.dtsi +1 -0
index 935e2359f8df..07ae96486385 100644
@@ -302,6 +302,7 @@ &usdhc3 {
 
 &usbotg1 {
 	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_usbotg1>;
 	disable-over-current;
 	srp-disable;
 	hnp-disable;
arch/arm/boot/dts/e70k02.dtsi +1 -0
index 27ef9a62b23c..a1f9fbd6004a 100644
@@ -312,6 +312,7 @@ &usdhc3 {
 
 &usbotg1 {
 	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_usbotg1>;
 	disable-over-current;
 	srp-disable;
 	hnp-disable;
arch/arm/boot/dts/imx6sl-tolino-shine2hd.dts +1 -0
index 663ee9df79e6..d6eee157c63b 100644
@@ -597,6 +597,7 @@ &usdhc3 {
 
 &usbotg1 {
 	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_usbotg1>;
 	disable-over-current;
 	srp-disable;
 	hnp-disable;
arch/arm64/boot/dts/freescale/imx8dxl-evk.dts +4 -2
index ca2a43e0cbf6..3af4c7636974 100644
@@ -99,8 +99,6 @@ &eqos {
 	phy-handle = <&ethphy0>;
 	nvmem-cells = <&fec_mac1>;
 	nvmem-cell-names = "mac-address";
-	snps,reset-gpios = <&pca6416_1 2 GPIO_ACTIVE_LOW>;
-	snps,reset-delays-us = <10 20 200000>;
 	status = "okay";
 
 	mdio {
@@ -113,6 +111,10 @@ ethphy0: ethernet-phy@0 {
 			reg = <0>;
 			eee-broken-1000t;
 			qca,disable-smarteee;
+			qca,disable-hibernation-mode;
+			reset-gpios = <&pca6416_1 2 GPIO_ACTIVE_LOW>;
+			reset-assert-us = <20>;
+			reset-deassert-us = <200000>;
 			vddio-supply = <&vddio0>;
 
 			vddio0: vddio-regulator {
arch/arm64/boot/dts/freescale/imx8mm-nitrogen-r2.dts +1 -1
index 6357078185ed..0e8f0d7161ad 100644
@@ -247,7 +247,7 @@ wm8960: codec@1a {
 		compatible = "wlf,wm8960";
 		reg = <0x1a>;
 		clocks = <&clk IMX8MM_CLK_SAI1_ROOT>;
-		clock-names = "mclk1";
+		clock-names = "mclk";
 		wlf,shared-lrclk;
 		#sound-dai-cells = <0>;
 	};
arch/arm64/boot/dts/freescale/imx8mn.dtsi +5 -0
index ba29b5b556ff..37246ca9d907 100644
@@ -295,6 +295,7 @@ spba2: spba-bus@30000000 {
 				sai2: sai@30020000 {
 					compatible = "fsl,imx8mn-sai", "fsl,imx8mq-sai";
 					reg = <0x30020000 0x10000>;
+					#sound-dai-cells = <0>;
 					interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
 					clocks = <&clk IMX8MN_CLK_SAI2_IPG>,
 						<&clk IMX8MN_CLK_DUMMY>,
@@ -309,6 +310,7 @@ sai2: sai@30020000 {
 				sai3: sai@30030000 {
 					compatible = "fsl,imx8mn-sai", "fsl,imx8mq-sai";
 					reg = <0x30030000 0x10000>;
+					#sound-dai-cells = <0>;
 					interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
 					clocks = <&clk IMX8MN_CLK_SAI3_IPG>,
 						 <&clk IMX8MN_CLK_DUMMY>,
@@ -323,6 +325,7 @@ sai3: sai@30030000 {
 				sai5: sai@30050000 {
 					compatible = "fsl,imx8mn-sai", "fsl,imx8mq-sai";
 					reg = <0x30050000 0x10000>;
+					#sound-dai-cells = <0>;
 					interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
 					clocks = <&clk IMX8MN_CLK_SAI5_IPG>,
 						 <&clk IMX8MN_CLK_DUMMY>,
@@ -339,6 +342,7 @@ sai5: sai@30050000 {
 				sai6: sai@30060000 {
 					compatible = "fsl,imx8mn-sai", "fsl,imx8mq-sai";
 					reg = <0x30060000  0x10000>;
+					#sound-dai-cells = <0>;
 					interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
 					clocks = <&clk IMX8MN_CLK_SAI6_IPG>,
 						 <&clk IMX8MN_CLK_DUMMY>,
@@ -396,6 +400,7 @@ spdif1: spdif@30090000 {
 				sai7: sai@300b0000 {
 					compatible = "fsl,imx8mn-sai", "fsl,imx8mq-sai";
 					reg = <0x300b0000 0x10000>;
+					#sound-dai-cells = <0>;
 					interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
 					clocks = <&clk IMX8MN_CLK_SAI7_IPG>,
 						 <&clk IMX8MN_CLK_DUMMY>,
arch/arm64/boot/dts/freescale/imx93.dtsi +16 -0
index 0247866fc86b..8ab9f8194702 100644
@@ -150,6 +150,8 @@ system_counter: timer@44290000 {
 			lpi2c1: i2c@44340000 {
 				compatible = "fsl,imx93-lpi2c", "fsl,imx7ulp-lpi2c";
 				reg = <0x44340000 0x10000>;
+				#address-cells = <1>;
+				#size-cells = <0>;
 				interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
 				clocks = <&clk IMX93_CLK_LPI2C1_GATE>,
 					 <&clk IMX93_CLK_BUS_AON>;
@@ -160,6 +162,8 @@ lpi2c1: i2c@44340000 {
 			lpi2c2: i2c@44350000 {
 				compatible = "fsl,imx93-lpi2c", "fsl,imx7ulp-lpi2c";
 				reg = <0x44350000 0x10000>;
+				#address-cells = <1>;
+				#size-cells = <0>;
 				interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
 				clocks = <&clk IMX93_CLK_LPI2C2_GATE>,
 					 <&clk IMX93_CLK_BUS_AON>;
@@ -277,6 +281,8 @@ mu2: mailbox@42440000 {
 			lpi2c3: i2c@42530000 {
 				compatible = "fsl,imx93-lpi2c", "fsl,imx7ulp-lpi2c";
 				reg = <0x42530000 0x10000>;
+				#address-cells = <1>;
+				#size-cells = <0>;
 				interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
 				clocks = <&clk IMX93_CLK_LPI2C3_GATE>,
 					 <&clk IMX93_CLK_BUS_WAKEUP>;
@@ -287,6 +293,8 @@ lpi2c3: i2c@42530000 {
 			lpi2c4: i2c@42540000 {
 				compatible = "fsl,imx93-lpi2c", "fsl,imx7ulp-lpi2c";
 				reg = <0x42540000 0x10000>;
+				#address-cells = <1>;
+				#size-cells = <0>;
 				interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
 				clocks = <&clk IMX93_CLK_LPI2C4_GATE>,
 					 <&clk IMX93_CLK_BUS_WAKEUP>;
@@ -351,6 +359,8 @@ lpuart8: serial@426a0000 {
 			lpi2c5: i2c@426b0000 {
 				compatible = "fsl,imx93-lpi2c", "fsl,imx7ulp-lpi2c";
 				reg = <0x426b0000 0x10000>;
+				#address-cells = <1>;
+				#size-cells = <0>;
 				interrupts = <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>;
 				clocks = <&clk IMX93_CLK_LPI2C5_GATE>,
 					 <&clk IMX93_CLK_BUS_WAKEUP>;
@@ -361,6 +371,8 @@ lpi2c5: i2c@426b0000 {
 			lpi2c6: i2c@426c0000 {
 				compatible = "fsl,imx93-lpi2c", "fsl,imx7ulp-lpi2c";
 				reg = <0x426c0000 0x10000>;
+				#address-cells = <1>;
+				#size-cells = <0>;
 				interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>;
 				clocks = <&clk IMX93_CLK_LPI2C6_GATE>,
 					 <&clk IMX93_CLK_BUS_WAKEUP>;
@@ -371,6 +383,8 @@ lpi2c6: i2c@426c0000 {
 			lpi2c7: i2c@426d0000 {
 				compatible = "fsl,imx93-lpi2c", "fsl,imx7ulp-lpi2c";
 				reg = <0x426d0000 0x10000>;
+				#address-cells = <1>;
+				#size-cells = <0>;
 				interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>;
 				clocks = <&clk IMX93_CLK_LPI2C7_GATE>,
 					 <&clk IMX93_CLK_BUS_WAKEUP>;
@@ -381,6 +395,8 @@ lpi2c7: i2c@426d0000 {
 			lpi2c8: i2c@426e0000 {
 				compatible = "fsl,imx93-lpi2c", "fsl,imx7ulp-lpi2c";
 				reg = <0x426e0000 0x10000>;
+				#address-cells = <1>;
+				#size-cells = <0>;
 				interrupts = <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>;
 				clocks = <&clk IMX93_CLK_LPI2C8_GATE>,
 					 <&clk IMX93_CLK_BUS_WAKEUP>;
arch/arm64/boot/dts/qcom/sc7280.dtsi +2 -0
index 516e70bf04ce..346da6af51ac 100644
@@ -2077,6 +2077,8 @@ pcie1: pci@1c08000 {
 			pinctrl-names = "default";
 			pinctrl-0 = <&pcie1_clkreq_n>;
 
+			dma-coherent;
+
 			iommus = <&apps_smmu 0x1c80 0x1>;
 
 			iommu-map = <0x0 &apps_smmu 0x1c80 0x1>,
arch/arm64/boot/dts/qcom/sm8150.dtsi +2 -2
index 4a527a64772b..47e09d96f609 100644
@@ -1810,7 +1810,7 @@ pcie0: pci@1c00000 {
 				      "slave_q2a",
 				      "tbu";
 
-			iommus = <&apps_smmu 0x1d80 0x7f>;
+			iommus = <&apps_smmu 0x1d80 0x3f>;
 			iommu-map = <0x0   &apps_smmu 0x1d80 0x1>,
 				    <0x100 &apps_smmu 0x1d81 0x1>;
 
@@ -1909,7 +1909,7 @@ pcie1: pci@1c08000 {
 			assigned-clocks = <&gcc GCC_PCIE_1_AUX_CLK>;
 			assigned-clock-rates = <19200000>;
 
-			iommus = <&apps_smmu 0x1e00 0x7f>;
+			iommus = <&apps_smmu 0x1e00 0x3f>;
 			iommu-map = <0x0   &apps_smmu 0x1e00 0x1>,
 				    <0x100 &apps_smmu 0x1e01 0x1>;
 
arch/arm64/boot/dts/qcom/sm8450.dtsi +1 -0
index df0d888ffc00..4714d7bf03b9 100644
@@ -3104,6 +3104,7 @@ ufs_mem_hc: ufshc@1d84000 {
 			power-domains = <&gcc UFS_PHY_GDSC>;
 
 			iommus = <&apps_smmu 0xe0 0x0>;
+			dma-coherent;
 
 			interconnects = <&aggre1_noc MASTER_UFS_MEM 0 &mc_virt SLAVE_EBI1 0>,
 					<&gem_noc MASTER_APPSS_PROC 0 &config_noc SLAVE_UFS_MEM_CFG 0>;
arch/m68k/kernel/traps.c +3 -1
index 5c8cba0efc63..a700807c9b6d 100644
@@ -30,6 +30,7 @@
 #include <linux/init.h>
 #include <linux/ptrace.h>
 #include <linux/kallsyms.h>
+#include <linux/extable.h>
 
 #include <asm/setup.h>
 #include <asm/fpu.h>
@@ -545,7 +546,8 @@ static inline void bus_error030 (struct frame *fp)
 			errorcode |= 2;
 
 		if (mmusr & (MMU_I | MMU_WP)) {
-			if (ssw & 4) {
+			/* We might have an exception table for this PC */
+			if (ssw & 4 && !search_exception_tables(fp->ptregs.pc)) {
 				pr_err("Data %s fault at %#010lx in %s (pc=%#lx)\n",
 				       ssw & RW ? "read" : "write",
 				       fp->un.fmtb.daddr,
arch/m68k/mm/motorola.c +5 -5
index 2a375637e007..911301224078 100644
@@ -437,7 +437,7 @@ void __init paging_init(void)
 	}
 
 	min_addr = m68k_memory[0].addr;
-	max_addr = min_addr + m68k_memory[0].size;
+	max_addr = min_addr + m68k_memory[0].size - 1;
 	memblock_add_node(m68k_memory[0].addr, m68k_memory[0].size, 0,
 			  MEMBLOCK_NONE);
 	for (i = 1; i < m68k_num_memory;) {
@@ -452,21 +452,21 @@ void __init paging_init(void)
 		}
 		memblock_add_node(m68k_memory[i].addr, m68k_memory[i].size, i,
 				  MEMBLOCK_NONE);
-		addr = m68k_memory[i].addr + m68k_memory[i].size;
+		addr = m68k_memory[i].addr + m68k_memory[i].size - 1;
 		if (addr > max_addr)
 			max_addr = addr;
 		i++;
 	}
 	m68k_memoffset = min_addr - PAGE_OFFSET;
-	m68k_virt_to_node_shift = fls(max_addr - min_addr - 1) - 6;
+	m68k_virt_to_node_shift = fls(max_addr - min_addr) - 6;
 
 	module_fixup(NULL, __start_fixup, __stop_fixup);
 	flush_icache();
 
-	high_memory = phys_to_virt(max_addr);
+	high_memory = phys_to_virt(max_addr) + 1;
 
 	min_low_pfn = availmem >> PAGE_SHIFT;
-	max_pfn = max_low_pfn = max_addr >> PAGE_SHIFT;
+	max_pfn = max_low_pfn = (max_addr >> PAGE_SHIFT) + 1;
 
 	/* Reserve kernel text/data/bss and the memory allocated in head.S */
 	memblock_reserve(m68k_memory[0].addr, availmem - m68k_memory[0].addr);
arch/riscv/Kconfig +22 -0
index 8e5fd5682018..ae11d5647f9d 100644
@@ -442,6 +442,28 @@ config TOOLCHAIN_HAS_ZIHINTPAUSE
 	depends on !32BIT || $(cc-option,-mabi=ilp32 -march=rv32ima_zihintpause)
 	depends on LLD_VERSION >= 150000 || LD_VERSION >= 23600
 
+config TOOLCHAIN_NEEDS_EXPLICIT_ZICSR_ZIFENCEI
+	def_bool y
+	# https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=aed44286efa8ae8717a77d94b51ac3614e2ca6dc
+	depends on AS_IS_GNU && AS_VERSION >= 23800
+	help
+	  Newer binutils versions default to ISA spec version 20191213 which
+	  moves some instructions from the I extension to the Zicsr and Zifencei
+	  extensions.
+
+config TOOLCHAIN_NEEDS_OLD_ISA_SPEC
+	def_bool y
+	depends on TOOLCHAIN_NEEDS_EXPLICIT_ZICSR_ZIFENCEI
+	# https://github.com/llvm/llvm-project/commit/22e199e6afb1263c943c0c0d4498694e15bf8a16
+	depends on CC_IS_CLANG && CLANG_VERSION < 170000
+	help
+	  Certain versions of clang do not support zicsr and zifencei via -march
+	  but newer versions of binutils require it for the reasons noted in the
+	  help text of CONFIG_TOOLCHAIN_NEEDS_EXPLICIT_ZICSR_ZIFENCEI. This
+	  option causes an older ISA spec compatible with these older versions
+	  of clang to be passed to GAS, which has the same result as passing zicsr
+	  and zifencei to -march.
+
 config FPU
 	bool "FPU support"
 	default y
arch/riscv/Makefile +6 -4
index 8b4ddccea279..3cb876f83187 100644
@@ -57,10 +57,12 @@ riscv-march-$(CONFIG_ARCH_RV64I)	:= rv64ima
 riscv-march-$(CONFIG_FPU)		:= $(riscv-march-y)fd
 riscv-march-$(CONFIG_RISCV_ISA_C)	:= $(riscv-march-y)c
 
-# Newer binutils versions default to ISA spec version 20191213 which moves some
-# instructions from the I extension to the Zicsr and Zifencei extensions.
-toolchain-need-zicsr-zifencei := $(call cc-option-yn, -march=$(riscv-march-y)_zicsr_zifencei)
-riscv-march-$(toolchain-need-zicsr-zifencei) := $(riscv-march-y)_zicsr_zifencei
+ifdef CONFIG_TOOLCHAIN_NEEDS_OLD_ISA_SPEC
+KBUILD_CFLAGS += -Wa,-misa-spec=2.2
+KBUILD_AFLAGS += -Wa,-misa-spec=2.2
+else
+riscv-march-$(CONFIG_TOOLCHAIN_NEEDS_EXPLICIT_ZICSR_ZIFENCEI) := $(riscv-march-y)_zicsr_zifencei
+endif
 
 # Check if the toolchain supports Zicbom extension
 riscv-march-$(CONFIG_TOOLCHAIN_HAS_ZICBOM) := $(riscv-march-y)_zicbom
arch/riscv/include/asm/tlbflush.h +2 -0
index 801019381dea..a09196f8de68 100644
@@ -12,6 +12,8 @@
 #include <asm/errata_list.h>
 
 #ifdef CONFIG_MMU
+extern unsigned long asid_mask;
+
 static inline void local_flush_tlb_all(void)
 {
 	__asm__ __volatile__ ("sfence.vma" : : : "memory");
arch/riscv/include/uapi/asm/setup.h new file +8 -0
new file mode 100644
index 000000000000..66b13a522880
@@ -0,0 +1,8 @@
+/* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */
+
+#ifndef _UAPI_ASM_RISCV_SETUP_H
+#define _UAPI_ASM_RISCV_SETUP_H
+
+#define COMMAND_LINE_SIZE	1024
+
+#endif /* _UAPI_ASM_RISCV_SETUP_H */
arch/riscv/mm/context.c +1 -1
index 0f784e3d307b..12e22e7330e7 100644
@@ -22,7 +22,7 @@ DEFINE_STATIC_KEY_FALSE(use_asid_allocator);
 
 static unsigned long asid_bits;
 static unsigned long num_asids;
-static unsigned long asid_mask;
+unsigned long asid_mask;
 
 static atomic_long_t current_version;
 
arch/riscv/mm/tlbflush.c +1 -1
index 37ed760d007c..ef701fa83f36 100644
@@ -42,7 +42,7 @@ static void __sbi_tlb_flush_range(struct mm_struct *mm, unsigned long start,
 	/* check if the tlbflush needs to be sent to other CPUs */
 	broadcast = cpumask_any_but(cmask, cpuid) < nr_cpu_ids;
 	if (static_branch_unlikely(&use_asid_allocator)) {
-		unsigned long asid = atomic_long_read(&mm->context.id);
+		unsigned long asid = atomic_long_read(&mm->context.id) & asid_mask;
 
 		if (broadcast) {
 			sbi_remote_sfence_vma_asid(cmask, start, size, asid);
arch/sh/include/asm/processor_32.h +1 -0
index 27aebf1e75a2..3ef7adf739c8 100644
@@ -50,6 +50,7 @@
 #define SR_FD		0x00008000
 #define SR_MD		0x40000000
 
+#define SR_USER_MASK	0x00000303	// M, Q, S, T bits
 /*
  * DSP structure and data
  */
arch/sh/kernel/signal_32.c +3 -0
index 90f495d35db2..a6bfc6f37491 100644
@@ -115,6 +115,7 @@ static int
 restore_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc, int *r0_p)
 {
 	unsigned int err = 0;
+	unsigned int sr = regs->sr & ~SR_USER_MASK;
 
 #define COPY(x)		err |= __get_user(regs->x, &sc->sc_##x)
 			COPY(regs[1]);
@@ -130,6 +131,8 @@ restore_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc, int *r0_p
 	COPY(sr);	COPY(pc);
 #undef COPY
 
+	regs->sr = (regs->sr & SR_USER_MASK) | sr;
+
 #ifdef CONFIG_SH_FPU
 	if (boot_cpu_data.flags & CPU_HAS_FPU) {
 		int owned_fp;
arch/x86/events/amd/core.c +1 -2
index 4386b10682ce..8ca5e827f30b 100644
@@ -923,6 +923,7 @@ static int amd_pmu_v2_handle_irq(struct pt_regs *regs)
 
 		/* Event overflow */
 		handled++;
+		status &= ~mask;
 		perf_sample_data_init(&data, 0, hwc->last_period);
 
 		if (!x86_perf_event_set_period(event))
@@ -935,8 +936,6 @@ static int amd_pmu_v2_handle_irq(struct pt_regs *regs)
 
 		if (perf_event_overflow(event, &data, regs))
 			x86_pmu_stop(event, 0);
-
-		status &= ~mask;
 	}
 
 	/*
arch/x86/kernel/fpu/xstate.c +14 -16
index 714166cc25f2..0bab497c9436 100644
@@ -1118,21 +1118,20 @@ void __copy_xstate_to_uabi_buf(struct membuf to, struct fpstate *fpstate,
 	zerofrom = offsetof(struct xregs_state, extended_state_area);
 
 	/*
-	 * The ptrace buffer is in non-compacted XSAVE format.  In
-	 * non-compacted format disabled features still occupy state space,
-	 * but there is no state to copy from in the compacted
-	 * init_fpstate. The gap tracking will zero these states.
-	 */
-	mask = fpstate->user_xfeatures;
-
-	/*
-	 * Dynamic features are not present in init_fpstate. When they are
-	 * in an all zeros init state, remove those from 'mask' to zero
-	 * those features in the user buffer instead of retrieving them
-	 * from init_fpstate.
+	 * This 'mask' indicates which states to copy from fpstate.
+	 * Those extended states that are not present in fpstate are
+	 * either disabled or initialized:
+	 *
+	 * In non-compacted format, disabled features still occupy
+	 * state space but there is no state to copy from in the
+	 * compacted init_fpstate. The gap tracking will zero these
+	 * states.
+	 *
+	 * The extended features have an all zeroes init state. Thus,
+	 * remove them from 'mask' to zero those features in the user
+	 * buffer instead of retrieving them from init_fpstate.
 	 */
-	if (fpu_state_size_dynamic())
-		mask &= (header.xfeatures | xinit->header.xcomp_bv);
+	mask = header.xfeatures;
 
 	for_each_extended_xfeature(i, mask) {
 		/*
@@ -1151,9 +1150,8 @@ void __copy_xstate_to_uabi_buf(struct membuf to, struct fpstate *fpstate,
 			pkru.pkru = pkru_val;
 			membuf_write(&to, &pkru, sizeof(pkru));
 		} else {
-			copy_feature(header.xfeatures & BIT_ULL(i), &to,
+			membuf_write(&to,
 				     __raw_xsave_addr(xsave, i),
-				     __raw_xsave_addr(xinit, i),
 				     xstate_sizes[i]);
 		}
 		/*
drivers/acpi/x86/s2idle.c +0 -24
index c7afce465a07..e499c60c4579 100644
@@ -384,29 +384,6 @@ static const struct acpi_device_id amd_hid_ids[] = {
 	{}
 };
 
-static int lps0_prefer_amd(const struct dmi_system_id *id)
-{
-	pr_debug("Using AMD GUID w/ _REV 2.\n");
-	rev_id = 2;
-	return 0;
-}
-static const struct dmi_system_id s2idle_dmi_table[] __initconst = {
-	{
-		/*
-		 * AMD Rembrandt based HP EliteBook 835/845/865 G9
-		 * Contains specialized AML in AMD/_REV 2 path to avoid
-		 * triggering a bug in Qualcomm WLAN firmware. This may be
-		 * removed in the future if that firmware is fixed.
-		 */
-		.callback = lps0_prefer_amd,
-		.matches = {
-			DMI_MATCH(DMI_BOARD_VENDOR, "HP"),
-			DMI_MATCH(DMI_BOARD_NAME, "8990"),
-		},
-	},
-	{}
-};
-
 static int lps0_device_attach(struct acpi_device *adev,
 			      const struct acpi_device_id *not_used)
 {
@@ -586,7 +563,6 @@ static const struct platform_s2idle_ops acpi_s2idle_ops_lps0 = {
 
 void __init acpi_s2idle_setup(void)
 {
-	dmi_check_system(s2idle_dmi_table);
 	acpi_scan_add_handler(&lps0_handler);
 	s2idle_set_ops(&acpi_s2idle_ops_lps0);
 }
drivers/acpi/x86/utils.c +13 -24
index 4e816bb402f6..e45285d4e62a 100644
@@ -200,39 +200,28 @@ bool acpi_device_override_status(struct acpi_device *adev, unsigned long long *s
  * a hardcoded allowlist for D3 support, which was used for these platforms.
  *
  * This allows quirking on Linux in a similar fashion.
+ *
+ * Cezanne systems shouldn't *normally* need this as the BIOS includes
+ * StorageD3Enable.  But for two reasons we have added it.
+ * 1) The BIOS on a number of Dell systems have ambiguity
+ *    between the same value used for _ADR on ACPI nodes GPP1.DEV0 and GPP1.NVME.
+ *    GPP1.NVME is needed to get StorageD3Enable node set properly.
+ *    https://bugzilla.kernel.org/show_bug.cgi?id=216440
+ *    https://bugzilla.kernel.org/show_bug.cgi?id=216773
+ *    https://bugzilla.kernel.org/show_bug.cgi?id=217003
+ * 2) On at least one HP system StorageD3Enable is missing on the second NVME
+      disk in the system.
  */
 static const struct x86_cpu_id storage_d3_cpu_ids[] = {
 	X86_MATCH_VENDOR_FAM_MODEL(AMD, 23, 96, NULL),	/* Renoir */
 	X86_MATCH_VENDOR_FAM_MODEL(AMD, 23, 104, NULL),	/* Lucienne */
-	{}
-};
-
-static const struct dmi_system_id force_storage_d3_dmi[] = {
-	{
-		/*
-		 * _ADR is ambiguous between GPP1.DEV0 and GPP1.NVME
-		 * but .NVME is needed to get StorageD3Enable node
-		 * https://bugzilla.kernel.org/show_bug.cgi?id=216440
-		 */
-		.matches = {
-			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
-			DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron 14 7425 2-in-1"),
-		}
-	},
-	{
-		.matches = {
-			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
-			DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron 16 5625"),
-		}
-	},
+	X86_MATCH_VENDOR_FAM_MODEL(AMD, 25, 80, NULL),	/* Cezanne */
 	{}
 };
 
 bool force_storage_d3(void)
 {
-	const struct dmi_system_id *dmi_id = dmi_first_match(force_storage_d3_dmi);
-
-	return dmi_id || x86_match_cpu(storage_d3_cpu_ids);
+	return x86_match_cpu(storage_d3_cpu_ids);
 }
 
 /*
drivers/atm/idt77252.c +11 -0
index 681cb3786794..49cb4537344a 100644
@@ -2909,6 +2909,7 @@ close_card_oam(struct idt77252_dev *card)
 
 				recycle_rx_pool_skb(card, &vc->rcv.rx_pool);
 			}
+			kfree(vc);
 		}
 	}
 }
@@ -2952,6 +2953,15 @@ open_card_ubr0(struct idt77252_dev *card)
 	return 0;
 }
 
+static void
+close_card_ubr0(struct idt77252_dev *card)
+{
+	struct vc_map *vc = card->vcs[0];
+
+	free_scq(card, vc->scq);
+	kfree(vc);
+}
+
 static int
 idt77252_dev_open(struct idt77252_dev *card)
 {
@@ -3001,6 +3011,7 @@ static void idt77252_dev_close(struct atm_dev *dev)
 	struct idt77252_dev *card = dev->dev_data;
 	u32 conf;
 
+	close_card_ubr0(card);
 	close_card_oam(card);
 
 	conf = SAR_CFG_RXPTH |	/* enable receive path           */
drivers/bluetooth/btqcomsmd.c +16 -1
index 2acb719e596f..11c7e04bf394 100644
@@ -122,6 +122,21 @@ static int btqcomsmd_setup(struct hci_dev *hdev)
 	return 0;
 }
 
+static int btqcomsmd_set_bdaddr(struct hci_dev *hdev, const bdaddr_t *bdaddr)
+{
+	int ret;
+
+	ret = qca_set_bdaddr_rome(hdev, bdaddr);
+	if (ret)
+		return ret;
+
+	/* The firmware stops responding for a while after setting the bdaddr,
+	 * causing timeouts for subsequent commands. Sleep a bit to avoid this.
+	 */
+	usleep_range(1000, 10000);
+	return 0;
+}
+
 static int btqcomsmd_probe(struct platform_device *pdev)
 {
 	struct btqcomsmd *btq;
@@ -162,7 +177,7 @@ static int btqcomsmd_probe(struct platform_device *pdev)
 	hdev->close = btqcomsmd_close;
 	hdev->send = btqcomsmd_send;
 	hdev->setup = btqcomsmd_setup;
-	hdev->set_bdaddr = qca_set_bdaddr_rome;
+	hdev->set_bdaddr = btqcomsmd_set_bdaddr;
 
 	ret = hci_register_dev(hdev);
 	if (ret < 0)
drivers/bluetooth/btsdio.c +1 -0
index 795be33f2892..02893600db39 100644
@@ -354,6 +354,7 @@ static void btsdio_remove(struct sdio_func *func)
 
 	BT_DBG("func %p", func);
 
+	cancel_work_sync(&data->work);
 	if (!data)
 		return;
 
drivers/bluetooth/btusb.c +0 -10
index 952dc9d2404e..90b85dcb138d 100644
@@ -1020,21 +1020,11 @@ static int btusb_recv_bulk(struct btusb_data *data, void *buffer, int count)
 		hci_skb_expect(skb) -= len;
 
 		if (skb->len == HCI_ACL_HDR_SIZE) {
-			__u16 handle = __le16_to_cpu(hci_acl_hdr(skb)->handle);
 			__le16 dlen = hci_acl_hdr(skb)->dlen;
-			__u8 type;
 
 			/* Complete ACL header */
 			hci_skb_expect(skb) = __le16_to_cpu(dlen);
 
-			/* Detect if ISO packet has been sent over bulk */
-			if (hci_conn_num(data->hdev, ISO_LINK)) {
-				type = hci_conn_lookup_type(data->hdev,
-							    hci_handle(handle));
-				if (type == ISO_LINK)
-					hci_skb_pkt_type(skb) = HCI_ISODATA_PKT;
-			}
-
 			if (skb_tailroom(skb) < hci_skb_expect(skb)) {
 				kfree_skb(skb);
 				skb = NULL;
drivers/bus/imx-weim.c +1 -1
index 828c66bbaa67..55d917bd1f3f 100644
@@ -204,8 +204,8 @@ static int weim_parse_dt(struct platform_device *pdev)
 	const struct of_device_id *of_id = of_match_device(weim_id_table,
 							   &pdev->dev);
 	const struct imx_weim_devtype *devtype = of_id->data;
+	int ret = 0, have_child = 0;
 	struct device_node *child;
-	int ret, have_child = 0;
 	struct weim_priv *priv;
 	void __iomem *base;
 	u32 reg;
drivers/firmware/arm_scmi/mailbox.c +37 -0
index 1e40cb035044..a455f3c0e98b 100644
@@ -52,6 +52,39 @@ static bool mailbox_chan_available(struct device *dev, int idx)
 					   "#mbox-cells", idx, NULL);
 }
 
+static int mailbox_chan_validate(struct device *cdev)
+{
+	int num_mb, num_sh, ret = 0;
+	struct device_node *np = cdev->of_node;
+
+	num_mb = of_count_phandle_with_args(np, "mboxes", "#mbox-cells");
+	num_sh = of_count_phandle_with_args(np, "shmem", NULL);
+	/* Bail out if mboxes and shmem descriptors are inconsistent */
+	if (num_mb <= 0 || num_sh > 2 || num_mb != num_sh) {
+		dev_warn(cdev, "Invalid channel descriptor for '%s'\n",
+			 of_node_full_name(np));
+		return -EINVAL;
+	}
+
+	if (num_sh > 1) {
+		struct device_node *np_tx, *np_rx;
+
+		np_tx = of_parse_phandle(np, "shmem", 0);
+		np_rx = of_parse_phandle(np, "shmem", 1);
+		/* SCMI Tx and Rx shared mem areas have to be distinct */
+		if (!np_tx || !np_rx || np_tx == np_rx) {
+			dev_warn(cdev, "Invalid shmem descriptor for '%s'\n",
+				 of_node_full_name(np));
+			ret = -EINVAL;
+		}
+
+		of_node_put(np_tx);
+		of_node_put(np_rx);
+	}
+
+	return ret;
+}
+
 static int mailbox_chan_setup(struct scmi_chan_info *cinfo, struct device *dev,
 			      bool tx)
 {
@@ -64,6 +97,10 @@ static int mailbox_chan_setup(struct scmi_chan_info *cinfo, struct device *dev,
 	resource_size_t size;
 	struct resource res;
 
+	ret = mailbox_chan_validate(cdev);
+	if (ret)
+		return ret;
+
 	smbox = devm_kzalloc(dev, sizeof(*smbox), GFP_KERNEL);
 	if (!smbox)
 		return -ENOMEM;
drivers/firmware/efi/libstub/smbios.c +1 -1
index 460418b7f5f5..aadb422b9637 100644
@@ -36,7 +36,7 @@ const u8 *__efi_get_smbios_string(u8 type, int offset, int recsize)
 	if (status != EFI_SUCCESS)
 		return NULL;
 
-	strtable = (u8 *)record + recsize;
+	strtable = (u8 *)record + record->length;
 	for (int i = 1; i < ((u8 *)record)[offset]; i++) {
 		int len = strlen(strtable);
 
drivers/firmware/efi/sysfb_efi.c +4 -1
index f06fdacc9bc8..e76d6803bdd0 100644
@@ -341,7 +341,7 @@ static const struct fwnode_operations efifb_fwnode_ops = {
 #ifdef CONFIG_EFI
 static struct fwnode_handle efifb_fwnode;
 
-__init void sysfb_apply_efi_quirks(struct platform_device *pd)
+__init void sysfb_apply_efi_quirks(void)
 {
 	if (screen_info.orig_video_isVGA != VIDEO_TYPE_EFI ||
 	    !(screen_info.capabilities & VIDEO_CAPABILITY_SKIP_QUIRKS))
@@ -355,7 +355,10 @@ __init void sysfb_apply_efi_quirks(struct platform_device *pd)
 		screen_info.lfb_height = temp;
 		screen_info.lfb_linelength = 4 * screen_info.lfb_width;
 	}
+}
 
+__init void sysfb_set_efifb_fwnode(struct platform_device *pd)
+{
 	if (screen_info.orig_video_isVGA == VIDEO_TYPE_EFI && IS_ENABLED(CONFIG_PCI)) {
 		fwnode_init(&efifb_fwnode, &efifb_fwnode_ops);
 		pd->dev.fwnode = &efifb_fwnode;
drivers/firmware/sysfb.c +3 -1
index 3fd3563d962b..3c197db42c9d 100644
@@ -81,6 +81,8 @@ static __init int sysfb_init(void)
 	if (disabled)
 		goto unlock_mutex;
 
+	sysfb_apply_efi_quirks();
+
 	/* try to create a simple-framebuffer device */
 	compatible = sysfb_parse_mode(si, &mode);
 	if (compatible) {
@@ -107,7 +109,7 @@ static __init int sysfb_init(void)
 		goto unlock_mutex;
 	}
 
-	sysfb_apply_efi_quirks(pd);
+	sysfb_set_efifb_fwnode(pd);
 
 	ret = platform_device_add_data(pd, si, sizeof(*si));
 	if (ret)
drivers/firmware/sysfb_simplefb.c +1 -1
index a353e27f83f5..ca907f7e76c6 100644
@@ -110,7 +110,7 @@ __init struct platform_device *sysfb_create_simplefb(const struct screen_info *s
 	if (!pd)
 		return ERR_PTR(-ENOMEM);
 
-	sysfb_apply_efi_quirks(pd);
+	sysfb_set_efifb_fwnode(pd);
 
 	ret = platform_device_add_resources(pd, &res, 1);
 	if (ret)
drivers/gpu/drm/amd/amdgpu/amdgpu.h +3 -2
index 5f1d0990c6f3..39c5e14b0252 100644
@@ -1263,6 +1263,7 @@ void amdgpu_device_pci_config_reset(struct amdgpu_device *adev);
 int amdgpu_device_pci_reset(struct amdgpu_device *adev);
 bool amdgpu_device_need_post(struct amdgpu_device *adev);
 bool amdgpu_device_should_use_aspm(struct amdgpu_device *adev);
+bool amdgpu_device_aspm_support_quirk(void);
 
 void amdgpu_cs_report_moved_bytes(struct amdgpu_device *adev, u64 num_bytes,
 				  u64 num_vis_bytes);
@@ -1382,10 +1383,12 @@ int amdgpu_acpi_smart_shift_update(struct drm_device *dev, enum amdgpu_ss ss_sta
 int amdgpu_acpi_pcie_notify_device_ready(struct amdgpu_device *adev);
 
 void amdgpu_acpi_get_backlight_caps(struct amdgpu_dm_backlight_caps *caps);
+bool amdgpu_acpi_should_gpu_reset(struct amdgpu_device *adev);
 void amdgpu_acpi_detect(void);
 #else
 static inline int amdgpu_acpi_init(struct amdgpu_device *adev) { return 0; }
 static inline void amdgpu_acpi_fini(struct amdgpu_device *adev) { }
+static inline bool amdgpu_acpi_should_gpu_reset(struct amdgpu_device *adev) { return false; }
 static inline void amdgpu_acpi_detect(void) { }
 static inline bool amdgpu_acpi_is_power_shift_control_supported(void) { return false; }
 static inline int amdgpu_acpi_power_shift_control(struct amdgpu_device *adev,
@@ -1396,11 +1399,9 @@ static inline int amdgpu_acpi_smart_shift_update(struct drm_device *dev,
 
 #if defined(CONFIG_ACPI) && defined(CONFIG_SUSPEND)
 bool amdgpu_acpi_is_s3_active(struct amdgpu_device *adev);
-bool amdgpu_acpi_should_gpu_reset(struct amdgpu_device *adev);
 bool amdgpu_acpi_is_s0ix_active(struct amdgpu_device *adev);
 #else
 static inline bool amdgpu_acpi_is_s0ix_active(struct amdgpu_device *adev) { return false; }
-static inline bool amdgpu_acpi_should_gpu_reset(struct amdgpu_device *adev) { return false; }
 static inline bool amdgpu_acpi_is_s3_active(struct amdgpu_device *adev) { return false; }
 #endif
 
drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c +23 -18

53 lines not on this page · raw message

drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +15 -0
index 824b0b356b3c..9ef83f3ab3a7 100644
@@ -78,6 +78,10 @@
 
 #include <drm/drm_drv.h>
 
+#if IS_ENABLED(CONFIG_X86)
+#include <asm/intel-family.h>
+#endif
+
 MODULE_FIRMWARE("amdgpu/vega10_gpu_info.bin");
 MODULE_FIRMWARE("amdgpu/vega12_gpu_info.bin");
 MODULE_FIRMWARE("amdgpu/raven_gpu_info.bin");
@@ -1353,6 +1357,17 @@ bool amdgpu_device_should_use_aspm(struct amdgpu_device *adev)
 	return pcie_aspm_enabled(adev->pdev);
 }
 
+bool amdgpu_device_aspm_support_quirk(void)
+{
+#if IS_ENABLED(CONFIG_X86)
+	struct cpuinfo_x86 *c = &cpu_data(0);
+
+	return !(c->x86 == 6 && c->x86_model == INTEL_FAM6_ALDERLAKE);
+#else
+	return true;
+#endif
+}
+
 /* if we get transitioned to only one device, take VGA back */
 /**
  * amdgpu_device_vga_set_decode - enable/disable vga decode
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c +4 -1
index dfbeef2c4a9e..871f481f8432 100644
@@ -2447,7 +2447,10 @@ static int amdgpu_pmops_freeze(struct device *dev)
 	adev->in_s4 = false;
 	if (r)
 		return r;
-	return amdgpu_asic_reset(adev);
+
+	if (amdgpu_acpi_should_gpu_reset(adev))
+		return amdgpu_asic_reset(adev);
+	return 0;
 }
 
 static int amdgpu_pmops_thaw(struct device *dev)
drivers/gpu/drm/amd/amdgpu/amdgpu_object.c +1 -1
index cfd78c4a45ba..4feedf518a19 100644
@@ -1312,7 +1312,7 @@ void amdgpu_bo_release_notify(struct ttm_buffer_object *bo)
 
 	if (!bo->resource || bo->resource->mem_type != TTM_PL_VRAM ||
 	    !(abo->flags & AMDGPU_GEM_CREATE_VRAM_WIPE_ON_RELEASE) ||
-	    adev->in_suspend || adev->shutdown)
+	    adev->in_suspend || drm_dev_is_unplugged(adev_to_drm(adev)))
 		return;
 
 	if (WARN_ON_ONCE(!dma_resv_trylock(bo->base.resv)))
drivers/gpu/drm/amd/amdgpu/nbio_v7_2.c +9 -5
index 4b0d563c6522..4ef1fa4603c8 100644
@@ -382,11 +382,6 @@ static void nbio_v7_2_init_registers(struct amdgpu_device *adev)
 		if (def != data)
 			WREG32_PCIE_PORT(SOC15_REG_OFFSET(NBIO, 0, regBIF1_PCIE_MST_CTRL_3), data);
 		break;
-	case IP_VERSION(7, 5, 1):
-		data = RREG32_SOC15(NBIO, 0, regRCC_DEV2_EPF0_STRAP2);
-		data &= ~RCC_DEV2_EPF0_STRAP2__STRAP_NO_SOFT_RESET_DEV2_F0_MASK;
-		WREG32_SOC15(NBIO, 0, regRCC_DEV2_EPF0_STRAP2, data);
-		fallthrough;
 	default:
 		def = data = RREG32_PCIE_PORT(SOC15_REG_OFFSET(NBIO, 0, regPCIE_CONFIG_CNTL));
 		data = REG_SET_FIELD(data, PCIE_CONFIG_CNTL,
@@ -399,6 +394,15 @@ static void nbio_v7_2_init_registers(struct amdgpu_device *adev)
 		break;
 	}
 
+	switch (adev->ip_versions[NBIO_HWIP][0]) {
+	case IP_VERSION(7, 3, 0):
+	case IP_VERSION(7, 5, 1):
+		data = RREG32_SOC15(NBIO, 0, regRCC_DEV2_EPF0_STRAP2);
+		data &= ~RCC_DEV2_EPF0_STRAP2__STRAP_NO_SOFT_RESET_DEV2_F0_MASK;
+		WREG32_SOC15(NBIO, 0, regRCC_DEV2_EPF0_STRAP2, data);
+		break;
+	}
+
 	if (amdgpu_sriov_vf(adev))
 		adev->rmmio_remap.reg_offset = SOC15_REG_OFFSET(NBIO, 0,
 			regBIF_BX_PF0_HDP_MEM_COHERENCY_FLUSH_CNTL) << 2;
drivers/gpu/drm/amd/amdgpu/nv.c +1 -1
index df3388e8dec0..877989278290 100644
@@ -527,7 +527,7 @@ static void nv_pcie_gen3_enable(struct amdgpu_device *adev)
 
 static void nv_program_aspm(struct amdgpu_device *adev)
 {
-	if (!amdgpu_device_should_use_aspm(adev))
+	if (!amdgpu_device_should_use_aspm(adev) || !amdgpu_device_aspm_support_quirk())
 		return;
 
 	if (!(adev->flags & AMD_IS_APU) &&
drivers/gpu/drm/amd/amdgpu/vi.c +1 -16
index f6ffd7c96ff9..d6c37c90c628 100644
@@ -81,10 +81,6 @@
 #include "mxgpu_vi.h"
 #include "amdgpu_dm.h"
 
-#if IS_ENABLED(CONFIG_X86)
-#include <asm/intel-family.h>
-#endif
-
 #define ixPCIE_LC_L1_PM_SUBSTATE	0x100100C6
 #define PCIE_LC_L1_PM_SUBSTATE__LC_L1_SUBSTATES_OVERRIDE_EN_MASK	0x00000001L
 #define PCIE_LC_L1_PM_SUBSTATE__LC_PCI_PM_L1_2_OVERRIDE_MASK	0x00000002L
@@ -1138,24 +1134,13 @@ static void vi_enable_aspm(struct amdgpu_device *adev)
 		WREG32_PCIE(ixPCIE_LC_CNTL, data);
 }
 
-static bool aspm_support_quirk_check(void)
-{
-#if IS_ENABLED(CONFIG_X86)
-	struct cpuinfo_x86 *c = &cpu_data(0);
-
-	return !(c->x86 == 6 && c->x86_model == INTEL_FAM6_ALDERLAKE);
-#else
-	return true;
-#endif
-}
-
 static void vi_program_aspm(struct amdgpu_device *adev)
 {
 	u32 data, data1, orig;
 	bool bL1SS = false;
 	bool bClkReqSupport = true;
 
-	if (!amdgpu_device_should_use_aspm(adev) || !aspm_support_quirk_check())
+	if (!amdgpu_device_should_use_aspm(adev) || !amdgpu_device_aspm_support_quirk())
 		return;
 
 	if (adev->flags & AMD_IS_APU ||
drivers/gpu/drm/amd/amdkfd/kfd_crat.c +86 -278

508 lines not on this page · raw message

drivers/gpu/drm/amd/amdkfd/kfd_crat.h +12 -0
index 482ba84a728d..a8671061a175 100644
@@ -317,6 +317,18 @@ struct cdit_header {
 
 struct kfd_dev;
 
+/* Static table to describe GPU Cache information */
+struct kfd_gpu_cache_info {
+	uint32_t	cache_size;
+	uint32_t	cache_level;
+	uint32_t	flags;
+	/* Indicates how many Compute Units share this cache
+	 * within a SA. Value = 1 indicates the cache is not shared
+	 */
+	uint32_t	num_cu_shared;
+};
+int kfd_get_gpu_cache_info(struct kfd_dev *kdev, struct kfd_gpu_cache_info **pcache_info);
+
 int kfd_create_crat_image_acpi(void **crat_image, size_t *size);
 void kfd_destroy_crat_image(void *crat_image);
 int kfd_parse_crat_table(void *crat_image, struct list_head *device_list,
drivers/gpu/drm/amd/amdkfd/kfd_device.c +2 -0
index a75e1af77365..27820f0a282d 100644
@@ -154,6 +154,7 @@ static void kfd_device_info_set_event_interrupt_class(struct kfd_dev *kfd)
 	case IP_VERSION(11, 0, 1):
 	case IP_VERSION(11, 0, 2):
 	case IP_VERSION(11, 0, 3):
+	case IP_VERSION(11, 0, 4):
 		kfd->device_info.event_interrupt_class = &event_interrupt_class_v11;
 		break;
 	default:
@@ -396,6 +397,7 @@ struct kfd_dev *kgd2kfd_probe(struct amdgpu_device *adev, bool vf)
 			f2g = &gfx_v11_kfd2kgd;
 			break;
 		case IP_VERSION(11, 0, 1):
+		case IP_VERSION(11, 0, 4):
 			gfx_target_version = 110003;
 			f2g = &gfx_v11_kfd2kgd;
 			break;
drivers/gpu/drm/amd/amdkfd/kfd_topology.c +232 -13

309 lines not on this page · raw message

drivers/gpu/drm/amd/amdkfd/kfd_topology.h +4 -1
index 9f6c949186c1..19283b8b1688 100644
@@ -80,6 +80,8 @@ struct kfd_mem_properties {
 	struct attribute	attr;
 };
 
+#define CACHE_SIBLINGMAP_SIZE 64
+
 struct kfd_cache_properties {
 	struct list_head	list;
 	uint32_t		processor_id_low;
@@ -90,10 +92,11 @@ struct kfd_cache_properties {
 	uint32_t		cache_assoc;
 	uint32_t		cache_latency;
 	uint32_t		cache_type;
-	uint8_t			sibling_map[CRAT_SIBLINGMAP_SIZE];
+	uint8_t			sibling_map[CACHE_SIBLINGMAP_SIZE];
 	struct kfd_dev		*gpu;
 	struct kobject		*kobj;
 	struct attribute	attr;
+	uint32_t		sibling_map_size;
 };
 
 struct kfd_iolink_properties {
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn301/vg_clk_mgr.c +18 -1
index 24715ca2fa94..01383aac6b41 100644
@@ -529,6 +529,19 @@ static struct clk_bw_params vg_bw_params = {
 
 };
 
+static uint32_t find_max_clk_value(const uint32_t clocks[], uint32_t num_clocks)
+{
+	uint32_t max = 0;
+	int i;
+
+	for (i = 0; i < num_clocks; ++i) {
+		if (clocks[i] > max)
+			max = clocks[i];
+	}
+
+	return max;
+}
+
 static unsigned int find_dcfclk_for_voltage(const struct vg_dpm_clocks *clock_table,
 		unsigned int voltage)
 {
@@ -572,12 +585,16 @@ static void vg_clk_mgr_helper_populate_bw_params(
 
 	bw_params->clk_table.num_entries = j + 1;
 
-	for (i = 0; i < bw_params->clk_table.num_entries; i++, j--) {
+	for (i = 0; i < bw_params->clk_table.num_entries - 1; i++, j--) {
 		bw_params->clk_table.entries[i].fclk_mhz = clock_table->DfPstateTable[j].fclk;
 		bw_params->clk_table.entries[i].memclk_mhz = clock_table->DfPstateTable[j].memclk;
 		bw_params->clk_table.entries[i].voltage = clock_table->DfPstateTable[j].voltage;
 		bw_params->clk_table.entries[i].dcfclk_mhz = find_dcfclk_for_voltage(clock_table, clock_table->DfPstateTable[j].voltage);
 	}
+	bw_params->clk_table.entries[i].fclk_mhz = clock_table->DfPstateTable[j].fclk;
+	bw_params->clk_table.entries[i].memclk_mhz = clock_table->DfPstateTable[j].memclk;
+	bw_params->clk_table.entries[i].voltage = clock_table->DfPstateTable[j].voltage;
+	bw_params->clk_table.entries[i].dcfclk_mhz = find_max_clk_value(clock_table->DcfClocks, VG_NUM_DCFCLK_DPM_LEVELS);
 
 	bw_params->vram_type = bios_info->memory_type;
 	bw_params->num_channels = bios_info->ma_channel_number;
drivers/gpu/drm/amd/display/dc/core/dc_link.c +9 -0
index 328c5e33cc66..bf7fcd268cb4 100644
@@ -1016,6 +1016,7 @@ static bool detect_link_and_local_sink(struct dc_link *link,
 	struct dc_sink *prev_sink = NULL;
 	struct dpcd_caps prev_dpcd_caps;
 	enum dc_connection_type new_connection_type = dc_connection_none;
+	enum dc_connection_type pre_connection_type = link->type;
 	const uint32_t post_oui_delay = 30; // 30ms
 
 	DC_LOGGER_INIT(link->ctx->logger);
@@ -1118,6 +1119,8 @@ static bool detect_link_and_local_sink(struct dc_link *link,
 			}
 
 			if (!detect_dp(link, &sink_caps, reason)) {
+				link->type = pre_connection_type;
+
 				if (prev_sink)
 					dc_sink_release(prev_sink);
 				return false;
@@ -1349,6 +1352,8 @@ bool dc_link_detect(struct dc_link *link, enum dc_detect_reason reason)
 	bool is_delegated_to_mst_top_mgr = false;
 	enum dc_connection_type pre_link_type = link->type;
 
+	DC_LOGGER_INIT(link->ctx->logger);
+
 	is_local_sink_detect_success = detect_link_and_local_sink(link, reason);
 
 	if (is_local_sink_detect_success && link->local_sink)
@@ -1359,6 +1364,10 @@ bool dc_link_detect(struct dc_link *link, enum dc_detect_reason reason)
 			link->dpcd_caps.is_mst_capable)
 		is_delegated_to_mst_top_mgr = discover_dp_mst_topology(link, reason);
 
+	DC_LOG_DC("%s: link_index=%d is_local_sink_detect_success=%d pre_link_type=%d link_type=%d\n", __func__,
+		 link->link_index, is_local_sink_detect_success, pre_link_type, link->type);
+
+
 	if (is_local_sink_detect_success &&
 			pre_link_type == dc_connection_mst_branch &&
 			link->type != dc_connection_mst_branch)
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_dccg.c +1 -2
index e4472c6be6c3..3fb4bcc34353 100644
@@ -271,8 +271,7 @@ static void dccg32_set_dpstreamclk(
 	dccg32_set_dtbclk_p_src(dccg, src, otg_inst);
 
 	/* enabled to select one of the DTBCLKs for pipe */
-	switch (otg_inst)
-	{
+	switch (dp_hpo_inst) {
 	case 0:
 		REG_UPDATE_2(DPSTREAMCLK_CNTL,
 			     DPSTREAMCLK0_EN,
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hwseq.c +2 -2
index d0b46a3e0155..1a85509c12f2 100644
@@ -1174,13 +1174,13 @@ unsigned int dcn32_calculate_dccg_k1_k2_values(struct pipe_ctx *pipe_ctx, unsign
 	if (is_dp_128b_132b_signal(pipe_ctx)) {
 		*k1_div = PIXEL_RATE_DIV_BY_1;
 		*k2_div = PIXEL_RATE_DIV_BY_1;
-	} else if (dc_is_hdmi_tmds_signal(pipe_ctx->stream->signal) || dc_is_dvi_signal(pipe_ctx->stream->signal)) {
+	} else if (dc_is_hdmi_tmds_signal(stream->signal) || dc_is_dvi_signal(stream->signal)) {
 		*k1_div = PIXEL_RATE_DIV_BY_1;
 		if (stream->timing.pixel_encoding == PIXEL_ENCODING_YCBCR420)
 			*k2_div = PIXEL_RATE_DIV_BY_2;
 		else
 			*k2_div = PIXEL_RATE_DIV_BY_4;
-	} else if (dc_is_dp_signal(pipe_ctx->stream->signal)) {
+	} else if (dc_is_dp_signal(stream->signal)) {
 		if (two_pix_per_container) {
 			*k1_div = PIXEL_RATE_DIV_BY_1;
 			*k2_div = PIXEL_RATE_DIV_BY_2;
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_resource.c +1 -0
index 26fc5cad7a77..a942e2812183 100644
@@ -2142,6 +2142,7 @@ static bool dcn32_resource_construct(
 	dc->caps.edp_dsc_support = true;
 	dc->caps.extended_aux_timeout_support = true;
 	dc->caps.dmcub_support = true;
+	dc->caps.seamless_odm = true;
 
 	/* Color pipeline capabilities */
 	dc->caps.color.dpp.dcn_arch = 1;
drivers/gpu/drm/bridge/lontium-lt8912b.c +2 -2
index a98efef0ba0e..1b74a913f1b8 100644
@@ -659,8 +659,8 @@ static int lt8912_parse_dt(struct lt8912 *lt)
 
 	lt->hdmi_port = of_drm_find_bridge(port_node);
 	if (!lt->hdmi_port) {
-		dev_err(lt->dev, "%s: Failed to get hdmi port\n", __func__);
-		ret = -ENODEV;
+		ret = -EPROBE_DEFER;
+		dev_err_probe(lt->dev, ret, "%s: Failed to get hdmi port\n", __func__);
 		goto err_free_host_node;
 	}
 
drivers/gpu/drm/i915/display/intel_display.c +1 -0
index 4bbb84847ecb..e0d36edd1e3f 100644
@@ -5186,6 +5186,7 @@ intel_crtc_prepare_cleared_state(struct intel_atomic_state *state,
 	 * only fields that are know to not cause problems are preserved. */
 
 	saved_state->uapi = crtc_state->uapi;
+	saved_state->inherited = crtc_state->inherited;
 	saved_state->scaler_state = crtc_state->scaler_state;
 	saved_state->shared_dpll = crtc_state->shared_dpll;
 	saved_state->dpll_hw_state = crtc_state->dpll_hw_state;
drivers/gpu/drm/i915/display/intel_fbdev.c +20 -8
index 9899b5dcd291..968915000519 100644
@@ -175,7 +175,7 @@ static int intelfb_alloc(struct drm_fb_helper *helper,
 	}
 
 	if (IS_ERR(obj)) {
-		drm_err(&dev_priv->drm, "failed to allocate framebuffer\n");
+		drm_err(&dev_priv->drm, "failed to allocate framebuffer (%pe)\n", obj);
 		return PTR_ERR(obj);
 	}
 
@@ -208,6 +208,7 @@ static int intelfb_create(struct drm_fb_helper *helper,
 	bool prealloc = false;
 	void __iomem *vaddr;
 	struct drm_i915_gem_object *obj;
+	struct i915_gem_ww_ctx ww;
 	int ret;
 
 	mutex_lock(&ifbdev->hpd_lock);
@@ -256,7 +257,7 @@ static int intelfb_create(struct drm_fb_helper *helper,
 
 	info = drm_fb_helper_alloc_fbi(helper);
 	if (IS_ERR(info)) {
-		drm_err(&dev_priv->drm, "Failed to allocate fb_info\n");
+		drm_err(&dev_priv->drm, "Failed to allocate fb_info (%pe)\n", info);
 		ret = PTR_ERR(info);
 		goto out_unpin;
 	}
@@ -288,13 +289,24 @@ static int intelfb_create(struct drm_fb_helper *helper,
 		info->fix.smem_len = vma->size;
 	}
 
-	vaddr = i915_vma_pin_iomap(vma);
-	if (IS_ERR(vaddr)) {
-		drm_err(&dev_priv->drm,
-			"Failed to remap framebuffer into virtual memory\n");
-		ret = PTR_ERR(vaddr);
-		goto out_unpin;
+	for_i915_gem_ww(&ww, ret, false) {
+		ret = i915_gem_object_lock(vma->obj, &ww);
+
+		if (ret)
+			continue;
+
+		vaddr = i915_vma_pin_iomap(vma);
+		if (IS_ERR(vaddr)) {
+			drm_err(&dev_priv->drm,
+				"Failed to remap framebuffer into virtual memory (%pe)\n", vaddr);
+			ret = PTR_ERR(vaddr);
+			continue;
+		}
 	}
+
+	if (ret)
+		goto out_unpin;
+
 	info->screen_base = vaddr;
 	info->screen_size = vma->size;
 
drivers/gpu/drm/i915/gt/intel_gt.c +2 -2
index c7db49749a63..d12ec092e62d 100644
@@ -691,12 +691,12 @@ int intel_gt_init(struct intel_gt *gt)
 	if (err)
 		goto err_gt;
 
-	intel_uc_init_late(&gt->uc);
-
 	err = i915_inject_probe_error(gt->i915, -EIO);
 	if (err)
 		goto err_gt;
 
+	intel_uc_init_late(&gt->uc);
+
 	intel_migrate_init(&gt->migrate, gt);
 
 	intel_pxp_init(&gt->pxp);
drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c +26 -4
index 685ddccc0f26..1e1fa20fb41c 100644
@@ -1491,7 +1491,7 @@ int intel_guc_capture_print_engine_node(struct drm_i915_error_state_buf *ebuf,
 
 	if (!ebuf || !ee)
 		return -EINVAL;
-	cap = ee->capture;
+	cap = ee->guc_capture;
 	if (!cap || !ee->engine)
 		return -ENODEV;
 
@@ -1556,13 +1556,34 @@ int intel_guc_capture_print_engine_node(struct drm_i915_error_state_buf *ebuf,
 
 #endif //CONFIG_DRM_I915_CAPTURE_ERROR
 
+static void guc_capture_find_ecode(struct intel_engine_coredump *ee)
+{
+	struct gcap_reg_list_info *reginfo;
+	struct guc_mmio_reg *regs;
+	i915_reg_t reg_ipehr = RING_IPEHR(0);
+	i915_reg_t reg_instdone = RING_INSTDONE(0);
+	int i;
+
+	if (!ee->guc_capture_node)
+		return;
+
+	reginfo = ee->guc_capture_node->reginfo + GUC_CAPTURE_LIST_TYPE_ENGINE_INSTANCE;
+	regs = reginfo->regs;
+	for (i = 0; i < reginfo->num_regs; i++) {
+		if (regs[i].offset == reg_ipehr.reg)
+			ee->ipehr = regs[i].value;
+		else if (regs[i].offset == reg_instdone.reg)
+			ee->instdone.instdone = regs[i].value;
+	}
+}
+
 void intel_guc_capture_free_node(struct intel_engine_coredump *ee)
 {
 	if (!ee || !ee->guc_capture_node)
 		return;
 
-	guc_capture_add_node_to_cachelist(ee->capture, ee->guc_capture_node);
-	ee->capture = NULL;
+	guc_capture_add_node_to_cachelist(ee->guc_capture, ee->guc_capture_node);
+	ee->guc_capture = NULL;
 	ee->guc_capture_node = NULL;
 }
 
@@ -1596,7 +1617,8 @@ void intel_guc_capture_get_matching_node(struct intel_gt *gt,
 		    (ce->lrc.lrca & CTX_GTT_ADDRESS_MASK)) {
 			list_del(&n->link);
 			ee->guc_capture_node = n;
-			ee->capture = guc->capture;
+			ee->guc_capture = guc->capture;
+			guc_capture_find_ecode(ee);
 			return;
 		}
 	}
drivers/gpu/drm/i915/i915_active.c +1 -2
index a9fea115f2d2..8ef93889061a 100644
@@ -92,8 +92,7 @@ static void debug_active_init(struct i915_active *ref)
 static void debug_active_activate(struct i915_active *ref)
 {
 	lockdep_assert_held(&ref->tree_lock);
-	if (!atomic_read(&ref->count)) /* before the first inc */
-		debug_object_activate(ref, &active_debug_desc);
+	debug_object_activate(ref, &active_debug_desc);
 }
 
 static void debug_active_deactivate(struct i915_active *ref)
drivers/gpu/drm/i915/i915_gpu_error.h +1 -1
index efc75cc2ffdb..56027ffbce51 100644
@@ -94,7 +94,7 @@ struct intel_engine_coredump {
 	struct intel_instdone instdone;
 
 	/* GuC matched capture-lists info */
-	struct intel_guc_state_capture *capture;
+	struct intel_guc_state_capture *guc_capture;
 	struct __guc_capture_parsed_output *guc_capture_node;
 
 	struct i915_gem_context_coredump {
drivers/gpu/drm/meson/meson_drv.c +8 -5
index 3b24a924b7b9..eea433ade79d 100644
@@ -325,23 +325,23 @@ static int meson_drv_bind_master(struct device *dev, bool has_components)
 
 	ret = meson_encoder_hdmi_init(priv);
 	if (ret)
-		goto exit_afbcd;
+		goto unbind_all;
 
 	ret = meson_plane_create(priv);
 	if (ret)
-		goto exit_afbcd;
+		goto unbind_all;
 
 	ret = meson_overlay_create(priv);
 	if (ret)
-		goto exit_afbcd;
+		goto unbind_all;
 
 	ret = meson_crtc_create(priv);
 	if (ret)
-		goto exit_afbcd;
+		goto unbind_all;
 
 	ret = request_irq(priv->vsync_irq, meson_irq, 0, drm->driver->name, drm);
 	if (ret)
-		goto exit_afbcd;
+		goto unbind_all;
 
 	drm_mode_config_reset(drm);
 
@@ -359,6 +359,9 @@ static int meson_drv_bind_master(struct device *dev, bool has_components)
 
 uninstall_irq:
 	free_irq(priv->vsync_irq, drm);
+unbind_all:
+	if (has_components)
+		component_unbind_all(drm->dev, drm);
 exit_afbcd:
 	if (priv->afbcd.ops)
 		priv->afbcd.ops->exit(priv);
drivers/gpu/drm/tiny/cirrus.c +1 -1
index 354d5e854a6f..b27e469e9021 100644
@@ -455,7 +455,7 @@ static void cirrus_pipe_update(struct drm_simple_display_pipe *pipe,
 	if (state->fb && cirrus->cpp != cirrus_cpp(state->fb))
 		cirrus_mode_set(cirrus, &crtc->mode, state->fb);
 
-	if (drm_atomic_helper_damage_merged(old_state, state, &rect))
+	if (state->fb && drm_atomic_helper_damage_merged(old_state, state, &rect))
 		cirrus_fb_blit_rect(state->fb, &shadow_plane_state->data[0], &rect);
 }
 
drivers/hid/hid-cp2112.c +1 -0
index 1e16b0fa310d..27cadadda7c9 100644
@@ -1354,6 +1354,7 @@ static int cp2112_probe(struct hid_device *hdev, const struct hid_device_id *id)
 	girq->parents = NULL;
 	girq->default_type = IRQ_TYPE_NONE;
 	girq->handler = handle_simple_irq;
+	girq->threaded = true;
 
 	ret = gpiochip_add_data(&dev->gc, dev);
 	if (ret < 0) {
drivers/hid/hid-logitech-hidpp.c +2 -0
index fdb66dc06582..e906ee375298 100644
@@ -4378,6 +4378,8 @@ static const struct hid_device_id hidpp_devices[] = {
 	{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_LOGITECH, 0xb01e) },
 	{ /* MX Master 3 mouse over Bluetooth */
 	  HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_LOGITECH, 0xb023) },
+	{ /* MX Master 3S mouse over Bluetooth */
+	  HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_LOGITECH, 0xb034) },
 	{}
 };
 
drivers/hid/intel-ish-hid/ipc/ipc.c +8 -1
index 15e14239af82..a49c6affd7c4 100644
@@ -5,6 +5,7 @@
  * Copyright (c) 2014-2016, Intel Corporation.
  */
 
+#include <linux/devm-helpers.h>
 #include <linux/sched.h>
 #include <linux/spinlock.h>
 #include <linux/delay.h>
@@ -621,7 +622,6 @@ static void	recv_ipc(struct ishtp_device *dev, uint32_t doorbell_val)
 	case MNG_RESET_NOTIFY:
 		if (!ishtp_dev) {
 			ishtp_dev = dev;
-			INIT_WORK(&fw_reset_work, fw_reset_work_fn);
 		}
 		schedule_work(&fw_reset_work);
 		break;
@@ -940,6 +940,7 @@ struct ishtp_device *ish_dev_init(struct pci_dev *pdev)
 {
 	struct ishtp_device *dev;
 	int	i;
+	int	ret;
 
 	dev = devm_kzalloc(&pdev->dev,
 			   sizeof(struct ishtp_device) + sizeof(struct ish_hw),
@@ -975,6 +976,12 @@ struct ishtp_device *ish_dev_init(struct pci_dev *pdev)
 		list_add_tail(&tx_buf->link, &dev->wr_free_list);
 	}
 
+	ret = devm_work_autocancel(&pdev->dev, &fw_reset_work, fw_reset_work_fn);
+	if (ret) {
+		dev_err(dev->devc, "Failed to initialise FW reset work\n");
+		return NULL;
+	}
+
 	dev->ops = &ish_hw_ops;
 	dev->devc = &pdev->dev;
 	dev->mtu = IPC_PAYLOAD_SIZE - sizeof(struct ishtp_msg_hdr);
drivers/hwmon/hwmon.c +5 -2
index 4218750d5a66..9ed34b2e1f49 100644
@@ -756,6 +756,7 @@ __hwmon_device_register(struct device *dev, const char *name, void *drvdata,
 	struct hwmon_device *hwdev;
 	const char *label;
 	struct device *hdev;
+	struct device *tdev = dev;
 	int i, err, id;
 
 	/* Complain about invalid characters in hwmon name attribute */
@@ -825,7 +826,9 @@ __hwmon_device_register(struct device *dev, const char *name, void *drvdata,
 	hwdev->name = name;
 	hdev->class = &hwmon_class;
 	hdev->parent = dev;
-	hdev->of_node = dev ? dev->of_node : NULL;
+	while (tdev && !tdev->of_node)
+		tdev = tdev->parent;
+	hdev->of_node = tdev ? tdev->of_node : NULL;
 	hwdev->chip = chip;
 	dev_set_drvdata(hdev, drvdata);
 	dev_set_name(hdev, HWMON_ID_FORMAT, id);
@@ -837,7 +840,7 @@ __hwmon_device_register(struct device *dev, const char *name, void *drvdata,
 
 	INIT_LIST_HEAD(&hwdev->tzdata);
 
-	if (dev && dev->of_node && chip && chip->ops->read &&
+	if (hdev->of_node && chip && chip->ops->read &&
 	    chip->info[0]->type == hwmon_chip &&
 	    (chip->info[0]->config[0] & HWMON_C_REGISTER_TZ)) {
 		err = hwmon_thermal_register_sensors(hdev);
drivers/hwmon/it87.c +3 -1
index 7bd154ba351b..b45bd3aa5a65 100644
@@ -486,6 +486,8 @@ static const struct it87_devices it87_devices[] = {
 #define has_pwm_freq2(data)	((data)->features & FEAT_PWM_FREQ2)
 #define has_six_temp(data)	((data)->features & FEAT_SIX_TEMP)
 #define has_vin3_5v(data)	((data)->features & FEAT_VIN3_5V)
+#define has_scaling(data)	((data)->features & (FEAT_12MV_ADC | \
+						     FEAT_10_9MV_ADC))
 
 struct it87_sio_data {
 	int sioaddr;
@@ -3098,7 +3100,7 @@ static int it87_probe(struct platform_device *pdev)
 			 "Detected broken BIOS defaults, disabling PWM interface\n");
 
 	/* Starting with IT8721F, we handle scaling of internal voltages */
-	if (has_12mv_adc(data)) {
+	if (has_scaling(data)) {
 		if (sio_data->internal & BIT(0))
 			data->in_scaled |= BIT(3);	/* in3 is AVCC */
 		if (sio_data->internal & BIT(1))
drivers/i2c/busses/i2c-hisi.c +5 -1
index 76c3d8f6fc3c..d30071f29987 100644
@@ -339,7 +339,11 @@ static irqreturn_t hisi_i2c_irq(int irq, void *context)
 		hisi_i2c_read_rx_fifo(ctlr);
 
 out:
-	if (int_stat & HISI_I2C_INT_TRANS_CPLT || ctlr->xfer_err) {
+	/*
+	 * Only use TRANS_CPLT to indicate the completion. On error cases we'll
+	 * get two interrupts, INT_ERR first then TRANS_CPLT.
+	 */
+	if (int_stat & HISI_I2C_INT_TRANS_CPLT) {
 		hisi_i2c_disable_int(ctlr, HISI_I2C_INT_ALL);
 		hisi_i2c_clear_int(ctlr, HISI_I2C_INT_ALL);
 		complete(ctlr->completion);
drivers/i2c/busses/i2c-imx-lpi2c.c +4 -0
index 188f2a36d2fd..9b2f9544c568 100644
@@ -503,10 +503,14 @@ static int lpi2c_imx_xfer(struct i2c_adapter *adapter,
 static irqreturn_t lpi2c_imx_isr(int irq, void *dev_id)
 {
 	struct lpi2c_imx_struct *lpi2c_imx = dev_id;
+	unsigned int enabled;
 	unsigned int temp;
 
+	enabled = readl(lpi2c_imx->base + LPI2C_MIER);
+
 	lpi2c_imx_intctrl(lpi2c_imx, 0);
 	temp = readl(lpi2c_imx->base + LPI2C_MSR);
+	temp &= enabled;
 
 	if (temp & MSR_RDF)
 		lpi2c_imx_read_rxfifo(lpi2c_imx);
drivers/i2c/busses/i2c-mxs.c +13 -5
index d113bed79545..e0f3b3545cfe 100644
@@ -171,7 +171,7 @@ static void mxs_i2c_dma_irq_callback(void *param)
 }
 
 static int mxs_i2c_dma_setup_xfer(struct i2c_adapter *adap,
-			struct i2c_msg *msg, uint32_t flags)
+			struct i2c_msg *msg, u8 *buf, uint32_t flags)
 {
 	struct dma_async_tx_descriptor *desc;
 	struct mxs_i2c_dev *i2c = i2c_get_adapdata(adap);
@@ -226,7 +226,7 @@ static int mxs_i2c_dma_setup_xfer(struct i2c_adapter *adap,
 		}
 
 		/* Queue the DMA data transfer. */
-		sg_init_one(&i2c->sg_io[1], msg->buf, msg->len);
+		sg_init_one(&i2c->sg_io[1], buf, msg->len);
 		dma_map_sg(i2c->dev, &i2c->sg_io[1], 1, DMA_FROM_DEVICE);
 		desc = dmaengine_prep_slave_sg(i2c->dmach, &i2c->sg_io[1], 1,
 					DMA_DEV_TO_MEM,
@@ -259,7 +259,7 @@ static int mxs_i2c_dma_setup_xfer(struct i2c_adapter *adap,
 		/* Queue the DMA data transfer. */
 		sg_init_table(i2c->sg_io, 2);
 		sg_set_buf(&i2c->sg_io[0], &i2c->addr_data, 1);
-		sg_set_buf(&i2c->sg_io[1], msg->buf, msg->len);
+		sg_set_buf(&i2c->sg_io[1], buf, msg->len);
 		dma_map_sg(i2c->dev, i2c->sg_io, 2, DMA_TO_DEVICE);
 		desc = dmaengine_prep_slave_sg(i2c->dmach, i2c->sg_io, 2,
 					DMA_MEM_TO_DEV,
@@ -563,6 +563,7 @@ static int mxs_i2c_xfer_msg(struct i2c_adapter *adap, struct i2c_msg *msg,
 	struct mxs_i2c_dev *i2c = i2c_get_adapdata(adap);
 	int ret;
 	int flags;
+	u8 *dma_buf;
 	int use_pio = 0;
 	unsigned long time_left;
 
@@ -588,13 +589,20 @@ static int mxs_i2c_xfer_msg(struct i2c_adapter *adap, struct i2c_msg *msg,
 		if (ret && (ret != -ENXIO))
 			mxs_i2c_reset(i2c);
 	} else {
+		dma_buf = i2c_get_dma_safe_msg_buf(msg, 1);
+		if (!dma_buf)
+			return -ENOMEM;
+
 		reinit_completion(&i2c->cmd_complete);
-		ret = mxs_i2c_dma_setup_xfer(adap, msg, flags);
-		if (ret)
+		ret = mxs_i2c_dma_setup_xfer(adap, msg, dma_buf, flags);
+		if (ret) {
+			i2c_put_dma_safe_msg_buf(dma_buf, msg, false);
 			return ret;
+		}
 
 		time_left = wait_for_completion_timeout(&i2c->cmd_complete,
 						msecs_to_jiffies(1000));
+		i2c_put_dma_safe_msg_buf(dma_buf, msg, true);
 		if (!time_left)
 			goto timeout;
 
drivers/i2c/busses/i2c-xgene-slimpro.c +3 -0
index 63259b3ea5ab..3538d36368a9 100644
@@ -308,6 +308,9 @@ static int slimpro_i2c_blkwr(struct slimpro_i2c_dev *ctx, u32 chip,
 	u32 msg[3];
 	int rc;
 
+	if (writelen > I2C_SMBUS_BLOCK_MAX)
+		return -EINVAL;
+
 	memcpy(ctx->dma_buffer, data, writelen);
 	paddr = dma_map_single(ctx->dev, ctx->dma_buffer, writelen,
 			       DMA_TO_DEVICE);
drivers/interconnect/qcom/osm-l3.c +1 -1
index 333adb21e717..46b538e6c07b 100644
@@ -294,7 +294,7 @@ static int qcom_osm_l3_probe(struct platform_device *pdev)
 	qnodes = desc->nodes;
 	num_nodes = desc->num_nodes;
 
-	data = devm_kcalloc(&pdev->dev, num_nodes, sizeof(*node), GFP_KERNEL);
+	data = devm_kzalloc(&pdev->dev, struct_size(data, nodes, num_nodes), GFP_KERNEL);
 	if (!data)
 		return -ENOMEM;
 
drivers/interconnect/qcom/qcm2290.c +2 -2
index 0da612d6398c..a29cdb4fac03 100644
@@ -147,9 +147,9 @@ static struct qcom_icc_node mas_snoc_bimc_nrt = {
 	.name = "mas_snoc_bimc_nrt",
 	.buswidth = 16,
 	.qos.ap_owned = true,
-	.qos.qos_port = 2,
+	.qos.qos_port = 3,
 	.qos.qos_mode = NOC_QOS_MODE_BYPASS,
-	.mas_rpm_id = 163,
+	.mas_rpm_id = 164,
 	.slv_rpm_id = -1,
 	.num_links = ARRAY_SIZE(mas_snoc_bimc_nrt_links),
 	.links = mas_snoc_bimc_nrt_links,
drivers/interconnect/qcom/sm8450.c +2 -96

110 lines not on this page · raw message

drivers/md/dm-crypt.c +10 -6
index 2653516bcdef..dc2d0d61ade9 100644
@@ -71,7 +71,9 @@ struct dm_crypt_io {
 	struct crypt_config *cc;
 	struct bio *base_bio;
 	u8 *integrity_metadata;
-	bool integrity_metadata_from_pool;
+	bool integrity_metadata_from_pool:1;
+	bool in_tasklet:1;
+
 	struct work_struct work;
 	struct tasklet_struct tasklet;
 
@@ -1728,6 +1730,7 @@ static void crypt_io_init(struct dm_crypt_io *io, struct crypt_config *cc,
 	io->ctx.r.req = NULL;
 	io->integrity_metadata = NULL;
 	io->integrity_metadata_from_pool = false;
+	io->in_tasklet = false;
 	atomic_set(&io->io_pending, 0);
 }
 
@@ -1773,14 +1776,13 @@ static void crypt_dec_pending(struct dm_crypt_io *io)
 	 * our tasklet. In this case we need to delay bio_endio()
 	 * execution to after the tasklet is done and dequeued.
 	 */
-	if (tasklet_trylock(&io->tasklet)) {
-		tasklet_unlock(&io->tasklet);
-		bio_endio(base_bio);
+	if (io->in_tasklet) {
+		INIT_WORK(&io->work, kcryptd_io_bio_endio);
+		queue_work(cc->io_queue, &io->work);
 		return;
 	}
 
-	INIT_WORK(&io->work, kcryptd_io_bio_endio);
-	queue_work(cc->io_queue, &io->work);
+	bio_endio(base_bio);
 }
 
 /*
@@ -1933,6 +1935,7 @@ static int dmcrypt_write(void *data)
 			io = crypt_io_from_node(rb_first(&write_tree));
 			rb_erase(&io->rb_node, &write_tree);
 			kcryptd_io_write(io);
+			cond_resched();
 		} while (!RB_EMPTY_ROOT(&write_tree));
 		blk_finish_plug(&plug);
 	}
@@ -2228,6 +2231,7 @@ static void kcryptd_queue_crypt(struct dm_crypt_io *io)
 		 * it is being executed with irqs disabled.
 		 */
 		if (in_hardirq() || irqs_disabled()) {
+			io->in_tasklet = true;
 			tasklet_init(&io->tasklet, kcryptd_crypt_tasklet, (unsigned long)&io->work);
 			tasklet_schedule(&io->tasklet);
 			return;
drivers/md/dm-stats.c +6 -1
index f105a71915ab..d12ba9bce145 100644
@@ -188,7 +188,7 @@ static int dm_stat_in_flight(struct dm_stat_shared *shared)
 	       atomic_read(&shared->in_flight[WRITE]);
 }
 
-void dm_stats_init(struct dm_stats *stats)
+int dm_stats_init(struct dm_stats *stats)
 {
 	int cpu;
 	struct dm_stats_last_position *last;
@@ -197,11 +197,16 @@ void dm_stats_init(struct dm_stats *stats)
 	INIT_LIST_HEAD(&stats->list);
 	stats->precise_timestamps = false;
 	stats->last = alloc_percpu(struct dm_stats_last_position);
+	if (!stats->last)
+		return -ENOMEM;
+
 	for_each_possible_cpu(cpu) {
 		last = per_cpu_ptr(stats->last, cpu);
 		last->last_sector = (sector_t)ULLONG_MAX;
 		last->last_rw = UINT_MAX;
 	}
+
+	return 0;
 }
 
 void dm_stats_cleanup(struct dm_stats *stats)
drivers/md/dm-stats.h +1 -1
index 09c81a1ec057..ee32b099f1cf 100644
@@ -21,7 +21,7 @@ struct dm_stats_aux {
 	unsigned long long duration_ns;
 };
 
-void dm_stats_init(struct dm_stats *st);
+int dm_stats_init(struct dm_stats *st);
 void dm_stats_cleanup(struct dm_stats *st);
 
 struct mapped_device;
drivers/md/dm-thin.c +2 -0
index d28c9077d6ed..90df6c3da77a 100644
@@ -3357,6 +3357,7 @@ static int pool_ctr(struct dm_target *ti, unsigned argc, char **argv)
 	pt->low_water_blocks = low_water_blocks;
 	pt->adjusted_pf = pt->requested_pf = pf;
 	ti->num_flush_bios = 1;
+	ti->limit_swap_bios = true;
 
 	/*
 	 * Only need to enable discards if the pool should pass
@@ -4235,6 +4236,7 @@ static int thin_ctr(struct dm_target *ti, unsigned argc, char **argv)
 		goto bad;
 
 	ti->num_flush_bios = 1;
+	ti->limit_swap_bios = true;
 	ti->flush_supported = true;
 	ti->accounts_remapped_io = true;
 	ti->per_io_data_size = sizeof(struct dm_thin_endio_hook);
drivers/md/dm.c +3 -1
index d727ed9cd623..89bf28ed874c 100644
@@ -2105,7 +2105,9 @@ static struct mapped_device *alloc_dev(int minor)
 	if (!md->pending_io)
 		goto bad;
 
-	dm_stats_init(&md->stats);
+	r = dm_stats_init(&md->stats);
+	if (r < 0)
+		goto bad;
 
 	/* Populate the mapping, nobody knows we exist yet */
 	spin_lock(&_minor_lock);
drivers/net/dsa/b53/b53_mmap.c +1 -1
index e968322dfbf0..70887e0aece3 100644
@@ -263,7 +263,7 @@ static int b53_mmap_probe_of(struct platform_device *pdev,
 		if (of_property_read_u32(of_port, "reg", &reg))
 			continue;
 
-		if (reg < B53_CPU_PORT)
+		if (reg < B53_N_PORTS)
 			pdata->enabled_ports |= BIT(reg);
 	}
 
drivers/net/dsa/mt7530.c +27 -22

95 lines not on this page · raw message

drivers/net/ethernet/google/gve/gve_ethtool.c +4 -1
index 7b9a2d9d9624..38df602f2869 100644
@@ -535,7 +535,10 @@ static int gve_get_link_ksettings(struct net_device *netdev,
 				  struct ethtool_link_ksettings *cmd)
 {
 	struct gve_priv *priv = netdev_priv(netdev);
-	int err = gve_adminq_report_link_speed(priv);
+	int err = 0;
+
+	if (priv->link_speed == 0)
+		err = gve_adminq_report_link_speed(priv);
 
 	cmd->base.speed = priv->link_speed;
 	return err;
drivers/net/ethernet/intel/i40e/i40e_txrx.c +4 -4
index b97c95f89fa0..494775d65bf2 100644
@@ -171,10 +171,10 @@ static char *i40e_create_dummy_packet(u8 *dummy_packet, bool ipv4, u8 l4proto,
 				      struct i40e_fdir_filter *data)
 {
 	bool is_vlan = !!data->vlan_tag;
-	struct vlan_hdr vlan;
-	struct ipv6hdr ipv6;
-	struct ethhdr eth;
-	struct iphdr ip;
+	struct vlan_hdr vlan = {};
+	struct ipv6hdr ipv6 = {};
+	struct ethhdr eth = {};
+	struct iphdr ip = {};
 	u8 *tmp;
 
 	if (ipv4) {
drivers/net/ethernet/intel/iavf/iavf_common.c +1 -1
index 34e46a23894f..43148c07459f 100644
@@ -661,7 +661,7 @@ struct iavf_rx_ptype_decoded iavf_ptype_lookup[BIT(8)] = {
 	/* Non Tunneled IPv6 */
 	IAVF_PTT(88, IP, IPV6, FRG, NONE, NONE, NOF, NONE, PAY3),
 	IAVF_PTT(89, IP, IPV6, NOF, NONE, NONE, NOF, NONE, PAY3),
-	IAVF_PTT(90, IP, IPV6, NOF, NONE, NONE, NOF, UDP,  PAY3),
+	IAVF_PTT(90, IP, IPV6, NOF, NONE, NONE, NOF, UDP,  PAY4),
 	IAVF_PTT_UNUSED_ENTRY(91),
 	IAVF_PTT(92, IP, IPV6, NOF, NONE, NONE, NOF, TCP,  PAY4),
 	IAVF_PTT(93, IP, IPV6, NOF, NONE, NONE, NOF, SCTP, PAY4),
drivers/net/ethernet/intel/iavf/iavf_main.c +13 -0
index 3dad834b9b8e..5f8fff6c701f 100644
@@ -893,6 +893,10 @@ static int iavf_vlan_rx_add_vid(struct net_device *netdev,
 {
 	struct iavf_adapter *adapter = netdev_priv(netdev);
 
+	/* Do not track VLAN 0 filter, always added by the PF on VF init */
+	if (!vid)
+		return 0;
+
 	if (!VLAN_FILTERING_ALLOWED(adapter))
 		return -EIO;
 
@@ -919,6 +923,10 @@ static int iavf_vlan_rx_kill_vid(struct net_device *netdev,
 {
 	struct iavf_adapter *adapter = netdev_priv(netdev);
 
+	/* We do not track VLAN 0 filter */
+	if (!vid)
+		return 0;
+
 	iavf_del_vlan(adapter, IAVF_VLAN(vid, be16_to_cpu(proto)));
 	if (proto == cpu_to_be16(ETH_P_8021Q))
 		clear_bit(vid, adapter->vsi.active_cvlans);
@@ -5078,6 +5086,11 @@ static void iavf_remove(struct pci_dev *pdev)
 			mutex_unlock(&adapter->crit_lock);
 			break;
 		}
+		/* Simply return if we already went through iavf_shutdown */
+		if (adapter->state == __IAVF_REMOVE) {
+			mutex_unlock(&adapter->crit_lock);
+			return;
+		}
 
 		mutex_unlock(&adapter->crit_lock);
 		usleep_range(500, 1000);
drivers/net/ethernet/intel/iavf/iavf_txrx.c +1 -1
index 18b6a702a1d6..e989feda133c 100644
@@ -1096,7 +1096,7 @@ static inline void iavf_rx_hash(struct iavf_ring *ring,
 		cpu_to_le64((u64)IAVF_RX_DESC_FLTSTAT_RSS_HASH <<
 			    IAVF_RX_DESC_STATUS_FLTSTAT_SHIFT);
 
-	if (ring->netdev->features & NETIF_F_RXHASH)
+	if (!(ring->netdev->features & NETIF_F_RXHASH))
 		return;
 
 	if ((rx_desc->wb.qword1.status_error_len & rss_mask) == rss_mask) {
drivers/net/ethernet/intel/iavf/iavf_virtchnl.c +0 -2
index 0752fd67c96e..2c03ca01fdd9 100644
@@ -2438,8 +2438,6 @@ void iavf_virtchnl_completion(struct iavf_adapter *adapter,
 		list_for_each_entry(f, &adapter->vlan_filter_list, list) {
 			if (f->is_new_vlan) {
 				f->is_new_vlan = false;
-				if (!f->vlan.vid)
-					continue;
 				if (f->vlan.tpid == ETH_P_8021Q)
 					set_bit(f->vlan.vid,
 						adapter->vsi.active_cvlans);
drivers/net/ethernet/intel/ice/ice_sriov.c +4 -4
index 3ba1408c56a9..b3849bc3d4fc 100644
@@ -1384,15 +1384,15 @@ int ice_set_vf_trust(struct net_device *netdev, int vf_id, bool trusted)
 	struct ice_vf *vf;
 	int ret;
 
+	vf = ice_get_vf_by_id(pf, vf_id);
+	if (!vf)
+		return -EINVAL;
+
 	if (ice_is_eswitch_mode_switchdev(pf)) {
 		dev_info(ice_pf_to_dev(pf), "Trusted VF is forbidden in switchdev mode\n");
 		return -EOPNOTSUPP;
 	}
 
-	vf = ice_get_vf_by_id(pf, vf_id);
-	if (!vf)
-		return -EINVAL;
-
 	ret = ice_check_vf_ready_for_cfg(vf);
 	if (ret)
 		goto out_put_vf;
drivers/net/ethernet/intel/igb/igb_main.c +0 -2
index bf4317e47f94..b3aed4e2ca91 100644
@@ -3841,9 +3841,7 @@ static void igb_remove(struct pci_dev *pdev)
 	igb_release_hw_control(adapter);
 
 #ifdef CONFIG_PCI_IOV
-	rtnl_lock();
 	igb_disable_sriov(pdev);
-	rtnl_unlock();
 #endif
 
 	unregister_netdev(netdev);
drivers/net/ethernet/intel/igbvf/netdev.c +6 -2
index 3a32809510fc..72cb1b56e9f2 100644
@@ -1074,7 +1074,7 @@ static int igbvf_request_msix(struct igbvf_adapter *adapter)
 			  igbvf_intr_msix_rx, 0, adapter->rx_ring->name,
 			  netdev);
 	if (err)
-		goto out;
+		goto free_irq_tx;
 
 	adapter->rx_ring->itr_register = E1000_EITR(vector);
 	adapter->rx_ring->itr_val = adapter->current_itr;
@@ -1083,10 +1083,14 @@ static int igbvf_request_msix(struct igbvf_adapter *adapter)
 	err = request_irq(adapter->msix_entries[vector].vector,
 			  igbvf_msix_other, 0, netdev->name, netdev);
 	if (err)
-		goto out;
+		goto free_irq_rx;
 
 	igbvf_configure_msix(adapter);
 	return 0;
+free_irq_rx:
+	free_irq(adapter->msix_entries[--vector].vector, netdev);
+free_irq_tx:
+	free_irq(adapter->msix_entries[--vector].vector, netdev);
 out:
 	return err;
 }
drivers/net/ethernet/intel/igbvf/vf.c +10 -3
index b8ba3f94c363..a47a2e3e548c 100644
@@ -1,6 +1,8 @@
 // SPDX-License-Identifier: GPL-2.0
 /* Copyright(c) 2009 - 2018 Intel Corporation. */
 
+#include <linux/etherdevice.h>
+
 #include "vf.h"
 
 static s32 e1000_check_for_link_vf(struct e1000_hw *hw);
@@ -131,11 +133,16 @@ static s32 e1000_reset_hw_vf(struct e1000_hw *hw)
 		/* set our "perm_addr" based on info provided by PF */
 		ret_val = mbx->ops.read_posted(hw, msgbuf, 3);
 		if (!ret_val) {
-			if (msgbuf[0] == (E1000_VF_RESET |
-					  E1000_VT_MSGTYPE_ACK))
+			switch (msgbuf[0]) {
+			case E1000_VF_RESET | E1000_VT_MSGTYPE_ACK:
 				memcpy(hw->mac.perm_addr, addr, ETH_ALEN);
-			else
+				break;
+			case E1000_VF_RESET | E1000_VT_MSGTYPE_NACK:
+				eth_zero_addr(hw->mac.perm_addr);
+				break;
+			default:
 				ret_val = -E1000_ERR_MAC_INIT;
+			}
 		}
 	}
 
drivers/net/ethernet/intel/igc/igc_main.c +10 -10
index 3b5b36206c44..1d9b70e0ff67 100644
@@ -6000,18 +6000,18 @@ static bool validate_schedule(struct igc_adapter *adapter,
 		if (e->command != TC_TAPRIO_CMD_SET_GATES)
 			return false;
 
-		for (i = 0; i < adapter->num_tx_queues; i++) {
-			if (e->gate_mask & BIT(i))
+		for (i = 0; i < adapter->num_tx_queues; i++)
+			if (e->gate_mask & BIT(i)) {
 				queue_uses[i]++;
 
-			/* There are limitations: A single queue cannot be
-			 * opened and closed multiple times per cycle unless the
-			 * gate stays open. Check for it.
-			 */
-			if (queue_uses[i] > 1 &&
-			    !(prev->gate_mask & BIT(i)))
-				return false;
-		}
+				/* There are limitations: A single queue cannot
+				 * be opened and closed multiple times per cycle
+				 * unless the gate stays open. Check for it.
+				 */
+				if (queue_uses[i] > 1 &&
+				    !(prev->gate_mask & BIT(i)))
+					return false;
+			}
 	}
 
 	return true;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c +2 -0
index 7f8ffbf79cf7..ab126f8706c7 100644
@@ -709,6 +709,7 @@ static int otx2vf_probe(struct pci_dev *pdev, const struct pci_device_id *id)
 err_ptp_destroy:
 	otx2_ptp_destroy(vf);
 err_detach_rsrc:
+	free_percpu(vf->hw.lmt_info);
 	if (test_bit(CN10K_LMTST, &vf->hw.cap_flag))
 		qmem_free(vf->dev, vf->dync_lmt);
 	otx2_detach_resources(&vf->mbox);
@@ -762,6 +763,7 @@ static void otx2vf_remove(struct pci_dev *pdev)
 	otx2_shutdown_tc(vf);
 	otx2vf_disable_mbox_intr(vf);
 	otx2_detach_resources(&vf->mbox);
+	free_percpu(vf->hw.lmt_info);
 	if (test_bit(CN10K_LMTST, &vf->hw.cap_flag))
 		qmem_free(vf->dev, vf->dync_lmt);
 	otx2vf_vfaf_mbox_destroy(vf);
drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c +8 -1
index 0c23340bfcc7..0f8f3ce35537 100644
@@ -1412,6 +1412,7 @@ static int macsec_aso_query(struct mlx5_core_dev *mdev, struct mlx5e_macsec *mac
 	struct mlx5e_macsec_aso *aso;
 	struct mlx5_aso_wqe *aso_wqe;
 	struct mlx5_aso *maso;
+	unsigned long expires;
 	int err;
 
 	aso = &macsec->aso;
@@ -1425,7 +1426,13 @@ static int macsec_aso_query(struct mlx5_core_dev *mdev, struct mlx5e_macsec *mac
 	macsec_aso_build_wqe_ctrl_seg(aso, &aso_wqe->aso_ctrl, NULL);
 
 	mlx5_aso_post_wqe(maso, false, &aso_wqe->ctrl);
-	err = mlx5_aso_poll_cq(maso, false);
+	expires = jiffies + msecs_to_jiffies(10);
+	do {
+		err = mlx5_aso_poll_cq(maso, false);
+		if (err)
+			usleep_range(2, 10);
+	} while (err && time_is_after_jiffies(expires));
+
 	if (err)
 		goto err_out;
 
drivers/net/ethernet/mellanox/mlx5/core/en_dcbnl.c +4 -2
index 2449731b7d79..89de92d06483 100644
@@ -117,12 +117,14 @@ static int mlx5e_dcbnl_ieee_getets(struct net_device *netdev,
 	if (!MLX5_CAP_GEN(priv->mdev, ets))
 		return -EOPNOTSUPP;
 
-	ets->ets_cap = mlx5_max_tc(priv->mdev) + 1;
-	for (i = 0; i < ets->ets_cap; i++) {
+	for (i = 0; i < IEEE_8021QAZ_MAX_TCS; i++) {
 		err = mlx5_query_port_prio_tc(mdev, i, &ets->prio_tc[i]);
 		if (err)
 			return err;
+	}
 
+	ets->ets_cap = mlx5_max_tc(priv->mdev) + 1;
+	for (i = 0; i < ets->ets_cap; i++) {
 		err = mlx5_query_port_tc_group(mdev, i, &tc_group[i]);
 		if (err)
 			return err;
drivers/net/ethernet/mellanox/mlx5/core/en_main.c +5 -1
index 609a49c1e09e..3b5c5064cfaf 100644
@@ -4081,8 +4081,12 @@ static netdev_features_t mlx5e_fix_features(struct net_device *netdev,
 		}
 	}
 
-	if (mlx5e_is_uplink_rep(priv))
+	if (mlx5e_is_uplink_rep(priv)) {
 		features = mlx5e_fix_uplink_rep_features(netdev, features);
+		features |= NETIF_F_NETNS_LOCAL;
+	} else {
+		features &= ~NETIF_F_NETNS_LOCAL;
+	}
 
 	mutex_unlock(&priv->state_lock);
 
drivers/net/ethernet/mellanox/mlx5/core/esw/acl/ingress_ofld.c +1 -2
index a994e71e05c1..db578a7e7008 100644
@@ -364,8 +364,7 @@ int mlx5_esw_acl_ingress_vport_bond_update(struct mlx5_eswitch *esw, u16 vport_n
 
 	if (WARN_ON_ONCE(IS_ERR(vport))) {
 		esw_warn(esw->dev, "vport(%d) invalid!\n", vport_num);
-		err = PTR_ERR(vport);
-		goto out;
+		return PTR_ERR(vport);
 	}
 
 	esw_acl_ingress_ofld_rules_destroy(esw, vport);
drivers/net/ethernet/mellanox/mlx5/core/eswitch.c +1 -0
index 43ba00d5e36e..4b9d567c8f47 100644
@@ -916,6 +916,7 @@ void mlx5_esw_vport_disable(struct mlx5_eswitch *esw, u16 vport_num)
 	 */
 	esw_vport_change_handle_locked(vport);
 	vport->enabled_events = 0;
+	esw_apply_vport_rx_mode(esw, vport, false, false);
 	esw_vport_cleanup(esw, vport);
 	esw->enabled_vports--;
 
drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c +19 -0
index 34790a82a097..64e5b9f29206 100644
@@ -3488,6 +3488,18 @@ static int esw_inline_mode_to_devlink(u8 mlx5_mode, u8 *mode)
 	return 0;
 }
 
+static bool esw_offloads_devlink_ns_eq_netdev_ns(struct devlink *devlink)
+{
+	struct net *devl_net, *netdev_net;
+	struct mlx5_eswitch *esw;
+
+	esw = mlx5_devlink_eswitch_get(devlink);
+	netdev_net = dev_net(esw->dev->mlx5e_res.uplink_netdev);
+	devl_net = devlink_net(devlink);
+
+	return net_eq(devl_net, netdev_net);
+}
+
 int mlx5_devlink_eswitch_mode_set(struct devlink *devlink, u16 mode,
 				  struct netlink_ext_ack *extack)
 {
@@ -3502,6 +3514,13 @@ int mlx5_devlink_eswitch_mode_set(struct devlink *devlink, u16 mode,
 	if (esw_mode_from_devlink(mode, &mlx5_mode))
 		return -EINVAL;
 
+	if (mode == DEVLINK_ESWITCH_MODE_SWITCHDEV &&
+	    !esw_offloads_devlink_ns_eq_netdev_ns(devlink)) {
+		NL_SET_ERR_MSG_MOD(extack,
+				   "Can't change E-Switch mode to switchdev when netdev net namespace has diverged from the devlink's.");
+		return -EPERM;
+	}
+
 	mlx5_lag_disable_change(esw->dev);
 	err = mlx5_esw_try_lock(esw);
 	if (err < 0) {
drivers/net/ethernet/mellanox/mlxsw/core_thermal.c +49 -167

150 lines not on this page · raw message

drivers/net/ethernet/mellanox/mlxsw/spectrum_fid.c +2 -2
index 045a24cacfa5..b6ee2d658b0c 100644

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

drivers/net/ethernet/natsemi/sonic.c +2 -2
index d17d1b4f2585..825356ee3492 100644

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

drivers/net/ethernet/qlogic/qed/qed_sriov.c +4 -1
index 0848b5529d48..911509c2b17d 100644

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

drivers/net/ethernet/qualcomm/emac/emac.c +6 -0
index 3115b2c12898..eaa50050aa0b 100644

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

drivers/net/ethernet/stmicro/stmmac/common.h +1 -0
index 6b5d96bced47..ec9c130276d8 100644

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

drivers/net/ethernet/stmicro/stmmac/dwmac-imx.c +1 -1
index bd52fb7cf486..0d6a84199fd8 100644

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

drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c +2 -2
index 7deb1f817dac..13aa919633b4 100644

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

drivers/net/ethernet/stmicro/stmmac/dwmac-mediatek.c +1 -1
index 2f7d8e4561d9..9ae31e3dc821 100644

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

drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +16 -14
index 3c1d4b27668f..93321437f093 100644

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

drivers/net/ethernet/toshiba/ps3_gelic_net.c +22 -19

41 lines not on this page · raw message

drivers/net/ethernet/toshiba/ps3_gelic_net.h +3 -2
index 68f324ed4eaf..0d98defb011e 100644

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

drivers/net/ethernet/xircom/xirc2ps_cs.c +5 -0
index 894e92ef415b..9f505cf02d96 100644

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

drivers/net/ieee802154/ca8210.c +2 -0
index e1a569b99e4a..0b0c6c0764fe 100644

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

drivers/net/mdio/acpi_mdio.c +6 -4
index d77c987fda9c..4630dde01974 100644

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

drivers/net/mdio/mdio-thunder.c +1 -0
index 822d2cdd2f35..394b864aaa37 100644

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

drivers/net/mdio/of_mdio.c +7 -5
index 510822d6d0d9..1e46e39f5f46 100644

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

drivers/net/phy/mdio_devres.c +6 -5
index b560e99695df..69b829e6ab35 100644

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

drivers/net/phy/phy.c +16 -7
index e741d8aebffe..d1aea767ed09 100644

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

drivers/net/usb/asix_devices.c +27 -5
index 11f60d32be82..6eacbf17f1c0 100644

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

drivers/net/usb/cdc_mbim.c +5 -0
index c89639381eca..cd4083e0b3b9 100644

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

drivers/net/usb/lan78xx.c +17 -1
index 068488890d57..c458c030fadf 100644

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

drivers/net/usb/qmi_wwan.c +1 -0
index 554d4e2a84a4..2cc28af52ee2 100644

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

drivers/net/usb/smsc95xx.c +6 -0
index 32d2c60d334d..563ecd27b93e 100644

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

drivers/platform/chrome/cros_ec_chardev.c +1 -1
index 0de7c255254e..d6de5a294128 100644

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

drivers/platform/x86/intel/int3472/tps68470_board_data.c +3 -2
index 309eab9c0558..322237e056f3 100644

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

drivers/power/supply/bq24190_charger.c +1 -0
index 2274679c5ddd..d7400b56820d 100644

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

drivers/power/supply/da9150-charger.c +1 -0
index f9314cc0cd75..6b987da58655 100644

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

drivers/scsi/device_handler/scsi_dh_alua.c +4 -2
index 610a51538f03..0781f991e784 100644

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

drivers/scsi/hisi_sas/hisi_sas_v3_hw.c +1 -2
index d56b4bfd2767..620dcefe7b6f 100644

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

drivers/scsi/lpfc/lpfc_init.c +2 -0
index b535f1fd3010..2f38c8d5a48a 100644

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

drivers/scsi/lpfc/lpfc_sli.c +4 -8
index b93c948c4fcc..b44bb3ae22ad 100644

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

drivers/scsi/mpi3mr/mpi3mr_app.c +2 -2
index bff637702397..d10c6afb7f9c 100644

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

drivers/scsi/mpi3mr/mpi3mr_fw.c +18 -1
index 74fa7f90399e..ea9e69fb6282 100644

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

drivers/scsi/mpi3mr/mpi3mr_transport.c +9 -6
index 50263ba4f842..5748bd9369ff 100644

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

drivers/scsi/qla2xxx/qla_gbl.h +1 -0
index e3256e721be1..ee54207fc531 100644

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

drivers/scsi/qla2xxx/qla_init.c +2 -1
index a8d822c4e3ba..93f7f3dd5d82 100644

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

drivers/scsi/qla2xxx/qla_isr.c +2 -1
index cbbd7014da93..86928a762a7a 100644

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

drivers/scsi/qla2xxx/qla_os.c +20 -1
index 6e33dc16ce6f..7d2d872bae3c 100644

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

drivers/scsi/scsi_devinfo.c +1 -0
index bc9d280417f6..3fcaf10a9dfe 100644

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

drivers/scsi/storvsc_drv.c +16 -0
index 55d6fb452680..a0665bca54b9 100644

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

drivers/soc/qcom/llcc-qcom.c +3 -3
index 82c3cfdcc560..9c6cf2f5d77c 100644

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

drivers/target/iscsi/iscsi_target_parameters.c +7 -5
index 2317fb077db0..557516c642c3 100644

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

drivers/tee/amdtee/core.c +14 -15
index 297dc62bca29..372d64756ed6 100644

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

drivers/thunderbolt/debugfs.c +6 -6
index 834bcad42e9f..d89f92032c1c 100644

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

drivers/thunderbolt/nhi.c +30 -19

49 lines not on this page · raw message

drivers/thunderbolt/nhi_regs.h +4 -2
index 0d4970dcef84..faef165a919c 100644

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

drivers/thunderbolt/quirks.c +13 -0
index b5f2ec79c4d6..ae28a03fa890 100644

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

drivers/thunderbolt/retimer.c +21 -2
index 56008eb91e2e..9cc28197dbc4 100644

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

drivers/thunderbolt/sb_regs.h +1 -0
index 5185cf3e4d97..f37a4320f10a 100644

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

drivers/thunderbolt/switch.c +2 -2
index 60da5c23ccaf..9699d167d522 100644

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

drivers/thunderbolt/tb.h +9 -3
index f9786976f5ec..e11d973a8f9b 100644

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

drivers/thunderbolt/usb4.c +31 -5
index f986854aa207..cf8d4f769579 100644

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

drivers/tty/hvc/hvc_xen.c +17 -2
index 37809c6c027f..d9d023275328 100644

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

drivers/ufs/core/ufshcd.c +1 -0
index edd34dac91b1..d89ce7fb6b36 100644

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

drivers/usb/cdns3/cdns3-pci-wrap.c +5 -0
index deeea618ba33..1f6320d98a76 100644

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

drivers/usb/cdns3/cdnsp-ep0.c +1 -18
index 9b8325f82499..d63d5d92f255 100644

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

drivers/usb/cdns3/cdnsp-pci.c +11 -16
index fe8a114c586c..29f433c5a6f3 100644

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

drivers/usb/chipidea/ci.h +2 -0
index a4a3be049910..85a803c135ab 100644

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

drivers/usb/chipidea/core.c +10 -1
index 6330fa911792..5abdc2b0f506 100644

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

drivers/usb/chipidea/otg.c +4 -1
index 7b53274ef966..10f8cc44a16d 100644

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

drivers/usb/dwc2/drd.c +2 -1
index d8d6493bc457..a8605b02115b 100644

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

drivers/usb/dwc2/platform.c +2 -14
index ec4ace0107f5..0c02ef7628fd 100644

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

drivers/usb/dwc3/gadget.c +11 -3
index df1ce96fa228..5997d7f943fe 100644

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

drivers/usb/gadget/function/u_audio.c +1 -1
index c1f62e91b012..4a42574b4a7f 100644

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

drivers/usb/misc/onboard_usb_hub.c +1 -0
index 044e75ad4d20..832d3ba9368f 100644

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

drivers/usb/misc/onboard_usb_hub.h +1 -0
index 34beab8bce3d..2cde54b69eed 100644

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

drivers/usb/storage/unusual_uas.h +7 -0
index c7b763d6d102..1f8c9b16a0fb 100644

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

drivers/usb/typec/tcpm/tcpm.c +24 -4
index 59b366b5c614..032d21a96779 100644

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

drivers/usb/typec/ucsi/ucsi.c +6 -5
index 1cf8947c6d66..8cbbb002fefe 100644

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

drivers/usb/typec/ucsi/ucsi_acpi.c +1 -1
index ce0c8ef80c04..62206a6b8ea7 100644

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

fs/btrfs/zoned.c +12 -2
index 056f002263db..1b72004136ef 100644

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

fs/cifs/cached_dir.c +35 -2
index 75d5e06306ea..bfc964b36c72 100644

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

fs/cifs/cifs_debug.c +30 -16

46 lines not on this page · raw message

fs/cifs/cifsfs.c +6 -3
index 6094cb2ff099..03e3e95cf25b 100644

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

fs/cifs/cifssmb.c +2 -4
index 6b8f59912f70..6c6a7fc47f3e 100644

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

fs/cifs/connect.c +8 -6
index 0006b1ca0203..7aecb1646b6f 100644

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

fs/cifs/fs_context.h +1 -1
index bbaee4c2281f..a268896d05d5 100644

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

fs/cifs/link.c +2 -0
index d937eedd74fb..c0f101fc1e5d 100644

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

fs/cifs/smb2inode.c +1 -0
index 7a2862c10afb..c97e049e29dd 100644

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

fs/cifs/smb2ops.c +26 -1
index 0424876d22e5..ccf311750927 100644

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

fs/cifs/smb2pdu.c +4 -8
index 23926f754d2a..6e6e44d8b4c7 100644

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

fs/cifs/trace.h +8 -4
index 110070ba8b04..d3053bd8ae73 100644

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

fs/ksmbd/auth.c +3 -2
index 6e61b5bc7d86..cead696b656a 100644

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

fs/ksmbd/connection.c +4 -7
index 56be077e5d8a..2be9d7460494 100644

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

fs/ksmbd/connection.h +2 -1
index 3643354a3fa7..0e3a848defaf 100644

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

fs/ksmbd/smb2pdu.c +15 -5
index 0f0f1243a9cb..daaee7a89e05 100644

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

fs/ksmbd/smb_common.c +22 -5
index d96da872d70a..3d9e8d8a5762 100644

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

fs/ksmbd/smb_common.h +8 -22
index 318c16fa81da..c1f3006792ff 100644

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

fs/ksmbd/transport_rdma.c +1 -1
index 096eda9ef873..c06efc020bd9 100644

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

fs/ksmbd/transport_tcp.c +23 -12
index 603893fd87f5..20e85e2701f2 100644

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

fs/lockd/clnt4xdr.c +1 -8
index 7df6324ccb8a..8161667c976f 100644

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

fs/lockd/xdr4.c +12 -1
index 712fdfeb8ef0..5fcbf30cd275 100644

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

fs/nfs/read.c +3 -0
index 8ae2c8d1219d..cd970ce62786 100644

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

fs/nfsd/vfs.c +8 -1
index 59f9a8cee012..dc3ba13546dd 100644

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

fs/nilfs2/ioctl.c +1 -1
index b4041d0566a9..ef9f9a2511b7 100644

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

fs/super.c +12 -3
index 4f8a626a35cd..7c140ee60c54 100644

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

fs/verity/verify.c +6 -6
index bde8c9b7d25f..e23d382fc94b 100644

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

include/linux/acpi_mdio.h +8 -1
index 0a24ab7cb66f..8e2eefa9fbc0 100644

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

include/linux/context_tracking.h +1 -0
index d4afa8508a80..3a7909ed5498 100644

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

include/linux/context_tracking_state.h +2 -0
index 4a4d56f77180..fdd537ea513f 100644

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

include/linux/lockd/xdr4.h +1 -0
index 9a6b55da8fd6..72831e35dca3 100644

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

include/linux/nvme-tcp.h +3 -2
index 75470159a194..57ebe1267f7f 100644

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

include/linux/of_mdio.h +19 -3
index da633d34ab86..8a52ef2e6fa6 100644

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

include/linux/stmmac.h +1 -1
index 313edd19bf54..d82ff9fa1a6e 100644

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

include/linux/sysfb.h +7 -2
index 8ba8b5be5567..c1ef5fc60a3c 100644

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

io_uring/filetable.c +3 -0
index 68dfc6936aa7..b80614e7d605 100644

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

io_uring/net.c +16 -9
index 4fdc2770bbe4..f6d8b02387a9 100644

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

io_uring/rsrc.c +1 -0
index 185d5dfb7d56..4426d0e15174 100644

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

kernel/bpf/core.c +1 -1
index 211f63e87c63..64706723624b 100644

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

kernel/entry/common.c +3 -2
index 846add8394c4..be61332c66b5 100644

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

kernel/events/core.c +2 -2
index 227ada724029..2aa286b4151b 100644

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

kernel/sched/core.c +3 -0
index f730b6fe94a7..9ebfd484189b 100644

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

kernel/sched/fair.c +49 -5

54 lines not on this page · raw message

kernel/trace/trace_hwlat.c +2 -2
index c4945f8adc11..2f37a6e68aa9 100644

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

lib/maple_tree.c +5 -19
index 69cb44b035ec..96be96a1f35d 100644

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

lib/test_maple_tree.c +48 -0

48 lines not on this page · raw message

mm/kfence/Makefile +1 -1
index 0bb95728a784..2de2a58d11a1 100644

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

mm/kfence/core.c +8 -2
index 141788858b70..c3d04753806a 100644

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

mm/ksm.c +9 -2
index c19fcca9bc03..cb272b6fde59 100644

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

mm/page_alloc.c +2 -1
index b2877a84ed19..5cae08963984 100644

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

mm/slab.c +1 -1
index 59c8e28f7b6a..62869bc3c2f9 100644

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

net/bluetooth/hci_core.c +19 -4
index b65c3aabcd53..334e308451f5 100644

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

net/bluetooth/hci_sync.c +48 -20

68 lines not on this page · raw message

net/bluetooth/iso.c +7 -2
index 2dabef488eaa..cb959e8eac18 100644

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

net/bluetooth/l2cap_core.c +79 -38

117 lines not on this page · raw message

net/bluetooth/mgmt.c +2 -7
index 0dd30a3beb77..fc4ba0884da9 100644

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

net/dsa/tag_brcm.c +8 -2
index 16889ea3e0a7..a65d62fb9009 100644

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

net/ipv4/ip_gre.c +2 -2
index cae9f1a4e059..5b8242265617 100644

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

net/ipv6/ip6_gre.c +2 -2
index c035a96fba3a..4d5937af08ee 100644

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

net/mac80211/wme.c +4 -2
index ecc1de2e68a5..64430949f685 100644

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

net/mptcp/protocol.c +31 -32

63 lines not on this page · raw message

net/mptcp/protocol.h +4 -2
index 6f22ae13c984..051e8022d661 100644

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

net/mptcp/subflow.c +33 -83

116 lines not on this page · raw message

net/sched/act_mirred.c +15 -8
index b8ad6ae282c0..baeae5e5c8f0 100644

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

net/xdp/xdp_umem.c +7 -6
index 4681e8e8ad94..02207e852d79 100644

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

security/keys/request_key.c +6 -3
index 2da4404276f0..07a0ef2baacd 100644

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

sound/soc/amd/yc/acp6x-mach.c +14 -0
index 36314753923b..4a69ce702360 100644

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

tools/bootconfig/test-bootconfig.sh +8 -4
index f68e2e9eef8b..a2c484c243f5 100755

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

tools/testing/selftests/bpf/prog_tests/btf.c +28 -0
index 24dd6214394e..d711f4bea98e 100644

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

tools/testing/selftests/net/forwarding/tc_actions.sh +48 -1

49 lines not on this page · raw message

tools/testing/selftests/x86/amx.c +105 -3

108 lines not on this page · raw message

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

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