Linux 6.12.37
Greg Kroah-Hartman
maintainerI'm announcing the release of the 6.12.37 kernel.
All users of the 6.12 kernel series must upgrade.
The updated 6.12.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.12.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
thanks,
greg k-h
------------
Documentation/ABI/testing/sysfs-devices-system-cpu | 1 Documentation/ABI/testing/sysfs-driver-ufs | 2 Documentation/admin-guide/hw-vuln/processor_mmio_stale_data.rst | 4 Documentation/admin-guide/kernel-parameters.txt | 13 Documentation/arch/x86/mds.rst | 8 Documentation/core-api/symbol-namespaces.rst | 22 Makefile | 2 arch/arm64/boot/dts/apple/t8103-jxxx.dtsi | 2 arch/arm64/boot/dts/qcom/sm8650.dtsi | 163 - arch/arm64/boot/dts/qcom/x1e80100-crd.dts | 2 arch/arm64/boot/dts/renesas/beacon-renesom-som.dtsi | 3 arch/arm64/boot/dts/renesas/cat875.dtsi | 3 arch/arm64/boot/dts/renesas/condor-common.dtsi | 3 arch/arm64/boot/dts/renesas/draak.dtsi | 3 arch/arm64/boot/dts/renesas/ebisu.dtsi | 3 arch/arm64/boot/dts/renesas/hihope-rzg2-ex.dtsi | 3 arch/arm64/boot/dts/renesas/r8a77970-eagle.dts | 3 arch/arm64/boot/dts/renesas/r8a77970-v3msk.dts | 3 arch/arm64/boot/dts/renesas/r8a77980-v3hsk.dts | 3 arch/arm64/boot/dts/renesas/r8a779a0-falcon.dts | 3 arch/arm64/boot/dts/renesas/r8a779f0-spider-ethernet.dtsi | 9 arch/arm64/boot/dts/renesas/r8a779f4-s4sk.dts | 6 arch/arm64/boot/dts/renesas/r8a779g2-white-hawk-single.dts | 63 arch/arm64/boot/dts/renesas/r8a779h0-gray-hawk-single.dts | 3 arch/arm64/boot/dts/renesas/rzg2l-smarc-som.dtsi | 6 arch/arm64/boot/dts/renesas/rzg2lc-smarc-som.dtsi | 3 arch/arm64/boot/dts/renesas/rzg2ul-smarc-som.dtsi | 6 arch/arm64/boot/dts/renesas/rzg3s-smarc-som.dtsi | 6 arch/arm64/boot/dts/renesas/salvator-common.dtsi | 3 arch/arm64/boot/dts/renesas/ulcb.dtsi | 3 arch/arm64/boot/dts/renesas/white-hawk-cpu-common.dtsi | 3 arch/arm64/boot/dts/renesas/white-hawk-ethernet.dtsi | 6 arch/arm64/boot/dts/renesas/white-hawk-single.dtsi | 77 arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi | 42 arch/powerpc/include/uapi/asm/ioctls.h | 8 arch/powerpc/kernel/Makefile | 2 arch/riscv/kernel/cpu_ops_sbi.c | 6 arch/s390/pci/pci_event.c | 15 arch/x86/Kconfig | 9 arch/x86/entry/entry.S | 8 arch/x86/include/asm/cpu.h | 12 arch/x86/include/asm/cpufeatures.h | 6 arch/x86/include/asm/irqflags.h | 4 arch/x86/include/asm/mwait.h | 28 arch/x86/include/asm/nospec-branch.h | 37 arch/x86/kernel/cpu/amd.c | 60 arch/x86/kernel/cpu/bugs.c | 133 arch/x86/kernel/cpu/common.c | 14 arch/x86/kernel/cpu/microcode/amd.c | 12 arch/x86/kernel/cpu/microcode/amd_shas.c | 112 arch/x86/kernel/cpu/scattered.c | 2 arch/x86/kernel/process.c | 16 arch/x86/kvm/cpuid.c | 8 arch/x86/kvm/reverse_cpuid.h | 8 arch/x86/kvm/svm/vmenter.S | 6 arch/x86/kvm/vmx/vmx.c | 2 drivers/acpi/acpica/dsmethod.c | 7 drivers/acpi/thermal.c | 12 drivers/ata/libata-acpi.c | 24 drivers/ata/pata_cs5536.c | 2 drivers/ata/pata_via.c | 6 drivers/base/cpu.c | 3 drivers/block/aoe/aoe.h | 1 drivers/block/aoe/aoecmd.c | 8 drivers/block/aoe/aoedev.c | 5 drivers/crypto/intel/iaa/iaa_crypto_main.c | 140 drivers/crypto/xilinx/zynqmp-sha.c | 18 drivers/dma-buf/dma-resv.c | 12 drivers/firmware/arm_ffa/driver.c | 59 drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c | 14 drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 10 drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c | 4 drivers/gpu/drm/amd/amdgpu/imu_v11_0.c | 6 drivers/gpu/drm/amd/amdgpu/psp_v13_0.c | 2 drivers/gpu/drm/amd/amdgpu/vcn_v5_0_1.c | 1624 ++++++++++ drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c | 35 drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c | 8 drivers/gpu/drm/bridge/aux-hpd-bridge.c | 3 drivers/gpu/drm/exynos/exynos_drm_fimd.c | 12 drivers/gpu/drm/i915/display/intel_dp.c | 18 drivers/gpu/drm/i915/gt/intel_gsc.c | 2 drivers/gpu/drm/i915/gt/intel_ring_submission.c | 3 drivers/gpu/drm/i915/selftests/i915_request.c | 20 drivers/gpu/drm/i915/selftests/mock_request.c | 2 drivers/gpu/drm/msm/msm_gem_submit.c | 17 drivers/gpu/drm/tiny/simpledrm.c | 4 drivers/gpu/drm/v3d/v3d_drv.h | 8 drivers/gpu/drm/v3d/v3d_gem.c | 2 drivers/gpu/drm/v3d/v3d_irq.c | 37 drivers/gpu/drm/xe/Kconfig | 3 drivers/gpu/drm/xe/abi/guc_communication_ctb_abi.h | 1 drivers/gpu/drm/xe/compat-i915-headers/gem/i915_gem_stolen.h | 2 drivers/gpu/drm/xe/display/xe_dsb_buffer.c | 18 drivers/gpu/drm/xe/display/xe_fb_pin.c | 17 drivers/gpu/drm/xe/regs/xe_reg_defs.h | 2 drivers/gpu/drm/xe/xe_bo.c | 78 drivers/gpu/drm/xe/xe_bo.h | 40 drivers/gpu/drm/xe/xe_bo_evict.c | 14 drivers/gpu/drm/xe/xe_bo_types.h | 10 drivers/gpu/drm/xe/xe_device.c | 55 drivers/gpu/drm/xe/xe_ggtt.c | 35 drivers/gpu/drm/xe/xe_guc.c | 4 drivers/gpu/drm/xe/xe_guc_ct.c | 350 +- drivers/gpu/drm/xe/xe_guc_ct.h | 2 drivers/gpu/drm/xe/xe_guc_ct_types.h | 23 drivers/gpu/drm/xe/xe_guc_pc.c | 144 drivers/gpu/drm/xe/xe_guc_pc.h | 2 drivers/gpu/drm/xe/xe_guc_pc_types.h | 2 drivers/gpu/drm/xe/xe_irq.c | 4 drivers/gpu/drm/xe/xe_trace_bo.h | 2 drivers/i2c/busses/i2c-designware-master.c | 1 drivers/infiniband/hw/mlx5/counters.c | 4 drivers/infiniband/hw/mlx5/devx.c | 2 drivers/infiniband/hw/mlx5/main.c | 33 drivers/infiniband/hw/mlx5/mr.c | 63 drivers/infiniband/hw/mlx5/odp.c | 8 drivers/infiniband/sw/rxe/rxe_qp.c | 7 drivers/input/joystick/xpad.c | 2 drivers/input/misc/cs40l50-vibra.c | 2 drivers/input/misc/iqs7222.c | 7 drivers/iommu/ipmmu-vmsa.c | 2 drivers/iommu/rockchip-iommu.c | 3 drivers/mfd/exynos-lpass.c | 25 drivers/mmc/core/quirks.h | 12 drivers/mmc/host/mtk-sd.c | 21 drivers/mmc/host/sdhci.c | 9 drivers/mmc/host/sdhci.h | 16 drivers/mtd/nand/spi/core.c | 1 drivers/net/bonding/bond_main.c | 8 drivers/net/ethernet/amd/xgbe/xgbe-common.h | 2 drivers/net/ethernet/amd/xgbe/xgbe-mdio.c | 13 drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c | 24 drivers/net/ethernet/amd/xgbe/xgbe.h | 4 drivers/net/ethernet/atheros/atlx/atl1.c | 79 drivers/net/ethernet/cisco/enic/enic_main.c | 4 drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c | 26 drivers/net/ethernet/intel/idpf/idpf_controlq.c | 23 drivers/net/ethernet/intel/idpf/idpf_controlq_api.h | 2 drivers/net/ethernet/intel/idpf/idpf_ethtool.c | 4 drivers/net/ethernet/intel/idpf/idpf_lib.c | 12 drivers/net/ethernet/intel/igc/igc_main.c | 10 drivers/net/ethernet/sun/niu.c | 31 drivers/net/ethernet/sun/niu.h | 4 drivers/net/ethernet/wangxun/libwx/wx_lib.c | 1 drivers/net/ethernet/wangxun/txgbe/txgbe_irq.c | 2 drivers/net/ethernet/wangxun/txgbe/txgbe_main.c | 22 drivers/net/usb/lan78xx.c | 2 drivers/net/virtio_net.c | 60 drivers/net/wireless/ath/ath12k/dp_rx.c | 3 drivers/net/wireless/ath/ath12k/dp_rx.h | 3 drivers/net/wireless/ath/ath12k/dp_tx.c | 21 drivers/net/wireless/ath/ath12k/mac.c | 16 drivers/net/wireless/ath/ath6kl/bmi.c | 4 drivers/nvme/host/core.c | 2 drivers/nvme/target/nvmet.h | 2 drivers/platform/mellanox/mlxbf-pmc.c | 2 drivers/platform/mellanox/mlxbf-tmfifo.c | 3 drivers/platform/mellanox/mlxreg-lc.c | 2 drivers/platform/mellanox/nvsw-sn2201.c | 2 drivers/platform/x86/amd/pmc/pmc-quirks.c | 9 drivers/platform/x86/dell/dell-wmi-sysman/dell-wmi-sysman.h | 5 drivers/platform/x86/dell/dell-wmi-sysman/enum-attributes.c | 5 drivers/platform/x86/dell/dell-wmi-sysman/int-attributes.c | 5 drivers/platform/x86/dell/dell-wmi-sysman/passobj-attributes.c | 5 drivers/platform/x86/dell/dell-wmi-sysman/string-attributes.c | 5 drivers/platform/x86/dell/dell-wmi-sysman/sysman.c | 25 drivers/platform/x86/firmware_attributes_class.c | 41 drivers/platform/x86/firmware_attributes_class.h | 3 drivers/platform/x86/hp/hp-bioscfg/bioscfg.c | 14 drivers/platform/x86/think-lmi.c | 103 drivers/powercap/intel_rapl_common.c | 18 drivers/regulator/fan53555.c | 14 drivers/regulator/gpio-regulator.c | 8 drivers/remoteproc/ti_k3_dsp_remoteproc.c | 6 drivers/remoteproc/ti_k3_m4_remoteproc.c | 6 drivers/remoteproc/ti_k3_r5_remoteproc.c | 180 - drivers/rtc/rtc-cmos.c | 10 drivers/rtc/rtc-pcf2127.c | 7 drivers/scsi/lpfc/lpfc_bsg.c | 6 drivers/scsi/lpfc/lpfc_crtn.h | 2 drivers/scsi/lpfc/lpfc_ct.c | 18 drivers/scsi/lpfc/lpfc_debugfs.c | 4 drivers/scsi/lpfc/lpfc_disc.h | 60 drivers/scsi/lpfc/lpfc_els.c | 437 +- drivers/scsi/lpfc/lpfc_hbadisc.c | 305 - drivers/scsi/lpfc/lpfc_init.c | 58 drivers/scsi/lpfc/lpfc_nportdisc.c | 329 -- drivers/scsi/lpfc/lpfc_nvme.c | 9 drivers/scsi/lpfc/lpfc_nvmet.c | 2 drivers/scsi/lpfc/lpfc_scsi.c | 8 drivers/scsi/lpfc/lpfc_sli.c | 78 drivers/scsi/lpfc/lpfc_vport.c | 6 drivers/scsi/qla2xxx/qla_mbx.c | 2 drivers/scsi/qla4xxx/ql4_os.c | 2 drivers/scsi/sd.c | 2 drivers/spi/spi-fsl-dspi.c | 11 drivers/target/target_core_pr.c | 4 drivers/tee/optee/ffa_abi.c | 41 drivers/tee/optee/optee_private.h | 2 drivers/ufs/core/ufs-sysfs.c | 4 drivers/usb/cdns3/cdnsp-debug.h | 5 drivers/usb/cdns3/cdnsp-ep0.c | 18 drivers/usb/cdns3/cdnsp-gadget.h | 6 drivers/usb/cdns3/cdnsp-ring.c | 7 drivers/usb/chipidea/udc.c | 7 drivers/usb/core/hub.c | 3 drivers/usb/core/quirks.c | 3 drivers/usb/core/usb-acpi.c | 4 drivers/usb/dwc3/core.c | 9 drivers/usb/dwc3/gadget.c | 22 drivers/usb/host/xhci-dbgcap.c | 4 drivers/usb/host/xhci-dbgtty.c | 1 drivers/usb/host/xhci-mem.c | 4 drivers/usb/host/xhci-pci.c | 25 drivers/usb/host/xhci-plat.c | 3 drivers/usb/host/xhci-ring.c | 5 drivers/usb/host/xhci.c | 31 drivers/usb/host/xhci.h | 3 drivers/usb/typec/altmodes/displayport.c | 5 drivers/vfio/pci/hisilicon/hisi_acc_vfio_pci.c | 14 fs/anon_inodes.c | 27 fs/bcachefs/fsck.c | 2 fs/bcachefs/recovery.c | 2 fs/bcachefs/util.h | 2 fs/btrfs/file.c | 21 fs/btrfs/inode.c | 36 fs/btrfs/ioctl.c | 4 fs/btrfs/tree-log.c | 377 +- fs/erofs/xattr.c | 2 fs/f2fs/data.c | 2 fs/f2fs/f2fs.h | 35 fs/f2fs/file.c | 3 fs/f2fs/gc.h | 1 fs/f2fs/segment.c | 11 fs/f2fs/segment.h | 10 fs/f2fs/super.c | 42 fs/file_table.c | 4 fs/gfs2/aops.c | 54 fs/gfs2/aops.h | 3 fs/gfs2/bmap.c | 3 fs/gfs2/glock.c | 19 fs/gfs2/glops.c | 9 fs/gfs2/incore.h | 3 fs/gfs2/inode.c | 96 fs/gfs2/inode.h | 1 fs/gfs2/log.c | 7 fs/gfs2/super.c | 114 fs/gfs2/trace_gfs2.h | 9 fs/gfs2/trans.c | 21 fs/gfs2/trans.h | 2 fs/gfs2/xattr.c | 11 fs/gfs2/xattr.h | 2 fs/kernfs/file.c | 2 fs/netfs/buffered_write.c | 2 fs/netfs/direct_write.c | 8 fs/netfs/write_collect.c | 5 fs/nfs/flexfilelayout/flexfilelayout.c | 121 fs/nfs/inode.c | 17 fs/nfs/pnfs.c | 4 fs/smb/client/cifsglob.h | 2 fs/smb/client/cifsproto.h | 1 fs/smb/client/cifssmb.c | 2 fs/smb/client/connect.c | 15 fs/smb/client/misc.c | 6 fs/smb/client/readdir.c | 2 fs/smb/client/smb2pdu.c | 11 include/linux/bpf_verifier.h | 31 include/linux/cpu.h | 1 include/linux/dcache.h | 1 include/linux/export.h | 12 include/linux/fs.h | 2 include/linux/libata.h | 7 include/linux/spinlock.h | 13 include/linux/usb.h | 2 include/linux/usb/typec_dp.h | 1 kernel/bpf/verifier.c | 125 kernel/irq/irq_sim.c | 2 kernel/rcu/tree.c | 4 kernel/sched/core.c | 4 kernel/sched/debug.c | 7 kernel/sched/ext.c | 12 kernel/sched/fair.c | 117 kernel/sched/pelt.c | 4 kernel/sched/sched.h | 5 lib/Kconfig.ubsan | 2 lib/test_objagg.c | 4 mm/secretmem.c | 10 mm/userfaultfd.c | 33 mm/vmalloc.c | 63 net/bluetooth/hci_event.c | 36 net/bluetooth/hci_sync.c | 227 - net/bluetooth/mgmt.c | 25 net/mac80211/rx.c | 4 net/rose/rose_route.c | 15 net/sched/sch_api.c | 19 net/sunrpc/rpc_pipe.c | 14 net/vmw_vsock/vmci_transport.c | 4 security/selinux/ss/services.c | 16 sound/isa/sb/sb16_main.c | 7 sound/soc/amd/yc/acp6x-mach.c | 14 sound/soc/codecs/tas2764.c | 46 sound/soc/codecs/tas2764.h | 3 tools/testing/kunit/qemu_configs/sparc.py | 7 tools/testing/selftests/iommu/iommufd.c | 30 304 files changed, 5903 insertions(+), 2737 deletions(-)
Ahmed Zaki (1):
idpf: convert control queue mutex to a spinlock
Al Viro (1):
add a string-to-qstr constructor
Alex Deucher (1):
drm/amdgpu/mes: add missing locking in helper functions
Alok Tiwari (5):
platform/mellanox: mlxbf-pmc: Fix duplicate event ID for CACHE_DATA1 platform/mellanox: nvsw-sn2201: Fix bus number in adapter error message
nvme: Fix incorrect cdw15 value in passthru error logging platform/mellanox: mlxreg-lc: Fix logic error in power state check
enic: fix incorrect MTU comparison in enic_change_mtu()
Andreas Gruenbacher (12):
gfs2: Initialize gl_no_formal_ino earlier
gfs2: Rename GIF_{DEFERRED -> DEFER}_DELETE
gfs2: Rename dinode_demise to evict_behavior
gfs2: Prevent inode creation race
gfs2: Decode missing glock flags in tracepoints
gfs2: Add GLF_PENDING_REPLY flag
gfs2: Replace GIF_DEFER_DELETE with GLF_DEFER_DELETE
gfs2: Move gfs2_dinode_dealloc
gfs2: Move GIF_ALLOC_FAILED check out of gfs2_ea_dealloc
gfs2: deallocate inodes in gfs2_create_inode
gfs2: Move gfs2_trans_add_databufs
gfs2: Don't start unnecessary transactions during log flush
Andrei Kuchynski (1):
usb: typec: displayport: Fix potential deadlock
Andrii Nakryiko (1):
bpf: use common instruction history across all states
Armin Wolf (1):
ACPI: thermal: Execute _SCP before reading trip points
Arnd Bergmann (1):
iommu: ipmmu-vmsa: avoid Wformat-security warning
Avri Altman (1):
mmc: core: sd: Apply BROKEN_SD_DISCARD quirk earlier
Bart Van Assche (1):
scsi: ufs: core: Fix spelling of a sysfs attribute name
Beleswar Padhi (5):
remoteproc: k3-r5: Add devm action to release reserved memory
remoteproc: k3-r5: Use devm_kcalloc() helper
remoteproc: k3-r5: Use devm_ioremap_wc() helper
remoteproc: k3-r5: Use devm_rproc_add() helper
remoteproc: k3-r5: Refactor sequential core power up/down operations
Benjamin Coddington (1):
NFSv4/pNFS: Fix a race to wake on NFS_LAYOUT_DRAIN
Borislav Petkov (AMD) (5):
x86/bugs: Rename MDS machinery to something more generic x86/bugs: Add a Transient Scheduler Attacks mitigation
KVM: SVM: Advertise TSA CPUID bits to guests x86/microcode/AMD: Add TSA microcode SHAs x86/process: Move the buffer clearing before MONITOR
Bui Quang Minh (2):
virtio-net: xsk: rx: fix the frame's length check
virtio-net: ensure the received length does not exceed allocated size
Chao Yu (2):
f2fs: zone: introduce first_zoned_segno in f2fs_sb_info
f2fs: zone: fix to calculate first_zoned_segno correctly
Christian Eggers (4):
Bluetooth: HCI: Set extended advertising data synchronously
Bluetooth: hci_sync: revert some mesh modifications
Bluetooth: MGMT: set_mesh: update LE scan interval and window
Bluetooth: MGMT: mesh_send: check instances prior disabling advertising
Christian König (1):
dma-buf: fix timeout handling in dma_resv_wait_timeout v2
Christian Marangi (1):
spinlock: extend guard with spinlock_bh variants
Christophe JAILLET (1):
mfd: exynos-lpass: Fix another error handling path in exynos_lpass_probe()
Cosmin Ratiu (1):
bonding: Mark active offloaded xfrm_states
Daeho Jeong (1):
f2fs: decrease spare area for pinned files for zoned devices
Dan Carpenter (2):
drm/i915/selftests: Change mock_request() to return error pointers
lib: test_objagg: Set error message in check_expect_hints_stats()
David Gow (1):
kunit: qemu_configs: Disable faulting tests on 32-bit SPARC
David Howells (2):
netfs: Fix i_size updating
netfs: Fix oops in write-retry from mis-resetting the subreq iterator
David Thompson (1):
platform/mellanox: mlxbf-tmfifo: fix vring_desc.len assignment
Dmitry Baryshkov (1):
drm/bridge: aux-hpd-bridge: fix assignment of the of_node
Dmitry Bogdanov (1):
nvmet: fix memory leak of bio integrity
Elena Popa (1):
rtc: pcf2127: fix SPI command byte for PCF2131
Ewan D. Milne (1):
scsi: lpfc: Restore clearing of NLP_UNREG_INP in ndlp->nlp_flag
Filipe Manana (10):
btrfs: fix missing error handling when searching for inode refs during log replay
btrfs: fix iteration of extrefs during log replay
btrfs: return a btrfs_inode from btrfs_iget_logging()
btrfs: return a btrfs_inode from read_one_inode()
btrfs: fix invalid inode pointer dereferences during log replay
btrfs: fix inode lookup error handling during log replay
btrfs: record new subvolume in parent dir earlier to avoid dir logging races
btrfs: propagate last_unlink_trans earlier when doing a rmdir
btrfs: use btrfs_record_snapshot_destroy() during rmdir
btrfs: fix wrong start offset for delalloc space release during mmap write
Frank Min (1):
drm/amdgpu: add kicker fws loading for gfx11/smu13/psp13
Fushuai Wang (1):
dpaa2-eth: fix xdp_rxq_info leak
Gabriel Santese (1):
ASoC: amd: yc: Add quirk for MSI Bravo 17 D7VF internal mic
Geert Uytterhoeven (3):
arm64: dts: renesas: Use interrupts-extended for Ethernet PHYs
arm64: dts: renesas: Factor out White Hawk Single board support
arm64: dts: renesas: white-hawk-single: Improve Ethernet TSN description
Greg Kroah-Hartman (1):
Linux 6.12.37
Gyeyoung Baek (1):
genirq/irq_sim: Initialize work context pointers properly
Harry Austen (1):
drm/xe: Allow dropping kunit dependency as built-in
HarshaVardhana S A (1):
vsock/vmci: Clear the vmci transport packet properly when initializing it
Heikki Krogerus (1):
usb: acpi: fix device link removal
Heiko Stuebner (1):
regulator: fan53555: add enable_time support and soft-start times
Herbert Xu (3):
crypto: iaa - Remove dst_null support
crypto: iaa - Do not clobber req->base.data
crypto: zynqmp-sha - Add locking
Hongyu Xie (1):
xhci: Disable stream for xHC controller with XHCI_BROKEN_STREAMS
Hugo Villeneuve (1):
rtc: pcf2127: add missing semicolon after statement
Imre Deak (1):
drm/i915/dp_mst: Work around Thunderbolt sink disconnect after SINK_COUNT_ESI read
James Clark (1):
spi: spi-fsl-dspi: Clear completion counter before initiating transfer
Janne Grunau (1):
arm64: dts: apple: t8103: Fix PCIe BCM4377 nodename
Janusz Krzysztofik (1):
drm/i915/gt: Fix timeline left held on VMA alloc error
Jeff LaBundy (1):
Input: iqs7222 - explicitly define number of external channels
Jens Wiklander (1):
optee: ffa: fix sleep in atomic context
Jeongjun Park (1):
mm/vmalloc: fix data race in show_numa_info()
Jiawen Wu (2):
net: txgbe: request MISC IRQ in ndo_open
net: libwx: fix the incorrect display of the queue number
Johan Hovold (1):
arm64: dts: qcom: x1e80100-crd: mark l12b and l15b always-on
Johannes Berg (3):
ata: pata_cs5536: fix build on 32-bit UML
wifi: mac80211: drop invalid source address OCB frames
wifi: ath6kl: remove WARN on bad firmware input
John Harrison (1):
drm/xe/guc: Dead CT helper
Juha-Pekka Heikkila (1):
drm/xe: add interface to request physical alignment for buffer objects
Junxiao Chang (1):
drm/i915/gsc: mei interrupt top half should be in irq disabled context
Justin Sanders (1):
aoe: defer rexmit timer downdev work to workqueue
Justin Tee (3):
scsi: lpfc: Remove NLP_RELEASE_RPI flag from nodelist structure
scsi: lpfc: Change lpfc_nodelist nlp_flag member into a bitmask
scsi: lpfc: Avoid potential ndlp use-after-free in dev_loss_tmo_callbk
Kairui Song (1):
mm: userfaultfd: fix race of userfaultfd_move and swap cache
Kees Cook (1):
ubsan: integer-overflow: depend on BROKEN to keep this out of CI
Kohei Enju (1):
rose: fix dangling neighbour pointers in rose_rt_device_down()
Krzysztof Kozlowski (1):
arm64: dts: qcom: sm8650: change labels to lower-case
Kuen-Han Tsai (1):
usb: dwc3: Abort suspend on soft disconnect failure
Kuniyuki Iwashima (1):
nfs: Clean up /proc/net/rpc/nfs when nfs_fs_proc_net_init() fails.
Kurt Borja (7):
platform/x86: dell-wmi-sysman: Fix WMI data block retrieval in sysfs callbacks platform/x86: hp-bioscfg: Fix class device unregistration platform/x86: think-lmi: Fix class device unregistration platform/x86: dell-wmi-sysman: Fix class device unregistration platform/x86: think-lmi: Create ksets consecutively platform/x86: think-lmi: Fix kobject cleanup
platform/x86: think-lmi: Fix sysfs group cleanup
Lion Ackermann (1):
net/sched: Always pass notifications when child class becomes empty
Longfang Liu (2):
hisi_acc_vfio_pci: bugfix cache write-back issue
hisi_acc_vfio_pci: bugfix the problem of uninstalling driver
Luca Weiss (1):
arm64: dts: qcom: sm8650: Fix domain-idle-state for CPU2
Lukasz Czechowski (1):
arm64: dts: rockchip: fix internal USB hub instability on RK3399 Puma
Maarten Lankhorst (2):
drm/xe: Fix DSB buffer coherency
drm/xe: Move DSB l2 flush to a more sensible place
Madhavan Srinivasan (2):
powerpc: Fix struct termio related ioctl macros powerpc/kernel: Fix ppc_save_regs inclusion in build
Manivannan Sadhasivam (1):
regulator: gpio: Fix the out-of-bounds access to drvdata::gpiods
Marek Szyprowski (1):
drm/exynos: fimd: Guard display clock control with runtime PM calls
Mario Limonciello (1):
platform/x86/amd/pmc: Add PCSpecialist Lafite Pro V 14M to 8042 quirks list
Mark Zhang (1):
RDMA/mlx5: Initialize obj_event->obj_sub_list before xa_insert
Markus Elfring (1):
remoteproc: k3: Call of_node_put(rmem_np) only once in three functions
Martin Povišer (2):
ASoC: tas2764: Extend driver to SN012776
ASoC: tas2764: Reinit cache on part reset
Masami Hiramatsu (Google) (2):
mtk-sd: Fix a pagefault in dma_unmap_sg() for not prepared data
mtk-sd: Prevent memory corruption from DMA map failure
Mateusz Jończyk (1):
rtc: cmos: use spin_lock_irqsave in cmos_interrupt
Mathias Nyman (1):
xhci: dbc: Flush queued requests before stopping dbc
Matthew Auld (1):
drm/xe: move DPT l2 flush to a more sensible place
Maurizio Lombardi (1):
scsi: target: Fix NULL pointer dereference in core_scsi3_decode_spec_i_port()
Maíra Canal (1):
drm/v3d: Disable interrupts before resetting the GPU
Michael Guralnik (1):
RDMA/mlx5: Fix cache entry update on dereg error
Michael J. Ruhl (1):
i2c/designware: Fix an initialization issue
Michal Swiatkowski (1):
idpf: return 0 size for RSS key if not supported
Michal Wajdeczko (1):
drm/xe/guc: Explicitly exit CT safe mode on unwind
Nicholas Kazlauskas (1):
drm/amd/display: Add more checks for DSC / HUBP ONO guarantees
Nicolas Escande (1):
wifi: ath12k: fix skb_ext_desc leak in ath12k_dp_tx() error path
Nicolin Chen (1):
iommufd/selftest: Fix iommufd_dirty_tracking with large hugepage sizes
Niklas Schnelle (2):
s390/pci: Fix stale function handles in error handling s390/pci: Do not try re-enabling load/store if device is disabled
Nilton Perim Neto (1):
Input: xpad - support Acer NGR 200 Controller
Niranjana Vishwanathapura (1):
drm/xe: Allow bo mapping on multiple ggtts
Nitin Gote (1):
drm/xe: Replace double space with single space after comma
Oleksij Rempel (1):
net: usb: lan78xx: fix WARN in __netif_napi_del_locked on disconnect
Oliver Neukum (1):
Logitech C-270 even more broken
Or Har-Toov (2):
RDMA/mlx5: Fix unsafe xarray access in implicit ODP handling IB/mlx5: Fix potential deadlock in MR deregistration
P Praneesh (1):
wifi: ath12k: Handle error cases during extended skb allocation
Pablo Martin-Gomez (1):
mtd: spinand: fix memory leak of ECC engine conf
Patrisious Haddad (3):
RDMA/mlx5: Fix HW counters query for non-representor devices RDMA/mlx5: Fix CC counters query for MPV RDMA/mlx5: Fix vport loopback for MPV device
Paulo Alcantara (4):
smb: client: fix warning when reconnecting channel
smb: client: set missing retry flag in smb2_writev_callback()
smb: client: set missing retry flag in cifs_readv_callback()
smb: client: set missing retry flag in cifs_writev_callback()
Pawel Laszczak (1):
usb: cdnsp: Fix issue with CV Bad Descriptor test
Pengyu Luo (1):
arm64: dts: qcom: sm8650: add the missing l2 cache node
Peter Chen (1):
usb: cdnsp: do not disable slot for disabled slot
Peter Zijlstra (1):
module: Provide EXPORT_SYMBOL_GPL_FOR_MODULES() helper
Philipp Kerling (1):
smb: client: fix readdir returning wrong type with POSIX extensions
Qu Wenruo (1):
btrfs: prepare btrfs_page_mkwrite() for large folios
RD Babiera (1):
usb: typec: altmodes/displayport: do not index invalid pin_assignments
Rafael J. Wysocki (1):
ACPICA: Refuse to evaluate a method if arguments are missing
Raju Rangoju (3):
amd-xgbe: align CL37 AN sequence as per databook
amd-xgbe: do not double read link status
usb: xhci: quirk for data loss in ISOC transfers
Rameshkumar Sundaram (1):
wifi: ath12k: fix wrong handling of CCMP256 and GCMP ciphers
Raven Black (1):
ASoC: amd: yc: update quirk data for HP Victus
Rob Clark (2):
drm/msm: Fix a fence leak in submit error path drm/msm: Fix another leak in the submit error path
Roy Luo (2):
usb: xhci: Skip xhci_reset in xhci_resume if xhci is being removed Revert "usb: xhci: Implement xhci_handshake_check_state() helper"
Sergey Senozhatsky (1):
mtk-sd: reset host->mrq on prepare_data() error
Shivank Garg (1):
fs: export anon_inode_make_secure_inode() and fix secretmem LSM bypass
Shyam Prasad N (1):
cifs: all initializations for tcon should happen in tcon_info_alloc
Simon Xue (1):
iommu/rockchip: prevent iommus dead loop when two masters share one IOMMU
Sonny Jiang (1):
drm/amdgpu: VCN v5_0_1 to prevent FW checking RB during DPG pause
Stephen Smalley (1):
selinux: change security_compute_sid to return the ssid or tsid on match
Sudeep Holla (3):
firmware: arm_ffa: Fix memory leak by freeing notifier callback node
firmware: arm_ffa: Move memory allocation outside the mutex locking
firmware: arm_ffa: Replace mutex with rwlock to avoid sleep in atomic context
Takashi Iwai (2):
ALSA: sb: Don't allow changing the DMA mode during operations
ALSA: sb: Force to disable DMAs once when DMA mode is changed
Tasos Sahanidis (1):
ata: libata-acpi: Do not assume 40 wire cable if no devices are enabled
Tejun Heo (1):
sched_ext: Make scx_group_set_weight() always update tg->scx.weight
Thomas Fourier (4):
scsi: qla2xxx: Fix DMA mapping test in qla24xx_get_port_database()
scsi: qla4xxx: Fix missing DMA mapping error in qla4xxx_alloc_pdu()
ethernet: atl1: Add missing DMA mapping error checks and count errors
nui: Fix dma_mapping_error() check
Thomas Weißschuh (7):
platform/x86: hp-bioscfg: Directly use firmware_attributes_class platform/x86: firmware_attributes_class: Move include linux/device/class.h platform/x86: firmware_attributes_class: Simplify API platform/x86: think-lmi: Directly use firmware_attributes_class platform/x86: dell-sysman: Directly use firmware_attributes_class
kunit: qemu_configs: sparc: use Zilog console
kunit: qemu_configs: sparc: Explicitly enable CONFIG_SPARC32=y
Thomas Zimmermann (1):
drm/simpledrm: Do not upcast in release helpers
Trond Myklebust (1):
NFSv4/flexfiles: Fix handling of NFS level errors in I/O
Uladzislau Rezki (Sony) (1):
rcu: Return early if callback is not specified
Ulf Hansson (1):
Revert "mmc: sdhci: Disable SD card clock before changing parameters"
Victor Shih (1):
mmc: sdhci: Add a helper function for dump register in dynamic debug mode
Vinay Belgaumkar (1):
drm/xe/bmg: Update Wa_22019338487
Vincent Guittot (2):
sched/fair: Rename h_nr_running into h_nr_queued sched/fair: Add new cfs_rq.h_nr_runnable
Vitaly Lifshits (1):
igc: disable L1.2 PCI-E link substate to avoid performance issue
Vivian Wang (1):
riscv: cpu_ops_sbi: Use static array for boot_data
Wang Zhaolong (1):
smb: client: fix race condition in negotiate timeout by using more precise timing
Xu Yang (1):
usb: chipidea: udc: disconnect/reconnect from host when do suspend/resume
Xuewen Yan (1):
sched/fair: Fixup wake_up_sync() vs DELAYED_DEQUEUE
Yang Li (1):
Bluetooth: Prevent unintended pause by checking if advertising is active
Yonghong Song (1):
bpf: Do not include stack ptr register in precision backtracking bookkeeping
Yunshui Jiang (1):
Input: cs40l50-vibra - fix potential NULL dereference in cs40l50_upload_owt()
Zhang Rui (1):
powercap: intel_rapl: Do not change CLAMPING bit if ENABLE bit cannot be changed
Zhu Yanjun (1):
RDMA/rxe: Fix "trying to register non-static key in rxe_qp_do_cleanup" bug
jackysliu (1):
scsi: sd: Fix VPD page 0xb7 length check
xueqin Luo (1):
ACPI: thermal: Fix stale comment regarding trip points
Łukasz Bartosik (1):
xhci: dbctty: disable ECHO flag by default
Greg Kroah-Hartman
maintainerDocumentation/ABI/testing/sysfs-devices-system-cpu +1 -0
@@ -523,6 +523,7 @@ What: /sys/devices/system/cpu/vulnerabilities /sys/devices/system/cpu/vulnerabilities/spectre_v1 /sys/devices/system/cpu/vulnerabilities/spectre_v2 /sys/devices/system/cpu/vulnerabilities/srbds + /sys/devices/system/cpu/vulnerabilities/tsa /sys/devices/system/cpu/vulnerabilities/tsx_async_abort Date: January 2018 Contact: Linux kernel mailing list <[email protected]>
Documentation/ABI/testing/sysfs-driver-ufs +1 -1
@@ -711,7 +711,7 @@ Description: This file shows the thin provisioning type. This is one of The file is read only. -What: /sys/class/scsi_device/*/device/unit_descriptor/physical_memory_resourse_count +What: /sys/class/scsi_device/*/device/unit_descriptor/physical_memory_resource_count Date: February 2018 Contact: Stanislav Nijnikov <[email protected]> Description: This file shows the total physical memory resources. This is
Documentation/admin-guide/hw-vuln/processor_mmio_stale_data.rst +1 -3
@@ -157,9 +157,7 @@ This is achieved by using the otherwise unused and obsolete VERW instruction in combination with a microcode update. The microcode clears the affected CPU buffers when the VERW instruction is executed. -Kernel reuses the MDS function to invoke the buffer clearing: - - mds_clear_cpu_buffers() +Kernel does the buffer clearing with x86_clear_cpu_buffers(). On MDS affected CPUs, the kernel already invokes CPU buffer clear on kernel/userspace, hypervisor/guest and C-state (idle) transitions. No
Documentation/admin-guide/kernel-parameters.txt +13 -0
@@ -6993,6 +6993,19 @@ having this key zero'ed is acceptable. E.g. in testing scenarios. + tsa= [X86] Control mitigation for Transient Scheduler + Attacks on AMD CPUs. Search the following in your + favourite search engine for more details: + + "Technical guidance for mitigating transient scheduler + attacks". + + off - disable the mitigation + on - enable the mitigation (default) + user - mitigate only user/kernel transitions + vm - mitigate only guest/host transitions + + tsc= Disable clocksource stability checks for TSC. Format: <string> [x86] reliable: mark tsc clocksource as reliable, this
Documentation/arch/x86/mds.rst +4 -4
@@ -93,7 +93,7 @@ enters a C-state. The kernel provides a function to invoke the buffer clearing: - mds_clear_cpu_buffers() + x86_clear_cpu_buffers() Also macro CLEAR_CPU_BUFFERS can be used in ASM late in exit-to-user path. Other than CFLAGS.ZF, this macro doesn't clobber any registers.
@@ -185,9 +185,9 @@ Mitigation points idle clearing would be a window dressing exercise and is therefore not activated. - The invocation is controlled by the static key mds_idle_clear which is - switched depending on the chosen mitigation mode and the SMT state of - the system. + The invocation is controlled by the static key cpu_buf_idle_clear which is + switched depending on the chosen mitigation mode and the SMT state of the + system. The buffer clear is only invoked before entering the C-State to prevent that stale data from the idling CPU from spilling to the Hyper-Thread
Documentation/core-api/symbol-namespaces.rst +22 -0
@@ -28,6 +28,9 @@ kernel. As of today, modules that make use of symbols exported into namespaces, are required to import the namespace. Otherwise the kernel will, depending on its configuration, reject loading the module or warn about a missing import. +Additionally, it is possible to put symbols into a module namespace, strictly +limiting which modules are allowed to use these symbols. + 2. How to define Symbol Namespaces ==================================
@@ -84,6 +87,22 @@ unit as preprocessor statement. The above example would then read:: within the corresponding compilation unit before any EXPORT_SYMBOL macro is used. +2.3 Using the EXPORT_SYMBOL_GPL_FOR_MODULES() macro +=================================================== + +Symbols exported using this macro are put into a module namespace. This +namespace cannot be imported. + +The macro takes a comma separated list of module names, allowing only those +modules to access this symbol. Simple tail-globs are supported. + +For example: + + EXPORT_SYMBOL_GPL_FOR_MODULES(preempt_notifier_inc, "kvm,kvm-*") + +will limit usage of this symbol to modules whoes name matches the given +patterns. + 3. How to use Symbols exported in Namespaces ============================================
@@ -155,3 +174,6 @@ in-tree modules:: You can also run nsdeps for external module builds. A typical usage is:: $ make -C <path_to_kernel_src> M=$PWD nsdeps + +Note: it will happily generate an import statement for the module namespace; +which will not work and generates build and runtime failures.
Makefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 6 PATCHLEVEL = 12 -SUBLEVEL = 36 +SUBLEVEL = 37 EXTRAVERSION = NAME = Baby Opossum Posse
arch/arm64/boot/dts/apple/t8103-jxxx.dtsi +1 -1
@@ -71,7 +71,7 @@ hpm1: usb-pd@3f { */ &port00 { bus-range = <1 1>; - wifi0: network@0,0 { + wifi0: wifi@0,0 { compatible = "pci14e4,4425"; reg = <0x10000 0x0 0x0 0x0 0x0>; /* To be filled by the loader */
arch/arm64/boot/dts/qcom/sm8650.dtsi +85 -78
422 lines not on this page · raw message
arch/arm64/boot/dts/qcom/x1e80100-crd.dts +2 -0
@@ -419,6 +419,7 @@ vreg_l12b_1p2: ldo12 { regulator-min-microvolt = <1200000>; regulator-max-microvolt = <1200000>; regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + regulator-always-on; }; vreg_l13b_3p0: ldo13 {
@@ -440,6 +441,7 @@ vreg_l15b_1p8: ldo15 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + regulator-always-on; }; vreg_l16b_2p9: ldo16 {
arch/arm64/boot/dts/renesas/beacon-renesom-som.dtsi +1 -2
@@ -62,8 +62,7 @@ phy0: ethernet-phy@0 { compatible = "ethernet-phy-id0022.1640", "ethernet-phy-ieee802.3-c22"; reg = <0>; - interrupt-parent = <&gpio2>; - interrupts = <11 IRQ_TYPE_LEVEL_LOW>; + interrupts-extended = <&gpio2 11 IRQ_TYPE_LEVEL_LOW>; reset-gpios = <&gpio2 10 GPIO_ACTIVE_LOW>; }; };
arch/arm64/boot/dts/renesas/cat875.dtsi +1 -2
@@ -25,8 +25,7 @@ phy0: ethernet-phy@0 { compatible = "ethernet-phy-id001c.c915", "ethernet-phy-ieee802.3-c22"; reg = <0>; - interrupt-parent = <&gpio2>; - interrupts = <21 IRQ_TYPE_LEVEL_LOW>; + interrupts-extended = <&gpio2 21 IRQ_TYPE_LEVEL_LOW>; reset-gpios = <&gpio1 20 GPIO_ACTIVE_LOW>; }; };
arch/arm64/boot/dts/renesas/condor-common.dtsi +1 -2
@@ -166,8 +166,7 @@ phy0: ethernet-phy@0 { "ethernet-phy-ieee802.3-c22"; rxc-skew-ps = <1500>; reg = <0>; - interrupt-parent = <&gpio4>; - interrupts = <23 IRQ_TYPE_LEVEL_LOW>; + interrupts-extended = <&gpio4 23 IRQ_TYPE_LEVEL_LOW>; reset-gpios = <&gpio4 22 GPIO_ACTIVE_LOW>; }; };
arch/arm64/boot/dts/renesas/draak.dtsi +1 -2
@@ -247,8 +247,7 @@ phy0: ethernet-phy@0 { "ethernet-phy-ieee802.3-c22"; rxc-skew-ps = <1500>; reg = <0>; - interrupt-parent = <&gpio5>; - interrupts = <19 IRQ_TYPE_LEVEL_LOW>; + interrupts-extended = <&gpio5 19 IRQ_TYPE_LEVEL_LOW>; reset-gpios = <&gpio5 18 GPIO_ACTIVE_LOW>; /* * TX clock internal delay mode is required for reliable
arch/arm64/boot/dts/renesas/ebisu.dtsi +1 -2
@@ -314,8 +314,7 @@ phy0: ethernet-phy@0 { "ethernet-phy-ieee802.3-c22"; rxc-skew-ps = <1500>; reg = <0>; - interrupt-parent = <&gpio2>; - interrupts = <21 IRQ_TYPE_LEVEL_LOW>; + interrupts-extended = <&gpio2 21 IRQ_TYPE_LEVEL_LOW>; reset-gpios = <&gpio1 20 GPIO_ACTIVE_LOW>; /* * TX clock internal delay mode is required for reliable
arch/arm64/boot/dts/renesas/hihope-rzg2-ex.dtsi +1 -2
@@ -27,8 +27,7 @@ phy0: ethernet-phy@0 { compatible = "ethernet-phy-id001c.c915", "ethernet-phy-ieee802.3-c22"; reg = <0>; - interrupt-parent = <&gpio2>; - interrupts = <11 IRQ_TYPE_LEVEL_LOW>; + interrupts-extended = <&gpio2 11 IRQ_TYPE_LEVEL_LOW>; reset-gpios = <&gpio2 10 GPIO_ACTIVE_LOW>; }; };
arch/arm64/boot/dts/renesas/r8a77970-eagle.dts +1 -2
@@ -111,8 +111,7 @@ phy0: ethernet-phy@0 { "ethernet-phy-ieee802.3-c22"; rxc-skew-ps = <1500>; reg = <0>; - interrupt-parent = <&gpio1>; - interrupts = <17 IRQ_TYPE_LEVEL_LOW>; + interrupts-extended = <&gpio1 17 IRQ_TYPE_LEVEL_LOW>; reset-gpios = <&gpio1 16 GPIO_ACTIVE_LOW>; }; };
arch/arm64/boot/dts/renesas/r8a77970-v3msk.dts +1 -2
@@ -117,8 +117,7 @@ phy0: ethernet-phy@0 { "ethernet-phy-ieee802.3-c22"; rxc-skew-ps = <1500>; reg = <0>; - interrupt-parent = <&gpio1>; - interrupts = <17 IRQ_TYPE_LEVEL_LOW>; + interrupts-extended = <&gpio1 17 IRQ_TYPE_LEVEL_LOW>; reset-gpios = <&gpio1 16 GPIO_ACTIVE_LOW>; }; };
arch/arm64/boot/dts/renesas/r8a77980-v3hsk.dts +1 -2
@@ -124,8 +124,7 @@ phy0: ethernet-phy@0 { "ethernet-phy-ieee802.3-c22"; rxc-skew-ps = <1500>; reg = <0>; - interrupt-parent = <&gpio4>; - interrupts = <23 IRQ_TYPE_LEVEL_LOW>; + interrupts-extended = <&gpio4 23 IRQ_TYPE_LEVEL_LOW>; reset-gpios = <&gpio4 22 GPIO_ACTIVE_LOW>; }; };
arch/arm64/boot/dts/renesas/r8a779a0-falcon.dts +1 -2
@@ -31,8 +31,7 @@ phy0: ethernet-phy@0 { "ethernet-phy-ieee802.3-c22"; rxc-skew-ps = <1500>; reg = <0>; - interrupt-parent = <&gpio4>; - interrupts = <16 IRQ_TYPE_LEVEL_LOW>; + interrupts-extended = <&gpio4 16 IRQ_TYPE_LEVEL_LOW>; reset-gpios = <&gpio4 15 GPIO_ACTIVE_LOW>; }; };
arch/arm64/boot/dts/renesas/r8a779f0-spider-ethernet.dtsi +3 -6
@@ -60,8 +60,7 @@ mdio { u101: ethernet-phy@1 { reg = <1>; compatible = "ethernet-phy-ieee802.3-c45"; - interrupt-parent = <&gpio3>; - interrupts = <10 IRQ_TYPE_LEVEL_LOW>; + interrupts-extended = <&gpio3 10 IRQ_TYPE_LEVEL_LOW>; }; }; };
@@ -78,8 +77,7 @@ mdio { u201: ethernet-phy@2 { reg = <2>; compatible = "ethernet-phy-ieee802.3-c45"; - interrupt-parent = <&gpio3>; - interrupts = <11 IRQ_TYPE_LEVEL_LOW>; + interrupts-extended = <&gpio3 11 IRQ_TYPE_LEVEL_LOW>; }; }; };
@@ -96,8 +94,7 @@ mdio { u301: ethernet-phy@3 { reg = <3>; compatible = "ethernet-phy-ieee802.3-c45"; - interrupt-parent = <&gpio3>; - interrupts = <9 IRQ_TYPE_LEVEL_LOW>; + interrupts-extended = <&gpio3 9 IRQ_TYPE_LEVEL_LOW>; }; }; };
arch/arm64/boot/dts/renesas/r8a779f4-s4sk.dts +2 -4
@@ -197,8 +197,7 @@ mdio { ic99: ethernet-phy@1 { reg = <1>; compatible = "ethernet-phy-ieee802.3-c45"; - interrupt-parent = <&gpio3>; - interrupts = <10 IRQ_TYPE_LEVEL_LOW>; + interrupts-extended = <&gpio3 10 IRQ_TYPE_LEVEL_LOW>; }; }; };
@@ -216,8 +215,7 @@ mdio { ic102: ethernet-phy@2 { reg = <2>; compatible = "ethernet-phy-ieee802.3-c45"; - interrupt-parent = <&gpio3>; - interrupts = <11 IRQ_TYPE_LEVEL_LOW>; + interrupts-extended = <&gpio3 11 IRQ_TYPE_LEVEL_LOW>; }; }; };
arch/arm64/boot/dts/renesas/r8a779g2-white-hawk-single.dts +1 -62
72 lines not on this page · raw message
arch/arm64/boot/dts/renesas/r8a779h0-gray-hawk-single.dts +1 -2
@@ -175,8 +175,7 @@ phy0: ethernet-phy@0 { "ethernet-phy-ieee802.3-c22"; rxc-skew-ps = <1500>; reg = <0>; - interrupt-parent = <&gpio7>; - interrupts = <5 IRQ_TYPE_LEVEL_LOW>; + interrupts-extended = <&gpio7 5 IRQ_TYPE_LEVEL_LOW>; reset-gpios = <&gpio7 10 GPIO_ACTIVE_LOW>; }; };
arch/arm64/boot/dts/renesas/rzg2l-smarc-som.dtsi +2 -4
@@ -102,8 +102,7 @@ phy0: ethernet-phy@7 { compatible = "ethernet-phy-id0022.1640", "ethernet-phy-ieee802.3-c22"; reg = <7>; - interrupt-parent = <&irqc>; - interrupts = <RZG2L_IRQ2 IRQ_TYPE_LEVEL_LOW>; + interrupts-extended = <&irqc RZG2L_IRQ2 IRQ_TYPE_LEVEL_LOW>; rxc-skew-psec = <2400>; txc-skew-psec = <2400>; rxdv-skew-psec = <0>;
@@ -130,8 +129,7 @@ phy1: ethernet-phy@7 { compatible = "ethernet-phy-id0022.1640", "ethernet-phy-ieee802.3-c22"; reg = <7>; - interrupt-parent = <&irqc>; - interrupts = <RZG2L_IRQ3 IRQ_TYPE_LEVEL_LOW>; + interrupts-extended = <&irqc RZG2L_IRQ3 IRQ_TYPE_LEVEL_LOW>; rxc-skew-psec = <2400>; txc-skew-psec = <2400>; rxdv-skew-psec = <0>;
arch/arm64/boot/dts/renesas/rzg2lc-smarc-som.dtsi +1 -2
@@ -82,8 +82,7 @@ phy0: ethernet-phy@7 { compatible = "ethernet-phy-id0022.1640", "ethernet-phy-ieee802.3-c22"; reg = <7>; - interrupt-parent = <&irqc>; - interrupts = <RZG2L_IRQ0 IRQ_TYPE_LEVEL_LOW>; + interrupts-extended = <&irqc RZG2L_IRQ0 IRQ_TYPE_LEVEL_LOW>; rxc-skew-psec = <2400>; txc-skew-psec = <2400>; rxdv-skew-psec = <0>;
arch/arm64/boot/dts/renesas/rzg2ul-smarc-som.dtsi +2 -4
@@ -78,8 +78,7 @@ phy0: ethernet-phy@7 { compatible = "ethernet-phy-id0022.1640", "ethernet-phy-ieee802.3-c22"; reg = <7>; - interrupt-parent = <&irqc>; - interrupts = <RZG2L_IRQ2 IRQ_TYPE_LEVEL_LOW>; + interrupts-extended = <&irqc RZG2L_IRQ2 IRQ_TYPE_LEVEL_LOW>; rxc-skew-psec = <2400>; txc-skew-psec = <2400>; rxdv-skew-psec = <0>;
@@ -107,8 +106,7 @@ phy1: ethernet-phy@7 { compatible = "ethernet-phy-id0022.1640", "ethernet-phy-ieee802.3-c22"; reg = <7>; - interrupt-parent = <&irqc>; - interrupts = <RZG2L_IRQ7 IRQ_TYPE_LEVEL_LOW>; + interrupts-extended = <&irqc RZG2L_IRQ7 IRQ_TYPE_LEVEL_LOW>; rxc-skew-psec = <2400>; txc-skew-psec = <2400>; rxdv-skew-psec = <0>;
arch/arm64/boot/dts/renesas/rzg3s-smarc-som.dtsi +2 -4
@@ -98,8 +98,7 @@ ð0 { phy0: ethernet-phy@7 { reg = <7>; - interrupt-parent = <&pinctrl>; - interrupts = <RZG2L_GPIO(12, 0) IRQ_TYPE_EDGE_FALLING>; + interrupts-extended = <&pinctrl RZG2L_GPIO(12, 0) IRQ_TYPE_EDGE_FALLING>; rxc-skew-psec = <0>; txc-skew-psec = <0>; rxdv-skew-psec = <0>;
@@ -124,8 +123,7 @@ ð1 { phy1: ethernet-phy@7 { reg = <7>; - interrupt-parent = <&pinctrl>; - interrupts = <RZG2L_GPIO(12, 1) IRQ_TYPE_EDGE_FALLING>; + interrupts-extended = <&pinctrl RZG2L_GPIO(12, 1) IRQ_TYPE_EDGE_FALLING>; rxc-skew-psec = <0>; txc-skew-psec = <0>; rxdv-skew-psec = <0>;
arch/arm64/boot/dts/renesas/salvator-common.dtsi +1 -2
@@ -353,8 +353,7 @@ phy0: ethernet-phy@0 { "ethernet-phy-ieee802.3-c22"; rxc-skew-ps = <1500>; reg = <0>; - interrupt-parent = <&gpio2>; - interrupts = <11 IRQ_TYPE_LEVEL_LOW>; + interrupts-extended = <&gpio2 11 IRQ_TYPE_LEVEL_LOW>; reset-gpios = <&gpio2 10 GPIO_ACTIVE_LOW>; }; };
arch/arm64/boot/dts/renesas/ulcb.dtsi +1 -2
@@ -150,8 +150,7 @@ phy0: ethernet-phy@0 { "ethernet-phy-ieee802.3-c22"; rxc-skew-ps = <1500>; reg = <0>; - interrupt-parent = <&gpio2>; - interrupts = <11 IRQ_TYPE_LEVEL_LOW>; + interrupts-extended = <&gpio2 11 IRQ_TYPE_LEVEL_LOW>; reset-gpios = <&gpio2 10 GPIO_ACTIVE_LOW>; }; };
arch/arm64/boot/dts/renesas/white-hawk-cpu-common.dtsi +1 -2
@@ -167,8 +167,7 @@ avb0_phy: ethernet-phy@0 { "ethernet-phy-ieee802.3-c22"; rxc-skew-ps = <1500>; reg = <0>; - interrupt-parent = <&gpio7>; - interrupts = <5 IRQ_TYPE_LEVEL_LOW>; + interrupts-extended = <&gpio7 5 IRQ_TYPE_LEVEL_LOW>; reset-gpios = <&gpio7 10 GPIO_ACTIVE_LOW>; }; };
arch/arm64/boot/dts/renesas/white-hawk-ethernet.dtsi +2 -4
@@ -29,8 +29,7 @@ mdio { avb1_phy: ethernet-phy@0 { compatible = "ethernet-phy-ieee802.3-c45"; reg = <0>; - interrupt-parent = <&gpio6>; - interrupts = <3 IRQ_TYPE_LEVEL_LOW>; + interrupts-extended = <&gpio6 3 IRQ_TYPE_LEVEL_LOW>; }; }; };
@@ -51,8 +50,7 @@ mdio { avb2_phy: ethernet-phy@0 { compatible = "ethernet-phy-ieee802.3-c45"; reg = <0>; - interrupt-parent = <&gpio5>; - interrupts = <4 IRQ_TYPE_LEVEL_LOW>; + interrupts-extended = <&gpio5 4 IRQ_TYPE_LEVEL_LOW>; }; }; };
arch/arm64/boot/dts/renesas/white-hawk-single.dtsi new file +77 -0
77 lines not on this page · raw message
arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi +27 -15
67 lines not on this page · raw message
arch/powerpc/include/uapi/asm/ioctls.h +4 -4
@@ -23,10 +23,10 @@#define TCSETSW _IOW('t', 21, struct termios)#define TCSETSF _IOW('t', 22, struct termios) -#define TCGETA _IOR('t', 23, struct termio) -#define TCSETA _IOW('t', 24, struct termio) -#define TCSETAW _IOW('t', 25, struct termio) -#define TCSETAF _IOW('t', 28, struct termio) +#define TCGETA 0x40147417/* _IOR('t', 23, struct termio) */ +#define TCSETA 0x80147418/* _IOW('t', 24, struct termio) */ +#define TCSETAW 0x80147419/* _IOW('t', 25, struct termio) */ +#define TCSETAF 0x8014741c/* _IOW('t', 28, struct termio) */ #define TCSBRK _IO('t', 29)#define TCXONC _IO('t', 30)
arch/powerpc/kernel/Makefile +0 -2
@@ -162,9 +162,7 @@ endif obj64-$(CONFIG_PPC_TRANSACTIONAL_MEM) += tm.o -ifneq ($(CONFIG_XMON)$(CONFIG_KEXEC_CORE)$(CONFIG_PPC_BOOK3S),) obj-y += ppc_save_regs.o -endif obj-$(CONFIG_EPAPR_PARAVIRT) += epapr_paravirt.o epapr_hcalls.o obj-$(CONFIG_KVM_GUEST) += kvm.o kvm_emul.o
arch/riscv/kernel/cpu_ops_sbi.c +3 -3
@@ -18,10 +18,10 @@ const struct cpu_operations cpu_ops_sbi;/* * Ordered booting via HSM brings one cpu at a time. However, cpu hotplug can -* be invoked from multiple threads in parallel. Define a per cpu data +* be invoked from multiple threads in parallel. Define an array of boot data * to handle that. */ -static DEFINE_PER_CPU(struct sbi_hart_boot_data, boot_data); +static struct sbi_hart_boot_data boot_data[NR_CPUS ];static int sbi_hsm_hart_start (unsigned long hartid,unsigned long saddr,unsigned long priv)
@@ -67,7 +67,7 @@ static int sbi_cpu_start(unsigned int cpuid, struct task_struct *tidle)unsigned long boot_addr =__pa_symbol (secondary_start_sbi);unsigned long hartid =cpuid_to_hartid_map (cpuid);unsigned long hsm_data; -struct sbi_hart_boot_data *bdata = &per_cpu (boot_data, cpuid); +struct sbi_hart_boot_data *bdata = &boot_data[cpuid];/* Make sure tidle is updated */ smp_mb ();
arch/s390/pci/pci_event.c +15 -0
@@ -105,6 +105,10 @@ static pci_ers_result_t zpci_event_do_error_state_clear(struct pci_dev *pdev,struct zpci_dev *zdev =to_zpci (pdev);int rc; +/* The underlying device may have been disabled by the event */ +if (!zdev_enabled (zdev)) +return PCI_ERS_RESULT_NEED_RESET ; +pr_info ("%s: Unblocking device access for examination\n" ,pci_name (pdev)); rc =zpci_reset_load_store_blocked (zdev);if (rc) {
@@ -260,6 +264,8 @@ static void __zpci_event_error(struct zpci_ccdf_err *ccdf)struct zpci_dev *zdev =get_zdev_by_fid (ccdf->fid);struct pci_dev *pdev =NULL ;pci_ers_result_t ers_res; +u32 fh =0 ; +int rc;zpci_dbg (3 ,"err fid:%x, fh:%x, pec:%x\n" , ccdf->fid, ccdf->fh, ccdf->pec);
@@ -268,6 +274,15 @@ static void __zpci_event_error(struct zpci_ccdf_err *ccdf)if (zdev) {mutex_lock (&zdev->state_lock); + rc =clp_refresh_fh (zdev->fid, &fh); +if (rc) + goto no_pdev; +if (!fh || ccdf->fh != fh) { +/* Ignore events with stale handles */ +zpci_dbg (3 ,"err fid:%x, fh:%x (stale %x)\n" , + ccdf->fid, fh, ccdf->fh); + goto no_pdev; + }zpci_update_fh (zdev, ccdf->fh);if (zdev->zbus->bus) pdev =pci_get_slot (zdev->zbus->bus, zdev->devfn);
arch/x86/Kconfig +9 -0
@@ -2760,6 +2760,15 @@ config MITIGATION_ITS disabled, mitigation cannot be enabled via cmdline. See <file:Documentation/admin-guide/hw-vuln/indirect-target-selection.rst> +config MITIGATION_TSA + bool "Mitigate Transient Scheduler Attacks" + depends on CPU_SUP_AMD + default y + help + Enable mitigation for Transient Scheduler Attacks. TSA is a hardware + security vulnerability on AMD CPUs which can lead to forwarding of + invalid info to subsequent instructions and thus can affect their + timing and thereby cause a leakage. endif config ARCH_HAS_ADD_PAGES
arch/x86/entry/entry.S +4 -4
@@ -33,20 +33,20 @@ EXPORT_SYMBOL_GPL(entry_ibpb); /* * Define the VERW operand that is disguised as entry code so that - * it can be referenced with KPTI enabled. This ensure VERW can be + * it can be referenced with KPTI enabled. This ensures VERW can be * used late in exit-to-user path after page tables are switched. */ .pushsection .entry.text, "ax" .align L1_CACHE_BYTES, 0xcc -SYM_CODE_START_NOALIGN(mds_verw_sel) +SYM_CODE_START_NOALIGN(x86_verw_sel) UNWIND_HINT_UNDEFINED ANNOTATE_NOENDBR .word __KERNEL_DS .align L1_CACHE_BYTES, 0xcc -SYM_CODE_END(mds_verw_sel); +SYM_CODE_END(x86_verw_sel); /* For KVM */ -EXPORT_SYMBOL_GPL(mds_verw_sel); +EXPORT_SYMBOL_GPL(x86_verw_sel); .popsection
arch/x86/include/asm/cpu.h +12 -0
@@ -69,4 +69,16 @@ int intel_microcode_sanity_check(void *mc, bool print_err, int hdr_type);extern struct cpumask cpus_stop_mask; +union zen_patch_rev { +struct { +__u32 rev :8 , + stepping :4 , + model :4 , + __reserved :4 , + ext_model :4 , + ext_fam :8 ; + }; +__u32 ucode_rev; +}; +#endif /* _ASM_X86_CPU_H */
arch/x86/include/asm/cpufeatures.h +6 -0
@@ -455,6 +455,7 @@#define X86_FEATURE_NO_NESTED_DATA_BP (20*32+ 0)/* No Nested Data Breakpoints */ #define X86_FEATURE_WRMSR_XX_BASE_NS (20*32+ 1)/* WRMSR to {FS,GS,KERNEL_GS}_BASE is non-serializing */ #define X86_FEATURE_LFENCE_RDTSC (20*32+ 2)/* LFENCE always serializing / synchronizes RDTSC */ +#define X86_FEATURE_VERW_CLEAR (20*32+ 5)/* The memory form of VERW mitigates TSA */ #define X86_FEATURE_NULL_SEL_CLR_BASE (20*32+ 6)/* Null Selector Clears Base */ #define X86_FEATURE_AUTOIBRS (20*32+ 8)/* Automatic IBRS */ #define X86_FEATURE_NO_SMM_CTL_MSR (20*32+ 9)/* SMM_CTL MSR is not present */
@@ -477,6 +478,10 @@#define X86_FEATURE_FAST_CPPC (21*32 + 5)/* AMD Fast CPPC */ #define X86_FEATURE_INDIRECT_THUNK_ITS (21*32 + 6)/* Use thunk for indirect branches in lower half of cacheline */ +#define X86_FEATURE_TSA_SQ_NO (21*32+11)/* AMD CPU not vulnerable to TSA-SQ */ +#define X86_FEATURE_TSA_L1_NO (21*32+12)/* AMD CPU not vulnerable to TSA-L1 */ +#define X86_FEATURE_CLEAR_CPU_BUF_VM (21*32+13)/* Clear CPU buffers using VERW before VMRUN */ +/* * BUG word(s) */
@@ -529,4 +534,5 @@#define X86_BUG_IBPB_NO_RET X86_BUG(1*32 + 4)/* "ibpb_no_ret" IBPB omits return target predictions */ #define X86_BUG_ITS X86_BUG(1*32 + 5)/* "its" CPU is affected by Indirect Target Selection */ #define X86_BUG_ITS_NATIVE_ONLY X86_BUG(1*32 + 6)/* "its_native_only" CPU is affected by ITS, VMX is not affected */ +#define X86_BUG_TSA X86_BUG( 1*32+ 9)/* "tsa" CPU is affected by Transient Scheduler Attacks */ #endif /* _ASM_X86_CPUFEATURES_H */
arch/x86/include/asm/irqflags.h +2 -2
@@ -44,13 +44,13 @@ static __always_inline void native_irq_enable(void) static __always_inline void native_safe_halt(void) { -mds_idle_clear_cpu_buffers (); +x86_idle_clear_cpu_buffers (); asmvolatile ("sti; hlt" : : :"memory" ); } static __always_inline void native_halt(void) { -mds_idle_clear_cpu_buffers (); +x86_idle_clear_cpu_buffers (); asmvolatile ("hlt" : : :"memory" ); }
arch/x86/include/asm/mwait.h +17 -11
@@ -44,8 +44,6 @@ static __always_inline void __monitorx(const void *eax, unsigned long ecx, static __always_inline void __mwait(unsigned long eax, unsigned long ecx) { -mds_idle_clear_cpu_buffers (); -/* "mwait %eax, %ecx;" */ asmvolatile (".byte 0x0f, 0x01, 0xc9;" ::"a" (eax),"c" (ecx));
@@ -80,7 +78,7 @@ static __always_inline void __mwait(unsigned long eax, unsigned long ecx) static __always_inline void __mwaitx(unsigned long eax, unsigned long ebx,unsigned long ecx) { -/* No MDS buffer clear as this is AMD/HYGON only */ +/* No need for TSA buffer clearing on AMD */ /* "mwaitx %eax, %ebx, %ecx;" */ asm volatile(".byte 0x0f, 0x01, 0xfb;"
@@ -98,7 +96,7 @@ static __always_inline void __mwaitx(unsigned long eax, unsigned long ebx,*/ static __always_inline void __sti_mwait(unsigned long eax, unsigned long ecx) { -mds_idle_clear_cpu_buffers (); +/* "mwait %eax, %ecx;" */ asmvolatile ("sti; .byte 0x0f, 0x01, 0xc9;" ::"a" (eax),"c" (ecx));
@@ -116,21 +114,29 @@ static __always_inline void __sti_mwait(unsigned long eax, unsigned long ecx)*/ static __always_inline void mwait_idle_with_hints(unsigned long eax, unsigned long ecx) { +if (need_resched ()) +return ; + +x86_idle_clear_cpu_buffers (); +if (static_cpu_has_bug (X86_BUG_MONITOR ) || !current_set_polling_and_test ()) {const void *addr = ¤t_thread_info ()->flags; alternative_input("", "clflush (%[addr])", X86_BUG_CLFLUSH_MONITOR, [addr] "a" (addr));__monitor (addr,0 ,0 ); -if (!need_resched ()) { -if (ecx &1 ) { -__mwait (eax, ecx); - }else { -__sti_mwait (eax, ecx); -raw_local_irq_disable (); - } +if (need_resched ()) + goto out; + +if (ecx &1 ) { +__mwait (eax, ecx); + }else { +__sti_mwait (eax, ecx); +raw_local_irq_disable (); } } + +out:current_clr_polling (); }
arch/x86/include/asm/nospec-branch.h +22 -15
@@ -315,25 +315,31 @@ .endm/* - * Macro to execute VERW instruction that mitigate transient data sampling - * attacks such as MDS. On affected systems a microcode update overloaded VERW - * instruction to also clear the CPU buffers. VERW clobbers CFLAGS.ZF. - * +* Macro to execute VERW insns that mitigate transient data sampling +* attacks such as MDS or TSA. On affected systems a microcode update +* overloaded VERW insns to also clear the CPU buffers. VERW clobbers +* CFLAGS.ZF. * Note: Only the memory operand variant of VERW clears the CPU buffers. */ -.macro CLEAR_CPU_BUFFERS +.macro __CLEAR_CPU_BUFFERS feature#ifdef CONFIG_X86_64 - ALTERNATIVE "", "verw mds_verw_sel(%rip)", X86_FEATURE_CLEAR_CPU_BUF + ALTERNATIVE "", "verw x86_verw_sel(%rip)", \feature#else /* * In 32bit mode, the memory operand must be a %cs reference. The data * segments may not be usable (vm86 mode), and the stack segment may not * be flat (ESPFIX32). */ -ALTERNATIVE "" ,"verw %cs:mds_verw_sel" ,X86_FEATURE_CLEAR_CPU_BUF + ALTERNATIVE "", "verw %cs:x86_verw_sel", \feature #endif .endm +#define CLEAR_CPU_BUFFERS \ + __CLEAR_CPU_BUFFERS X86_FEATURE_CLEAR_CPU_BUF + +#define VM_CLEAR_CPU_BUFFERS \ + __CLEAR_CPU_BUFFERS X86_FEATURE_CLEAR_CPU_BUF_VM +#ifdef CONFIG_X86_64 .macro CLEAR_BRANCH_HISTORY ALTERNATIVE "", "call clear_bhb_loop", X86_FEATURE_CLEAR_BHB_LOOP
@@ -582,24 +588,24 @@ DECLARE_STATIC_KEY_FALSE(switch_to_cond_stibp);DECLARE_STATIC_KEY_FALSE (switch_mm_cond_ibpb);DECLARE_STATIC_KEY_FALSE (switch_mm_always_ibpb); -DECLARE_STATIC_KEY_FALSE (mds_idle_clear); +DECLARE_STATIC_KEY_FALSE (cpu_buf_idle_clear);DECLARE_STATIC_KEY_FALSE (switch_mm_cond_l1d_flush);DECLARE_STATIC_KEY_FALSE (mmio_stale_data_clear); -extern u16 mds_verw_sel; +extern u16 x86_verw_sel;#include <asm/segment.h> /** -* mds_clear_cpu_buffers - Mitigation for MDS and TAA vulnerability +* x86_clear_cpu_buffers - Buffer clearing support for different x86 CPU vulns * * This uses the otherwise unused and obsolete VERW instruction in * combination with microcode which triggers a CPU buffer flush when the * instruction is executed. */ -static __always_inline void mds_clear_cpu_buffers(void) +static __always_inline void x86_clear_cpu_buffers(void) {static const u16 ds = __KERNEL_DS;
@@ -616,14 +622,15 @@ static __always_inline void mds_clear_cpu_buffers(void) }/** -* mds_idle_clear_cpu_buffers - Mitigation for MDS vulnerability +* x86_idle_clear_cpu_buffers - Buffer clearing support in idle for the MDS +* and TSA vulnerabilities. * * Clear CPU buffers if the corresponding static key is enabled */ -static __always_inline void mds_idle_clear_cpu_buffers(void) +static __always_inline void x86_idle_clear_cpu_buffers(void) { -if (static_branch_likely (&mds_idle_clear)) -mds_clear_cpu_buffers (); +if (static_branch_likely (&cpu_buf_idle_clear)) +x86_clear_cpu_buffers (); }#endif /* __ASSEMBLY__ */
arch/x86/kernel/cpu/amd.c +60 -0
72 lines not on this page · raw message
arch/x86/kernel/cpu/bugs.c +127 -6
195 lines not on this page · raw message
arch/x86/kernel/cpu/common.c +13 -1
@@ -1233,6 +1233,8 @@ static const __initconst struct x86_cpu_id cpu_vuln_whitelist[] = {#define ITS BIT(8)/* CPU is affected by Indirect Target Selection, but guest-host isolation is not affected */ #define ITS_NATIVE_ONLY BIT(9) +/* CPU is affected by Transient Scheduler Attacks */ +#define TSA BIT(10)static const struct x86_cpu_id cpu_vuln_blacklist[]__initconst = {VULNBL_INTEL_STEPPINGS (INTEL_IVYBRIDGE ,X86_STEPPING_ANY ,SRBDS ),
@@ -1280,7 +1282,7 @@ static const struct x86_cpu_id cpu_vuln_blacklist[] __initconst = {VULNBL_AMD (0x16 ,RETBLEED ),VULNBL_AMD (0x17 ,RETBLEED |SMT_RSB |SRSO ),VULNBL_HYGON (0x18 ,RETBLEED |SMT_RSB |SRSO ), - VULNBL_AMD(0x19, SRSO), + VULNBL_AMD(0x19, SRSO | TSA), {} };
@@ -1490,6 +1492,16 @@ static void __init cpu_set_bug_bits(struct cpuinfo_x86 *c)setup_force_cpu_bug (X86_BUG_ITS_NATIVE_ONLY ); } +if (c->x86_vendor ==X86_VENDOR_AMD ) { +if (!cpu_has (c,X86_FEATURE_TSA_SQ_NO ) || + !cpu_has (c,X86_FEATURE_TSA_L1_NO )) { +if (cpu_matches (cpu_vuln_blacklist,TSA ) || +/* Enable bug on Zen guests to allow for live migration. */ + (cpu_has (c,X86_FEATURE_HYPERVISOR ) &&cpu_has (c,X86_FEATURE_ZEN ))) +setup_force_cpu_bug (X86_BUG_TSA ); + } + } +if (cpu_matches (cpu_vuln_whitelist,NO_MELTDOWN ))return ;
arch/x86/kernel/cpu/microcode/amd.c +0 -12
@@ -94,18 +94,6 @@ static struct equiv_cpu_table {struct equiv_cpu_entry *entry; } equiv_table; -union zen_patch_rev { -struct { -__u32 rev :8 , - stepping :4 , - model :4 , - __reserved :4 , - ext_model :4 , - ext_fam :8 ; - }; -__u32 ucode_rev; -}; - union cpuid_1_eax { struct { __u32 stepping : 4,
arch/x86/kernel/cpu/microcode/amd_shas.c +112 -0
206 lines not on this page · raw message
arch/x86/kernel/cpu/scattered.c +2 -0
@@ -49,6 +49,8 @@ static const struct cpuid_bit cpuid_bits[] = { { X86_FEATURE_MBA, CPUID_EBX, 6, 0x80000008, 0 }, { X86_FEATURE_SMBA, CPUID_EBX, 2, 0x80000020, 0 }, { X86_FEATURE_BMEC, CPUID_EBX, 3, 0x80000020, 0 }, + { X86_FEATURE_TSA_SQ_NO, CPUID_ECX, 1, 0x80000021, 0 }, + { X86_FEATURE_TSA_L1_NO, CPUID_ECX, 2, 0x80000021, 0 }, { X86_FEATURE_PERFMON_V2, CPUID_EAX, 0, 0x80000022, 0 }, { X86_FEATURE_AMD_LBR_V2, CPUID_EAX, 1, 0x80000022, 0 }, { X86_FEATURE_AMD_LBR_PMC_FREEZE, CPUID_EAX, 2, 0x80000022, 0 },
arch/x86/kernel/process.c +12 -4
@@ -911,16 +911,24 @@ static __init bool prefer_mwait_c1_over_halt(void)*/ static __cpuidle void mwait_idle(void) { +if (need_resched ()) +return ; + +x86_idle_clear_cpu_buffers (); +if (!current_set_polling_and_test ()) {const void *addr = ¤t_thread_info ()->flags; alternative_input("", "clflush (%[addr])", X86_BUG_CLFLUSH_MONITOR, [addr] "a" (addr));__monitor (addr,0 ,0 ); -if (!need_resched ()) { -__sti_mwait (0 ,0 ); -raw_local_irq_disable (); - } +if (need_resched ()) + goto out; + +__sti_mwait (0 ,0 ); +raw_local_irq_disable (); } + +out:__current_clr_polling (); }
arch/x86/kvm/cpuid.c +7 -1
@@ -814,6 +814,7 @@ void kvm_set_cpu_caps(void)kvm_cpu_cap_mask (CPUID_8000_0021_EAX ,F (NO_NESTED_DATA_BP ) |F (LFENCE_RDTSC ) |0 /* SmmPgCfgLock */ | +F (VERW_CLEAR ) |F (NULL_SEL_CLR_BASE ) |F (AUTOIBRS ) |0 /* PrefetchCtlMsr */ |F (WRMSR_XX_BASE_NS ) );
@@ -826,6 +827,10 @@ void kvm_set_cpu_caps(void)F (PERFMON_V2 ) ); +kvm_cpu_cap_init_kvm_defined (CPUID_8000_0021_ECX , +F (TSA_SQ_NO ) |F (TSA_L1_NO ) + ); +/* * Synthesize "LFENCE is serializing" into the AMD-defined entry in * KVM's supported CPUID if the feature is reported as supported by the
@@ -1376,8 +1381,9 @@ static inline int __do_cpuid_func(struct kvm_cpuid_array *array, u32 function) entry->eax = entry->ebx = entry->ecx = entry->edx =0 ;break ;case 0x80000021 : - entry->ebx = entry->ecx = entry->edx =0 ; + entry->ebx = entry->edx =0 ;cpuid_entry_override (entry,CPUID_8000_0021_EAX ); +cpuid_entry_override (entry,CPUID_8000_0021_ECX );break ;/* AMD Extended Performance Monitoring and Debug */ case 0x80000022 : {
arch/x86/kvm/reverse_cpuid.h +8 -0
@@ -18,6 +18,7 @@ enum kvm_only_cpuid_leafs {CPUID_8000_0022_EAX ,CPUID_7_2_EDX ,CPUID_24_0_EBX , +CPUID_8000_0021_ECX ,NR_KVM_CPU_CAPS , NKVMCAPINTS = NR_KVM_CPU_CAPS - NCAPINTS,
@@ -68,6 +69,10 @@ enum kvm_only_cpuid_leafs {/* CPUID level 0x80000022 (EAX) */ #define KVM_X86_FEATURE_PERFMON_V2 KVM_X86_FEATURE(CPUID_8000_0022_EAX, 0) +/* CPUID level 0x80000021 (ECX) */ +#define KVM_X86_FEATURE_TSA_SQ_NO KVM_X86_FEATURE(CPUID_8000_0021_ECX, 1) +#define KVM_X86_FEATURE_TSA_L1_NO KVM_X86_FEATURE(CPUID_8000_0021_ECX, 2) +struct cpuid_reg {u32 function;u32 index;
@@ -98,6 +103,7 @@ static const struct cpuid_reg reverse_cpuid[] = { [CPUID_8000_0022_EAX] = {0x80000022, 0, CPUID_EAX}, [CPUID_7_2_EDX] = { 7, 2, CPUID_EDX}, [CPUID_24_0_EBX] = { 0x24, 0, CPUID_EBX}, + [CPUID_8000_0021_ECX] = {0x80000021, 0, CPUID_ECX}, };/*
@@ -137,6 +143,8 @@ static __always_inline u32 __feature_translate(int x86_feature)KVM_X86_TRANSLATE_FEATURE (PERFMON_V2 );KVM_X86_TRANSLATE_FEATURE (RRSBA_CTRL );KVM_X86_TRANSLATE_FEATURE (BHI_CTRL ); +KVM_X86_TRANSLATE_FEATURE (TSA_SQ_NO ); +KVM_X86_TRANSLATE_FEATURE (TSA_L1_NO );default :return x86_feature; }
arch/x86/kvm/svm/vmenter.S +6 -0
@@ -169,6 +169,9 @@ SYM_FUNC_START(__svm_vcpu_run) #endif mov VCPU_RDI(%_ASM_DI), %_ASM_DI + /* Clobbers EFLAGS.ZF */ + VM_CLEAR_CPU_BUFFERS + /* Enter guest mode */ 3: vmrun %_ASM_AX 4:
@@ -335,6 +338,9 @@ SYM_FUNC_START(__svm_sev_es_vcpu_run) mov SVM_current_vmcb(%rdi), %rax mov KVM_VMCB_pa(%rax), %rax + /* Clobbers EFLAGS.ZF */ + VM_CLEAR_CPU_BUFFERS + /* Enter guest mode */ 1: vmrun %rax 2:
arch/x86/kvm/vmx/vmx.c +1 -1
@@ -7313,7 +7313,7 @@ static noinstr void vmx_vcpu_enter_exit(struct kvm_vcpu *vcpu,vmx_l1d_flush (vcpu); else if (static_branch_unlikely(&mmio_stale_data_clear) && kvm_arch_has_assigned_device(vcpu->kvm)) - mds_clear_cpu_buffers(); + x86_clear_cpu_buffers();vmx_disable_fb_clear (vmx );
drivers/acpi/acpica/dsmethod.c +7 -0
@@ -483,6 +483,13 @@ acpi_ds_call_control_method(struct acpi_thread_state *thread,return_ACPI_STATUS (AE_NULL_OBJECT ); } +if (this_walk_state->num_operands < obj_desc->method.param_count) { +ACPI_ERROR ((AE_INFO ,"Missing argument for method [%4.4s]" , +acpi_ut_get_node_name (method_node))); + +return_ACPI_STATUS (AE_AML_UNINITIALIZED_ARG ); + } +/* Init for new method, possibly wait on method mutex */ status =
drivers/acpi/thermal.c +7 -5
@@ -803,7 +803,13 @@ static int acpi_thermal_add(struct acpi_device *device)acpi_thermal_aml_dependency_fix (tz); -/* Get trip points [_CRT, _PSV, etc.] (required). */ +/* +* Set the cooling mode [_SCP] to active cooling. This needs to happen before +* we retrieve the trip point values. +*/ +acpi_execute_simple_method (tz->device->handle,"_SCP" ,ACPI_THERMAL_MODE_ACTIVE ); + +/* Get trip points [_ACi, _PSV, etc.] (required). */ acpi_thermal_get_trip_points (tz); crit_temp =acpi_thermal_get_critical_trip (tz);
@@ -814,10 +820,6 @@ static int acpi_thermal_add(struct acpi_device *device)if (result) goto free_memory; -/* Set the cooling mode [_SCP] to active cooling. */ -acpi_execute_simple_method (tz->device->handle,"_SCP" , -ACPI_THERMAL_MODE_ACTIVE ); -/* Determine the default polling frequency [_TZP]. */ if (tzp) tz->polling_frequency = tzp;
drivers/ata/libata-acpi.c +16 -8
@@ -514,15 +514,19 @@ unsigned int ata_acpi_gtm_xfermask(struct ata_device *dev,EXPORT_SYMBOL_GPL (ata_acpi_gtm_xfermask);/** -* ata_acpi_cbl_80wire - Check for 80 wire cable +* ata_acpi_cbl_pata_type - Return PATA cable type * @ap: Port to check -* @gtm: GTM data to use * -* Return 1 if the @gtm indicates the BIOS selected an 80wire mode. +* Return ATA_CBL_PATA* according to the transfer mode selected by BIOS */ -int ata_acpi_cbl_80wire (struct ata_port *ap,const struct ata_acpi_gtm *gtm) +int ata_acpi_cbl_pata_type (struct ata_port *ap) {struct ata_device *dev; +int ret =ATA_CBL_PATA_UNK ; +const struct ata_acpi_gtm *gtm =ata_acpi_init_gtm (ap); + +if (!gtm) +return ATA_CBL_PATA40 ;ata_for_each_dev (dev, &ap->link,ENABLED ) {unsigned int xfer_mask, udma_mask;
@@ -530,13 +534,17 @@ int ata_acpi_cbl_80wire(struct ata_port *ap, const struct ata_acpi_gtm *gtm) xfer_mask =ata_acpi_gtm_xfermask (dev, gtm);ata_unpack_xfermask (xfer_mask,NULL ,NULL , &udma_mask); -if (udma_mask & ~ATA_UDMA_MASK_40C ) -return 1 ; + ret =ATA_CBL_PATA40 ; + +if (udma_mask & ~ATA_UDMA_MASK_40C ) { + ret =ATA_CBL_PATA80 ; +break ; + } } -return 0 ; +return ret; } -EXPORT_SYMBOL_GPL (ata_acpi_cbl_80wire); +EXPORT_SYMBOL_GPL (ata_acpi_cbl_pata_type); static void ata_acpi_gtf_to_tf(struct ata_device *dev, const struct ata_acpi_gtf *gtf,
drivers/ata/pata_cs5536.c +1 -1
@@ -27,7 +27,7 @@#include <scsi/scsi_host.h> #include <linux/dmi.h> -#ifdef CONFIG_X86_32 +#if defined(CONFIG_X86 ) && defined(CONFIG_X86_32 )#include <asm/msr.h> static int use_msr;module_param_named (msr, use_msr, int,0644 );
drivers/ata/pata_via.c +2 -4
@@ -201,11 +201,9 @@ static int via_cable_detect(struct ata_port *ap) {two drives */ if (ata66 & (0x10100000 >> (16 * ap->port_no)))return ATA_CBL_PATA80 ; +/* Check with ACPI so we can spot BIOS reported SATA bridges */ -if (ata_acpi_init_gtm (ap) && -ata_acpi_cbl_80wire (ap,ata_acpi_init_gtm (ap))) -return ATA_CBL_PATA80 ; -return ATA_CBL_PATA40 ; +return ata_acpi_cbl_pata_type (ap); }static int via_pre_reset (struct ata_link *link,unsigned long deadline)
drivers/base/cpu.c +3 -0
@@ -600,6 +600,7 @@ CPU_SHOW_VULN_FALLBACK(spec_rstack_overflow);CPU_SHOW_VULN_FALLBACK (gds);CPU_SHOW_VULN_FALLBACK (reg_file_data_sampling);CPU_SHOW_VULN_FALLBACK (indirect_target_selection); +CPU_SHOW_VULN_FALLBACK (tsa); static DEVICE_ATTR(meltdown, 0444, cpu_show_meltdown, NULL); static DEVICE_ATTR(spectre_v1, 0444, cpu_show_spectre_v1, NULL);
@@ -616,6 +617,7 @@ static DEVICE_ATTR(spec_rstack_overflow, 0444, cpu_show_spec_rstack_overflow, NU static DEVICE_ATTR(gather_data_sampling, 0444, cpu_show_gds, NULL); static DEVICE_ATTR(reg_file_data_sampling, 0444, cpu_show_reg_file_data_sampling, NULL); static DEVICE_ATTR(indirect_target_selection, 0444, cpu_show_indirect_target_selection, NULL); +static DEVICE_ATTR(tsa, 0444, cpu_show_tsa, NULL);static struct attribute *cpu_root_vulnerabilities_attrs[] = { &dev_attr_meltdown.attr,
@@ -633,6 +635,7 @@ static struct attribute *cpu_root_vulnerabilities_attrs[] = { &dev_attr_gather_data_sampling.attr, &dev_attr_reg_file_data_sampling.attr, &dev_attr_indirect_target_selection.attr, + &dev_attr_tsa.attr, NULL };
drivers/block/aoe/aoe.h +1 -0
@@ -80,6 +80,7 @@ enum {DEVFL_NEWSIZE = (1 <<6 ),/* need to update dev size in block layer */ DEVFL_FREEING = (1 <<7 ),/* set when device is being cleaned up */ DEVFL_FREED = (1 <<8 ),/* device has been cleaned up */ + DEVFL_DEAD = (1<<9), /* device has timed out of aoe_deadsecs */ }; enum {
drivers/block/aoe/aoecmd.c +6 -2
@@ -754,7 +754,7 @@ rexmit_timer(struct timer_list *timer) utgts =count_targets (d,NULL ); -if (d->flags &DEVFL_TKILL ) { +if (d->flags & (DEVFL_TKILL |DEVFL_DEAD )) {spin_unlock_irqrestore (&d->lock, flags);return ; }
@@ -786,7 +786,8 @@ rexmit_timer(struct timer_list *timer)* to clean up. */ list_splice (&flist, &d->factive[0 ]); -aoedev_downdev (d); + d->flags |=DEVFL_DEAD ; +queue_work (aoe_wq, &d->work); goto out; }
@@ -898,6 +899,9 @@ aoecmd_sleepwork(struct work_struct *work) { struct aoedev *d = container_of(work, struct aoedev, work); +if (d->flags &DEVFL_DEAD ) +aoedev_downdev (d); +if (d->flags &DEVFL_GDALLOC )aoeblk_gdalloc (d);
drivers/block/aoe/aoedev.c +4 -1
@@ -200,8 +200,11 @@ aoedev_downdev(struct aoedev *d)struct list_head *head, *pos, *nx;struct request *rq, *rqnext;int i; +unsigned long flags; - d->flags &= ~DEVFL_UP ; +spin_lock_irqsave (&d->lock, flags); + d->flags &= ~(DEVFL_UP |DEVFL_DEAD ); +spin_unlock_irqrestore (&d->lock, flags);/* clean out active and to-be-retransmitted buffers */ for (i =0 ; i <NFACTIVE ; i++) {
drivers/crypto/intel/iaa/iaa_crypto_main.c +7 -133
221 lines not on this page · raw message
drivers/crypto/xilinx/zynqmp-sha.c +14 -4
@@ -3,18 +3,19 @@* Xilinx ZynqMP SHA Driver. * Copyright (c) 2022 Xilinx Inc. */ -#include <linux/cacheflush.h> #include <crypto/hash.h> #include <crypto/internal/hash.h> #include <crypto/sha3.h> -#include <linux/crypto.h> +#include <linux/cacheflush.h> +#include <linux/cleanup.h> #include <linux/device.h> #include <linux/dma-mapping.h> +#include <linux/err.h> #include <linux/firmware/xlnx-zynqmp.h> -#include <linux/init.h> #include <linux/io.h> #include <linux/kernel.h> #include <linux/module.h> +#include <linux/spinlock.h> #include <linux/platform_device.h> #define ZYNQMP_DMA_BIT_MASK 32U
@@ -43,6 +44,8 @@ struct zynqmp_sha_desc_ctx {static dma_addr_t update_dma_addr, final_dma_addr;static char *ubuf, *fbuf; +static DEFINE_SPINLOCK (zynqmp_sha_lock); +static int zynqmp_sha_init_tfm (struct crypto_shash *hash) {const char *fallback_driver_name =crypto_shash_alg_name (hash);
@@ -124,7 +127,8 @@ static int zynqmp_sha_export(struct shash_desc *desc, void *out)return crypto_shash_export (&dctx->fbk_req, out); } -static int zynqmp_sha_digest (struct shash_desc *desc,const u8 *data,unsigned int len,u8 *out) +static int __zynqmp_sha_digest (struct shash_desc *desc,const u8 *data, +unsigned int len,u8 *out) {unsigned int remaining_len = len;int update_size;
@@ -159,6 +163,12 @@ static int zynqmp_sha_digest(struct shash_desc *desc, const u8 *data, unsigned ireturn ret; } +static int zynqmp_sha_digest (struct shash_desc *desc,const u8 *data,unsigned int len,u8 *out) +{ + scoped_guard(spinlock_bh, &zynqmp_sha_lock) +return __zynqmp_sha_digest (desc, data, len, out); +} +static struct zynqmp_sha_drv_ctx sha3_drv_ctx = { .sha3_384 = { .init = zynqmp_sha_init,
drivers/dma-buf/dma-resv.c +7 -5
@@ -685,11 +685,13 @@ long dma_resv_wait_timeout(struct dma_resv *obj, enum dma_resv_usage usage,dma_resv_iter_begin (&cursor, obj, usage);dma_resv_for_each_fence_unlocked (&cursor, fence) { - ret =dma_fence_wait_timeout (fence, intr, ret); -if (ret <=0 ) { -dma_resv_iter_end (&cursor); -return ret; - } + ret =dma_fence_wait_timeout (fence, intr, timeout); +if (ret <=0 ) +break ; + +/* Even for zero timeout the return value is 1 */ +if (timeout) + timeout = ret; }dma_resv_iter_end (&cursor);
drivers/firmware/arm_ffa/driver.c +31 -28
131 lines not on this page · raw message
drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c +14 -0
@@ -860,7 +860,9 @@ int amdgpu_mes_map_legacy_queue(struct amdgpu_device *adev, queue_input.mqd_addr =amdgpu_bo_gpu_offset (ring->mqd_obj); queue_input.wptr_addr = ring->wptr_gpu_addr; +amdgpu_mes_lock (&adev->mes); r = adev->mes.funcs->map_legacy_queue (&adev->mes, &queue_input); +amdgpu_mes_unlock (&adev->mes);if (r)DRM_ERROR ("failed to map legacy queue\n" );
@@ -883,7 +885,9 @@ int amdgpu_mes_unmap_legacy_queue(struct amdgpu_device *adev, queue_input.trail_fence_addr = gpu_addr; queue_input.trail_fence_data = seq; +amdgpu_mes_lock (&adev->mes); r = adev->mes.funcs->unmap_legacy_queue (&adev->mes, &queue_input); +amdgpu_mes_unlock (&adev->mes);if (r)DRM_ERROR ("failed to unmap legacy queue\n" );
@@ -910,7 +914,9 @@ int amdgpu_mes_reset_legacy_queue(struct amdgpu_device *adev, queue_input.vmid = vmid; queue_input.use_mmio = use_mmio; +amdgpu_mes_lock (&adev->mes); r = adev->mes.funcs->reset_legacy_queue (&adev->mes, &queue_input); +amdgpu_mes_unlock (&adev->mes);if (r)DRM_ERROR ("failed to reset legacy queue\n" );
@@ -931,7 +937,9 @@ uint32_t amdgpu_mes_rreg(struct amdgpu_device *adev, uint32_t reg) goto error; } +amdgpu_mes_lock (&adev->mes); r = adev->mes.funcs->misc_op (&adev->mes, &op_input); +amdgpu_mes_unlock (&adev->mes);if (r)DRM_ERROR ("failed to read reg (0x%x)\n" , reg);else
@@ -957,7 +965,9 @@ int amdgpu_mes_wreg(struct amdgpu_device *adev, goto error; } +amdgpu_mes_lock (&adev->mes); r = adev->mes.funcs->misc_op (&adev->mes, &op_input); +amdgpu_mes_unlock (&adev->mes);if (r)DRM_ERROR ("failed to write reg (0x%x)\n" , reg);
@@ -984,7 +994,9 @@ int amdgpu_mes_reg_write_reg_wait(struct amdgpu_device *adev, goto error; } +amdgpu_mes_lock (&adev->mes); r = adev->mes.funcs->misc_op (&adev->mes, &op_input); +amdgpu_mes_unlock (&adev->mes);if (r)DRM_ERROR ("failed to reg_write_reg_wait\n" );
@@ -1009,7 +1021,9 @@ int amdgpu_mes_reg_wait(struct amdgpu_device *adev, uint32_t reg, goto error; } +amdgpu_mes_lock (&adev->mes); r = adev->mes.funcs->misc_op (&adev->mes, &op_input); +amdgpu_mes_unlock (&adev->mes);if (r)DRM_ERROR ("failed to reg_write_reg_wait\n" );
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c +8 -2
@@ -3430,7 +3430,10 @@ int psp_init_sos_microcode(struct psp_context *psp, const char *chip_name)uint8_t *ucode_array_start_addr;int err =0 ; - err =amdgpu_ucode_request (adev, &adev->psp.sos_fw,"amdgpu/%s_sos.bin" , chip_name); +if (amdgpu_is_kicker_fw (adev)) + err =amdgpu_ucode_request (adev, &adev->psp.sos_fw,"amdgpu/%s_sos_kicker.bin" , chip_name); +else + err =amdgpu_ucode_request (adev, &adev->psp.sos_fw,"amdgpu/%s_sos.bin" , chip_name);if (err) goto out;
@@ -3672,7 +3675,10 @@ int psp_init_ta_microcode(struct psp_context *psp, const char *chip_name)struct amdgpu_device *adev = psp->adev;int err; - err =amdgpu_ucode_request (adev, &adev->psp.ta_fw,"amdgpu/%s_ta.bin" , chip_name); +if (amdgpu_is_kicker_fw (adev)) + err =amdgpu_ucode_request (adev, &adev->psp.ta_fw,"amdgpu/%s_ta_kicker.bin" , chip_name); +else + err =amdgpu_ucode_request (adev, &adev->psp.ta_fw,"amdgpu/%s_ta.bin" , chip_name);if (err)return err;
drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c +4 -0
@@ -84,6 +84,7 @@ MODULE_FIRMWARE("amdgpu/gc_11_0_0_pfp.bin");MODULE_FIRMWARE ("amdgpu/gc_11_0_0_me.bin" );MODULE_FIRMWARE ("amdgpu/gc_11_0_0_mec.bin" );MODULE_FIRMWARE ("amdgpu/gc_11_0_0_rlc.bin" ); +MODULE_FIRMWARE ("amdgpu/gc_11_0_0_rlc_kicker.bin" );MODULE_FIRMWARE ("amdgpu/gc_11_0_0_rlc_1.bin" );MODULE_FIRMWARE ("amdgpu/gc_11_0_0_toc.bin" );MODULE_FIRMWARE ("amdgpu/gc_11_0_1_pfp.bin" );
@@ -734,6 +735,9 @@ static int gfx_v11_0_init_microcode(struct amdgpu_device *adev) adev->pdev->revision == 0xCE) err =amdgpu_ucode_request (adev, &adev->gfx.rlc_fw,"amdgpu/gc_11_0_0_rlc_1.bin" ); + else if (amdgpu_is_kicker_fw(adev)) + err =amdgpu_ucode_request (adev, &adev->gfx.rlc_fw, +"amdgpu/%s_rlc_kicker.bin" , ucode_prefix); else err =amdgpu_ucode_request (adev, &adev->gfx.rlc_fw,"amdgpu/%s_rlc.bin" , ucode_prefix);
drivers/gpu/drm/amd/amdgpu/imu_v11_0.c +5 -1
@@ -32,6 +32,7 @@#include "gc/gc_11_0_0_sh_mask.h" MODULE_FIRMWARE ("amdgpu/gc_11_0_0_imu.bin" ); +MODULE_FIRMWARE ("amdgpu/gc_11_0_0_imu_kicker.bin" );MODULE_FIRMWARE ("amdgpu/gc_11_0_1_imu.bin" );MODULE_FIRMWARE ("amdgpu/gc_11_0_2_imu.bin" );MODULE_FIRMWARE ("amdgpu/gc_11_0_3_imu.bin" );
@@ -50,7 +51,10 @@ static int imu_v11_0_init_microcode(struct amdgpu_device *adev)DRM_DEBUG ("\n" );amdgpu_ucode_ip_version_decode (adev,GC_HWIP , ucode_prefix,sizeof (ucode_prefix)); - err =amdgpu_ucode_request (adev, &adev->gfx.imu_fw,"amdgpu/%s_imu.bin" , ucode_prefix); +if (amdgpu_is_kicker_fw (adev)) + err =amdgpu_ucode_request (adev, &adev->gfx.imu_fw,"amdgpu/%s_imu_kicker.bin" , ucode_prefix); +else + err =amdgpu_ucode_request (adev, &adev->gfx.imu_fw,"amdgpu/%s_imu.bin" , ucode_prefix);if (err) goto out;
drivers/gpu/drm/amd/amdgpu/psp_v13_0.c +2 -0
@@ -42,7 +42,9 @@ MODULE_FIRMWARE("amdgpu/psp_13_0_5_ta.bin");MODULE_FIRMWARE ("amdgpu/psp_13_0_8_toc.bin" );MODULE_FIRMWARE ("amdgpu/psp_13_0_8_ta.bin" );MODULE_FIRMWARE ("amdgpu/psp_13_0_0_sos.bin" ); +MODULE_FIRMWARE ("amdgpu/psp_13_0_0_sos_kicker.bin" );MODULE_FIRMWARE ("amdgpu/psp_13_0_0_ta.bin" ); +MODULE_FIRMWARE ("amdgpu/psp_13_0_0_ta_kicker.bin" );MODULE_FIRMWARE ("amdgpu/psp_13_0_7_sos.bin" );MODULE_FIRMWARE ("amdgpu/psp_13_0_7_ta.bin" );MODULE_FIRMWARE ("amdgpu/psp_13_0_10_sos.bin" );
drivers/gpu/drm/amd/amdgpu/vcn_v5_0_1.c new file +1624 -0
305 lines not on this page · raw message
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c +34 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c +6 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/bridge/aux-hpd-bridge.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/exynos/exynos_drm_fimd.c +12 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/display/intel_dp.c +18 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/gt/intel_ring_submission.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/selftests/i915_request.c +10 -10
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/selftests/mock_request.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/xe/abi/guc_communication_ctb_abi.h +1 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/xe/compat-i915-headers/gem/i915_gem_stolen.h +1 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/xe/display/xe_dsb_buffer.c +10 -8
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/xe/display/xe_fb_pin.c +10 -7
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/xe/xe_bo.c +58 -20
78 lines not on this page · raw message
drivers/gpu/drm/xe/xe_device.c +31 -24
55 lines not on this page · raw message
drivers/gpu/drm/xe/xe_guc_ct.c +317 -33
350 lines not on this page · raw message
drivers/gpu/drm/xe/xe_guc_pc.c +144 -0
144 lines not on this page · raw message
drivers/i2c/busses/i2c-designware-master.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/infiniband/hw/mlx5/mr.c +49 -14
63 lines not on this page · raw message
drivers/net/ethernet/amd/xgbe/xgbe-common.h +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c +13 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c +15 -9
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/atheros/atlx/atl1.c +57 -22
79 lines not on this page · raw message
drivers/net/ethernet/cisco/enic/enic_main.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c +24 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/idpf/idpf_controlq.c +11 -12
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/idpf/idpf_controlq_api.h +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/idpf/idpf_ethtool.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/idpf/idpf_lib.c +8 -4
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/igc/igc_main.c +10 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/wangxun/libwx/wx_lib.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/wangxun/txgbe/txgbe_irq.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/wangxun/txgbe/txgbe_main.c +10 -12
Lines of this file are not shown. View the raw message.
drivers/net/virtio_net.c +52 -8
60 lines not on this page · raw message
drivers/net/wireless/ath/ath12k/dp_rx.c +1 -2
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ath/ath12k/dp_rx.h +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ath/ath12k/dp_tx.c +11 -10
Lines of this file are not shown. View the raw message.
drivers/platform/mellanox/mlxbf-tmfifo.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/platform/mellanox/nvsw-sn2201.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/platform/x86/amd/pmc/pmc-quirks.c +9 -0
Lines of this file are not shown. View the raw message.
drivers/platform/x86/dell/dell-wmi-sysman/dell-wmi-sysman.h +5 -0
Lines of this file are not shown. View the raw message.
drivers/platform/x86/dell/dell-wmi-sysman/enum-attributes.c +3 -2
Lines of this file are not shown. View the raw message.
drivers/platform/x86/dell/dell-wmi-sysman/int-attributes.c +3 -2
Lines of this file are not shown. View the raw message.
drivers/platform/x86/dell/dell-wmi-sysman/passobj-attributes.c +3 -2
Lines of this file are not shown. View the raw message.
drivers/platform/x86/dell/dell-wmi-sysman/string-attributes.c +3 -2
Lines of this file are not shown. View the raw message.
drivers/platform/x86/dell/dell-wmi-sysman/sysman.c +8 -17
Lines of this file are not shown. View the raw message.
drivers/platform/x86/firmware_attributes_class.c +14 -27
41 lines not on this page · raw message
drivers/platform/x86/firmware_attributes_class.h +3 -0
Lines of this file are not shown. View the raw message.
drivers/platform/x86/hp/hp-bioscfg/bioscfg.c +3 -11
Lines of this file are not shown. View the raw message.
drivers/platform/x86/think-lmi.c +33 -70
103 lines not on this page · raw message
drivers/remoteproc/ti_k3_dsp_remoteproc.c +2 -4
Lines of this file are not shown. View the raw message.
drivers/remoteproc/ti_k3_m4_remoteproc.c +2 -4
Lines of this file are not shown. View the raw message.
drivers/remoteproc/ti_k3_r5_remoteproc.c +86 -94
180 lines not on this page · raw message
drivers/scsi/lpfc/lpfc_disc.h +30 -30
60 lines not on this page · raw message
drivers/scsi/lpfc/lpfc_els.c +172 -265
437 lines not on this page · raw message
drivers/scsi/lpfc/lpfc_hbadisc.c +120 -185
305 lines not on this page · raw message
drivers/scsi/lpfc/lpfc_init.c +20 -38
58 lines not on this page · raw message
drivers/scsi/lpfc/lpfc_nportdisc.c +134 -195
329 lines not on this page · raw message
drivers/scsi/lpfc/lpfc_sli.c +27 -51
78 lines not on this page · raw message
drivers/tee/optee/ffa_abi.c +32 -9
41 lines not on this page · raw message
drivers/usb/typec/altmodes/displayport.c +2 -3
Lines of this file are not shown. View the raw message.
drivers/vfio/pci/hisilicon/hisi_acc_vfio_pci.c +8 -6
Lines of this file are not shown. View the raw message.
fs/btrfs/tree-log.c +183 -194
377 lines not on this page · raw message
fs/f2fs/super.c +42 -0
42 lines not on this page · raw message
fs/gfs2/aops.c +32 -22
54 lines not on this page · raw message
fs/gfs2/inode.c +88 -8
96 lines not on this page · raw message
fs/gfs2/super.c +22 -92
114 lines not on this page · raw message
fs/nfs/flexfilelayout/flexfilelayout.c +87 -34
121 lines not on this page · raw message
kernel/bpf/verifier.c +68 -57
125 lines not on this page · raw message
kernel/sched/fair.c +71 -46
117 lines not on this page · raw message
mm/vmalloc.c +35 -28
63 lines not on this page · raw message
net/bluetooth/hci_sync.c +138 -89
227 lines not on this page · raw message
sound/soc/codecs/tas2764.c +43 -3
46 lines not on this page · raw message
tools/testing/kunit/qemu_configs/sparc.py +5 -2
Lines of this file are not shown. View the raw message.
tools/testing/selftests/iommu/iommufd.c +21 -9
Lines of this file are not shown. View the raw message.
The rest of this diff is not shown. View the raw message.
Part of the diff is not shown here. View the raw message.