Linux 6.1.22
Greg Kroah-Hartman
maintainerI'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->lenTejas 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
Greg Kroah-Hartman
maintainerMakefile +1 -1
@@ -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
@@ -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
@@ -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
@@ -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
@@ -99,8 +99,6 @@ &eqos { phy-handle = <ðphy0>; 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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_pCOPY (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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -110,7 +110,7 @@ __init struct platform_device *sysfb_create_simplefb(const struct screen_info *sif (!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
@@ -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_staint 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -1174,13 +1174,13 @@ unsigned int dcn32_calculate_dccg_k1_k2_values(struct pipe_ctx *pipe_ctx, unsignif (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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -691,12 +691,12 @@ int intel_gt_init(struct intel_gt *gt)if (err) goto err_gt; -intel_uc_init_late (>->uc); - err =i915_inject_probe_error (gt->i915, -EIO );if (err) goto err_gt; +intel_uc_init_late (>->uc); +intel_migrate_init (>->migrate, gt);intel_pxp_init (>->pxp);
drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c +26 -4
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -263,7 +263,7 @@ static int b53_mmap_probe_of(struct platform_device *pdev,if (of_property_read_u32 (of_port,"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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -1412,6 +1412,7 @@ static int macsec_aso_query(struct mlx5_core_dev *mdev, struct mlx5e_macsec *macstruct 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 *macmacsec_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
@@ -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
@@ -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
@@ -364,8 +364,7 @@ int mlx5_esw_acl_ingress_vport_bond_update(struct mlx5_eswitch *esw, u16 vport_nif (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
@@ -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
@@ -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
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/qlogic/qed/qed_sriov.c +4 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/qualcomm/emac/emac.c +6 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/common.h +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/dwmac-imx.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/dwmac-mediatek.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +16 -14
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
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/xircom/xirc2ps_cs.c +5 -0
Lines of this file are not shown. View the raw message.
drivers/platform/chrome/cros_ec_chardev.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/platform/x86/intel/int3472/tps68470_board_data.c +3 -2
Lines of this file are not shown. View the raw message.
drivers/scsi/device_handler/scsi_dh_alua.c +4 -2
Lines of this file are not shown. View the raw message.
drivers/target/iscsi/iscsi_target_parameters.c +7 -5
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
fs/cifs/cifs_debug.c +30 -16
46 lines not on this page · raw message
kernel/sched/fair.c +49 -5
54 lines not on this page · raw message
lib/test_maple_tree.c +48 -0
48 lines not on this page · raw message
net/bluetooth/hci_sync.c +48 -20
68 lines not on this page · raw message
net/bluetooth/l2cap_core.c +79 -38
117 lines not on this page · raw message
net/mptcp/protocol.c +31 -32
63 lines not on this page · raw message
net/mptcp/subflow.c +33 -83
116 lines not on this page · raw message
tools/testing/selftests/bpf/prog_tests/btf.c +28 -0
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.