Linux 6.13.6
Greg Kroah-Hartman
maintainerI'm announcing the release of the 6.13.6 kernel.
All users of the 6.13 kernel series must upgrade.
The updated 6.13.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.13.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/arm64/include/asm/kvm_host.h | 2 arch/arm64/kvm/arm.c | 22 arch/arm64/kvm/vmid.c | 11 arch/arm64/mm/init.c | 7 arch/riscv/include/asm/cmpxchg.h | 2 arch/riscv/include/asm/futex.h | 2 arch/riscv/kernel/cacheinfo.c | 12 arch/riscv/kernel/cpufeature.c | 2 arch/riscv/kernel/setup.c | 2 arch/riscv/kernel/signal.c | 6 arch/riscv/kvm/vcpu_sbi_hsm.c | 11 arch/riscv/kvm/vcpu_sbi_replace.c | 15 arch/x86/Kconfig | 1 arch/x86/events/core.c | 2 arch/x86/kernel/cpu/cyrix.c | 4 arch/x86/kernel/cpu/microcode/amd.c | 283 +++++++---- arch/x86/kernel/cpu/microcode/amd_shas.c | 444 ++++++++++++++++++ arch/x86/kernel/cpu/microcode/internal.h | 2 block/blk-zoned.c | 76 ++- drivers/firmware/cirrus/cs_dsp.c | 24 drivers/firmware/efi/mokvar-table.c | 42 - drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 7 drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c | 11 drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c | 20 drivers/gpu/drm/amd/amdgpu/amdgpu_mes.h | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 2 drivers/gpu/drm/amd/amdgpu/mes_v11_0.c | 4 drivers/gpu/drm/amd/amdgpu/mes_v12_0.c | 4 drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v10.c | 6 drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v11.c | 5 drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v12.c | 5 drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v9.c | 5 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 86 +++ drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c | 14 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c | 3 drivers/gpu/drm/amd/pm/legacy-dpm/kv_dpm.c | 25 - drivers/gpu/drm/amd/pm/legacy-dpm/legacy_dpm.c | 8 drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c | 26 - drivers/gpu/drm/drm_fbdev_dma.c | 217 ++++++-- drivers/gpu/drm/xe/regs/xe_engine_regs.h | 1 drivers/gpu/drm/xe/xe_oa.c | 5 drivers/gpu/drm/xe/xe_vm.c | 40 + drivers/i2c/busses/i2c-amd-asf-plat.c | 1 drivers/i2c/busses/i2c-ls2x.c | 16 drivers/i2c/busses/i2c-npcm7xx.c | 7 drivers/idle/intel_idle.c | 4 drivers/infiniband/hw/bnxt_re/bnxt_re.h | 2 drivers/infiniband/hw/bnxt_re/hw_counters.c | 4 drivers/infiniband/hw/bnxt_re/ib_verbs.c | 40 - drivers/infiniband/hw/bnxt_re/main.c | 41 + drivers/infiniband/hw/bnxt_re/qplib_res.c | 7 drivers/infiniband/hw/bnxt_re/qplib_res.h | 12 drivers/infiniband/hw/bnxt_re/qplib_sp.c | 4 drivers/infiniband/hw/bnxt_re/qplib_sp.h | 3 drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 64 +- drivers/infiniband/hw/hns/hns_roce_hw_v2.h | 2 drivers/infiniband/hw/mana/main.c | 2 drivers/infiniband/hw/mlx5/ah.c | 3 drivers/infiniband/hw/mlx5/counters.c | 8 drivers/infiniband/hw/mlx5/mr.c | 16 drivers/infiniband/hw/mlx5/odp.c | 1 drivers/infiniband/hw/mlx5/qp.c | 10 drivers/infiniband/hw/mlx5/qp.h | 1 drivers/infiniband/hw/mlx5/umr.c | 83 ++- drivers/iommu/intel/dmar.c | 1 drivers/iommu/intel/iommu.c | 10 drivers/md/dm-integrity.c | 8 drivers/md/dm-vdo/dedupe.c | 1 drivers/net/dsa/realtek/Kconfig | 6 drivers/net/dsa/realtek/Makefile | 3 drivers/net/dsa/realtek/rtl8366rb-leds.c | 177 +++++++ drivers/net/dsa/realtek/rtl8366rb.c | 258 ---------- drivers/net/dsa/realtek/rtl8366rb.h | 107 ++++ drivers/net/ethernet/cadence/macb.h | 2 drivers/net/ethernet/cadence/macb_main.c | 12 drivers/net/ethernet/freescale/enetc/enetc.c | 103 +++- drivers/net/ethernet/freescale/enetc/enetc4_pf.c | 2 drivers/net/ethernet/freescale/enetc/enetc_ethtool.c | 7 drivers/net/ethernet/google/gve/gve_rx_dqo.c | 2 drivers/net/ethernet/intel/ice/ice_eswitch.c | 3 drivers/net/ethernet/intel/ice/ice_sriov.c | 5 drivers/net/ethernet/intel/ice/ice_vf_lib.c | 8 drivers/net/ethernet/intel/ice/ice_vf_lib_private.h | 1 drivers/net/ethernet/intel/idpf/idpf_txrx.c | 3 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c | 2 drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c | 8 drivers/net/ethernet/mellanox/mlx5/core/pci_irq.c | 2 drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c | 14 drivers/net/ethernet/ti/Kconfig | 1 drivers/net/ethernet/ti/icssg/icss_iep.c | 21 drivers/net/ipvlan/ipvlan_core.c | 21 drivers/net/loopback.c | 14 drivers/net/phy/qcom/qca807x.c | 2 drivers/net/usb/gl620a.c | 4 drivers/phy/rockchip/Kconfig | 1 drivers/phy/rockchip/phy-rockchip-naneng-combphy.c | 5 drivers/phy/samsung/phy-exynos5-usbdrd.c | 25 - drivers/phy/st/phy-stm32-combophy.c | 38 - drivers/phy/tegra/xusb-tegra186.c | 11 drivers/scsi/scsi_lib.c | 14 drivers/thermal/gov_power_allocator.c | 32 - drivers/thermal/thermal_of.c | 50 +- drivers/ufs/core/ufs_bsg.c | 6 drivers/ufs/core/ufshcd.c | 38 - fs/afs/server.c | 3 fs/afs/server_list.c | 4 fs/btrfs/extent_map.c | 83 ++- fs/btrfs/file.c | 9 fs/fuse/dev.c | 6 fs/fuse/file.c | 13 fs/nfs/delegation.c | 37 + fs/nfs/delegation.h | 1 fs/nfs/direct.c | 23 fs/nfs/nfs4proc.c | 3 fs/overlayfs/copy_up.c | 2 include/asm-generic/vmlinux.lds.h | 2 include/linux/blkdev.h | 7 include/linux/compiler-gcc.h | 12 include/linux/compiler.h | 39 - include/linux/rcuref.h | 9 include/linux/socket.h | 2 include/linux/sunrpc/sched.h | 3 include/net/net_namespace.h | 11 include/net/sock.h | 1 include/sound/cs35l56.h | 31 + include/trace/events/afs.h | 2 include/trace/events/sunrpc.h | 3 io_uring/net.c | 4 kernel/events/core.c | 31 - kernel/events/uprobes.c | 15 kernel/sched/core.c | 2 kernel/sched/ext.c | 11 kernel/trace/ftrace.c | 27 - kernel/trace/trace_events_hist.c | 30 - lib/rcuref.c | 5 net/bluetooth/l2cap_core.c | 9 net/core/gro.c | 1 net/core/net_namespace.c | 8 net/core/scm.c | 10 net/core/skbuff.c | 2 net/core/sock.c | 27 - net/core/sysctl_net_core.c | 3 net/ipv4/tcp.c | 26 - net/ipv4/tcp_minisocks.c | 10 net/ipv6/rpl_iptunnel.c | 14 net/ipv6/seg6_iptunnel.c | 14 net/mptcp/pm_netlink.c | 5 net/mptcp/subflow.c | 20 net/netlink/af_netlink.c | 10 net/rds/tcp.c | 8 net/rxrpc/rxperf.c | 12 net/smc/af_smc.c | 5 net/sunrpc/cache.c | 10 net/sunrpc/sched.c | 2 net/sunrpc/svcsock.c | 5 net/sunrpc/xprtsock.c | 18 security/integrity/ima/ima.h | 3 security/integrity/ima/ima_main.c | 7 security/landlock/net.c | 3 sound/pci/hda/cs35l56_hda_spi.c | 3 sound/pci/hda/patch_realtek.c | 2 sound/soc/codecs/cs35l56-shared.c | 80 +++ sound/soc/codecs/cs35l56-spi.c | 3 sound/soc/codecs/es8328.c | 15 sound/soc/fsl/fsl_sai.c | 6 sound/soc/fsl/imx-audmix.c | 4 sound/usb/midi.c | 2 sound/usb/quirks.c | 1 tools/objtool/check.c | 50 -- tools/objtool/include/objtool/special.h | 2 tools/testing/selftests/drivers/net/queues.py | 7 tools/testing/selftests/landlock/common.h | 1 tools/testing/selftests/landlock/config | 2 tools/testing/selftests/landlock/net_test.c | 124 ++++- tools/testing/selftests/rseq/rseq-riscv-bits.h | 6 tools/testing/selftests/rseq/rseq-riscv.h | 2 177 files changed, 2634 insertions(+), 1168 deletions(-)
Adrien Vergé (1):
ALSA: hda/realtek: Fix microphone regression on ASUS N705UD
Alex Deucher (3):
drm/amdgpu/gfx: only call mes for enforce isolation if supported drm/amdgpu/mes: keep enforce isolation up to date drm/amdgpu: disable BAR resize on Dell G5 SE
Andreas Schwab (2):
riscv/atomic: Do proper sign extension also for unsigned in arch_cmpxchg riscv/futex: sign extend compare value in atomic cmpxchg
Andrew Jones (4):
riscv: KVM: Fix hart suspend status check
riscv: KVM: Fix hart suspend_type use
riscv: KVM: Fix SBI IPI error generation
riscv: KVM: Fix SBI TIME error generation
Andrii Nakryiko (1):
uprobes: Remove too strict lockdep_assert() condition in hprobe_expire()
André Draszik (1):
phy: exynos5-usbdrd: gs101: ensure power is gated to SS phy in phy_exit()
Ard Biesheuvel (2):
objtool: Fix C jump table annotations for Clang vmlinux.lds: Ensure that const vars with relocations are mapped R/O
Arnd Bergmann (2):
sunrpc: suppress warnings for unused procfs functions
phy: rockchip: fix Kconfig dependency more
Arthur Simchaev (1):
scsi: ufs: core: bsg: Fix crash when arpmb command fails
BH Hsieh (1):
phy: tegra: xusb: reset VBUS & ID OVERRIDE
Bart Van Assche (1):
scsi: ufs: core: Fix ufshcd_is_ufs_dev_busy() and ufshcd_eh_timed_out()
Benjamin Coddington (1):
SUNRPC: Handle -ETIMEDOUT return from tlshd
Binbin Zhou (1):
i2c: ls2x: Fix frequency division register access
Borislav Petkov (AMD) (7):
x86/microcode/AMD: Have __apply_microcode_amd() return bool x86/microcode/AMD: Remove ugly linebreak in __verify_patch_section() signature x86/microcode/AMD: Remove unused save_microcode_in_initrd_amd() declarations x86/microcode/AMD: Merge early_apply_microcode() into its single callsite x86/microcode/AMD: Get rid of the _load_microcode_amd() forward declaration x86/microcode/AMD: Add get_patch_level()
x86/microcode/AMD: Load only SHA256-checksummed patches
Breno Leitao (1):
perf/core: Add RCU read lock protection to perf_iterate_ctx()
Carolina Jubran (2):
net/mlx5: Fix vport QoS cleanup on error
net/mlx5: Restore missing trace event when enabling vport QoS
Chancel Liu (1):
ASoC: fsl: Rename stream name of SAI DAI driver
Christian Bruel (1):
phy: stm32: Fix constant-value overflow assertion
Chukun Pan (1):
phy: rockchip: naneng-combphy: compatible reset with old DT
Clément Léger (1):
riscv: cpufeature: use bitmap_equal() instead of memcmp()
Damien Le Moal (1):
block: Remove zone write plugs when handling native zone append writes
David Howells (3):
rxrpc: rxperf: Fix missing decoding of terminal magic cookie
afs: Fix the server_list to unuse a displaced server rather than putting it
afs: Give an afs_server object a ref on the afs_cell object it points to
David Yat Sin (1):
drm/amdkfd: Preserve cp_hqd_pq_control on update_mqd
Dmitry Panchenko (1):
ALSA: usb-audio: Re-add sample rate quirk for Pioneer DJM-900NXS2
Eric Dumazet (3):
net: better track kernel sockets lifetime
ipvlan: ensure network headers are in skb linear part
idpf: fix checksums set in idpf_rx_rsc()
Filipe Manana (3):
btrfs: skip inodes without loaded extent maps when shrinking extent maps
btrfs: do regular iput instead of delayed iput during extent map shrinking
btrfs: fix use-after-free on inode when scanning root during em shrinking
George Moussalem (1):
net: phy: qcom: qca807x fix condition for DAC_DSP_BIAS_CURRENT
Greg Kroah-Hartman (1):
Linux 6.13.6
Harshal Chaudhari (1):
net: mvpp2: cls: Fixed Non IP flow, with vlan tag flow defination.
Harshitha Ramamurthy (1):
gve: unlink old napi when stopping a queue using queue API
Ido Schimmel (1):
net: loopback: Avoid sending IP packets without an Ethernet header
Jerry Snitselaar (1):
iommu/vt-d: Remove device comparison in context_setup_pass_through_cb
Jiri Slaby (SUSE) (1):
net: set the minimum for net_hotdata.netdev_budget_usecs
Joanne Koong (1):
fuse: revert back to __readahead_folio() for readahead
Joe Damato (1):
selftests: drv-net: Check if combined-count exists
Junxian Huang (1):
RDMA/hns: Fix mbox timing out by adding retry mechanism
Justin Iurman (2):
net: ipv6: fix dst ref loop on input in seg6 lwt
net: ipv6: fix dst ref loop on input in rpl lwt
Kalesh AP (2):
RDMA/bnxt_re: Add sanity checks on rdev validity RDMA/bnxt_re: Allocate dev_attr information dynamically
Kan Liang (2):
perf/x86: Fix low freqency setting issue perf/core: Fix low freq setting via IOC_PERIOD
Kashyap Desai (1):
RDMA/bnxt_re: Fix the page details for the srq created by kernel consumers
Kaustabh Chakraborty (1):
phy: exynos5-usbdrd: fix MPLL_MULTIPLIER and SSC_REFCLKSEL masks in refclk
Ken Raeburn (1):
dm vdo: add missing spin_lock_init
Konstantin Taranov (1):
RDMA/mana_ib: Allocate PAGE aligned doorbell index
Kuniyuki Iwashima (1):
net: Add net_passive_inc() and net_passive_dec().
Linus Walleij (1):
net: dsa: rtl8366rb: Fix compilation problem
Lu Baolu (1):
iommu/vt-d: Fix suspicious RCU usage
Luiz Augusto von Dentz (1):
Bluetooth: L2CAP: Fix L2CAP_ECRED_CONN_RSP response
Luo Gengkun (1):
perf/core: Order the PMU list to fix warning about unordered pmu_ctx_list
Manivannan Sadhasivam (1):
scsi: ufs: core: Set default runtime/system PM levels before ufshcd_hba_init()
Marcin Szycik (2):
ice: Fix deinitializing VF in error path
ice: Avoid setting default Rx VSI twice in switchdev setup
Mark Zhang (1):
IB/mlx5: Set and get correct qp_num for a DCT QP
Matthew Auld (2):
drm/xe/userptr: restore invalidation list on error drm/xe/userptr: fix EFAULT handling
Matthieu Baerts (NGI0) (1):
mptcp: reset when MPTCP opts are dropped after join
Meghana Malladi (1):
net: ti: icss-iep: Reject perout generation request
Melissa Wen (1):
drm/amd/display: restore edid reading from a given i2c adapter
Mikhail Ivanov (3):
landlock: Fix non-TCP sockets restriction selftests/landlock: Test that MPTCP actions are not restricted selftests/landlock: Test TCP accesses with protocol=IPPROTO_TCP
Milan Broz (1):
dm-integrity: Avoid divide by zero in table status in Inline mode
Mingcong Bai (1):
drm/xe/regs: remove a duplicate definition for RING_CTL_SIZE(size)
Mohammad Heib (1):
net: Clear old fragment checksum value in napi_reuse_skb
Nicolas Frattaroli (1):
ASoC: es8328: fix route from DAC to output
Nikita Zhandarovich (1):
usbnet: gl620a: fix endpoint checking in genelink_bind()
Nikolay Borisov (1):
x86/microcode/AMD: Return bool from find_blobs_in_containers()
Nikolay Kuratov (1):
ftrace: Avoid potential division by zero in function_stat_show()
Oliver Upton (1):
KVM: arm64: Ensure a VMID is allocated before programming VTTBR_EL2
Paolo Abeni (1):
mptcp: always handle address removal under msk socket lock
Patrisious Haddad (2):
RDMA/mlx5: Fix AH static rate parsing
RDMA/mlx5: Fix bind QP error cleanup flow
Pavel Begunkov (1):
io_uring/net: save msg_control for compat
Peter Jones (1):
efi: Don't map the entire mokvar table to determine its size
Peter Zijlstra (2):
unreachable: Unify
objtool: Remove annotate_{,un}reachable()
Philo Lu (1):
ipvs: Always clear ipvs_property flag in skb_scrub_packet()
Pierre-Eric Pelloux-Prayer (1):
drm/amdgpu: init return value in amdgpu_ttm_clear_buffer
Qu Wenruo (1):
btrfs: fix data overwriting bug during buffered write when block size < page size
Qunqin Zhao (1):
net: stmmac: dwmac-loongson: Add fix_soc_reset() callback
Rafael J. Wysocki (1):
thermal/of: Fix cdev lookup in thermal_of_should_bind()
Richard Fitzgerald (2):
firmware: cs_dsp: Remove async regmap writes
ASoC: cs35l56: Prevent races when soft-resetting using SPI control
Rob Herring (1):
riscv: cacheinfo: Use of_property_present() for non-boolean properties
Roberto Sassu (1):
ima: Reset IMA_NONACTION_RULE_FLAGS after post_setattr
Roman Li (1):
drm/amd/display: Fix HPD after gpu reset
Russell Senior (1):
x86/CPU: Fix warm boot hang regression on AMD SC1100 SoC systems
Ryan Roberts (1):
arm64/mm: Fix Boot panic on Ampere Altra
Sascha Hauer (1):
net: ethernet: ti: am65-cpsw: select PAGE_POOL
Sean Anderson (1):
net: cadence: macb: Synchronize stats calculations
Selvin Xavier (1):
RDMA/bnxt_re: Fix the statistics for Gen P7 VF
Shay Drory (1):
net/mlx5: IRQ, Fix null string in debug print
Shyam Sundar S K (1):
i2c: amd-asf: Fix EOI register write to enable successive interrupts
Stafford Horne (1):
rseq/selftests: Fix riscv rseq_offset_deref_addv inline asm
Stanislav Fomichev (1):
tcp: devmem: don't write truncated dmabuf CMSGs to userspace
Steven Rostedt (1):
tracing: Fix bad hist from corrupting named_triggers list
Takashi Iwai (2):
ALSA: usb-audio: Avoid dropping MIDI events at closing multiple ports
ALSA: hda/realtek: Fix wrong mic setup for ASUS VivoBook 15
Tejun Heo (1):
sched_ext: Fix pick_task_scx() picking non-queued tasks when it's called without balance()
Thomas Gleixner (3):
intel_idle: Handle older CPUs, which stop the TSC in deeper C states, correctly
rcuref: Plug slowpath race in rcuref_put()
sched/core: Prevent rescheduling when interrupts are disabled
Thomas Zimmermann (1):
drm/fbdev-dma: Add shadow buffering for deferred I/O
Tom Chung (1):
drm/amd/display: Disable PSR-SU on eDP panels
Tong Tiangen (1):
uprobes: Reject the shared zeropage in uprobe_write_opcode()
Trond Myklebust (4):
NFS: O_DIRECT writes must check and adjust the file length
NFS: Adjust delegated timestamps for O_DIRECT reads and writes
SUNRPC: Prevent looping due to rpc_signal_task() races
NFSv4: Fix a deadlock when recovering state on a sillyrenamed file
Tyrone Ting (1):
i2c: npcm: disable interrupt enable bit before devm_request_irq
Umesh Nerlige Ramappa (1):
drm/xe/oa: Allow oa_exponent value of 0
Vasiliy Kovalev (1):
ovl: fix UAF in ovl_dentry_update_reval by moving dput() in ovl_link_up
Wang Hai (1):
tcp: Defer ts_recent changes until req is owned
Wei Fang (8):
net: enetc: fix the off-by-one issue in enetc_map_tx_buffs()
net: enetc: keep track of correct Tx BD count in enetc_map_tx_tso_buffs()
net: enetc: VFs do not support HWTSTAMP_TX_ONESTEP_SYNC
net: enetc: update UDP checksum when updating originTimestamp field
net: enetc: correct the xdp_tx statistics
net: enetc: remove the mm_lock from the ENETC v4 driver
net: enetc: fix the off-by-one issue in enetc_map_tx_tso_buffs()
net: enetc: add missing enetc4_link_deinit()
Ye Bin (1):
scsi: core: Clear driver private data when retrying request
Yilin Chen (1):
drm/amd/display: add a quirk to enable eDP0 on DP1
Yishai Hadas (4):
RDMA/mlx5: Fix the recovery flow of the UMR QP RDMA/mlx5: Fix a race for DMABUF MR which can lead to CQE with error RDMA/mlx5: Fix a WARN during dereg_mr for DM type RDMA/mlx5: Fix implicit ODP hang on parent deregistration
Yong-Xuan Wang (2):
riscv: signal: fix signal frame size
riscv: signal: fix signal_minsigstksz
Yu-Che Cheng (2):
thermal: gov_power_allocator: Fix incorrect calculation in divvy_up_power()
thermal: gov_power_allocator: Update total_weight on bind and cdev updates
chr[] (1):
amdgpu/pm/legacy: fix suspend/resume issues
Greg Kroah-Hartman
maintainerMakefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 6 PATCHLEVEL = 13 -SUBLEVEL = 5 +SUBLEVEL = 6 EXTRAVERSION = NAME = Baby Opossum Posse
arch/arm64/include/asm/kvm_host.h +1 -1
@@ -1262,7 +1262,7 @@ int kvm_arm_pvtime_has_attr(struct kvm_vcpu *vcpu,extern unsigned int __ro_after_init kvm_arm_vmid_bits;int __init kvm_arm_vmid_alloc_init (void );void __init kvm_arm_vmid_alloc_free (void ); -bool kvm_arm_vmid_update (struct kvm_vmid *kvm_vmid); +void kvm_arm_vmid_update (struct kvm_vmid *kvm_vmid);void kvm_arm_vmid_clear_active (void );static inline void kvm_arm_pvtime_vcpu_init (struct kvm_vcpu_arch *vcpu_arch)
arch/arm64/kvm/arm.c +10 -12
@@ -580,6 +580,16 @@ void kvm_arch_vcpu_load(struct kvm_vcpu *vcpu, int cpu) mmu = vcpu->arch.hw_mmu; last_ran =this_cpu_ptr (mmu->last_vcpu_ran); +/* +* Ensure a VMID is allocated for the MMU before programming VTTBR_EL2, +* which happens eagerly in VHE. +* +* Also, the VMID allocator only preserves VMIDs that are active at the +* time of rollover, so KVM might need to grab a new VMID for the MMU if +* this is called from kvm_sched_in(). +*/ +kvm_arm_vmid_update (&mmu->vmid); +/* * We guarantee that both TLBs and I-cache are private to each * vcpu. If detecting that a vcpu from the same VM has
@@ -1147,18 +1157,6 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu)*/ preempt_disable (); -/* -* The VMID allocator only tracks active VMIDs per -* physical CPU, and therefore the VMID allocated may not be -* preserved on VMID roll-over if the task was preempted, -* making a thread's VMID inactive. So we need to call -* kvm_arm_vmid_update() in non-premptible context. -*/ -if (kvm_arm_vmid_update (&vcpu->arch.hw_mmu->vmid) && -has_vhe ()) -__load_stage2 (vcpu->arch.hw_mmu, - vcpu->arch.hw_mmu->arch); -kvm_pmu_flush_hwstate (vcpu);local_irq_disable ();
arch/arm64/kvm/vmid.c +3 -8
@@ -135,11 +135,10 @@ void kvm_arm_vmid_clear_active(void)atomic64_set (this_cpu_ptr (&active_vmids),VMID_ACTIVE_INVALID ); } -bool kvm_arm_vmid_update (struct kvm_vmid *kvm_vmid) +void kvm_arm_vmid_update (struct kvm_vmid *kvm_vmid) {unsigned long flags;u64 vmid, old_active_vmid; -bool updated = false; vmid =atomic64_read (&kvm_vmid->id);
@@ -157,21 +156,17 @@ bool kvm_arm_vmid_update(struct kvm_vmid *kvm_vmid)if (old_active_vmid !=0 &&vmid_gen_match (vmid) &&0 !=atomic64_cmpxchg_relaxed (this_cpu_ptr (&active_vmids), old_active_vmid, vmid)) -return false; +return ;raw_spin_lock_irqsave (&cpu_vmid_lock, flags);/* Check that our VMID belongs to the current generation. */ vmid =atomic64_read (&kvm_vmid->id); -if (!vmid_gen_match (vmid)) { +if (!vmid_gen_match (vmid)) vmid =new_vmid (kvm_vmid); - updated = true; - }atomic64_set (this_cpu_ptr (&active_vmids), vmid);raw_spin_unlock_irqrestore (&cpu_vmid_lock, flags); - -return updated; }/*
arch/arm64/mm/init.c +1 -6
@@ -279,12 +279,7 @@ void __init arm64_memblock_init(void)if (IS_ENABLED (CONFIG_RANDOMIZE_BASE )) {extern u16 memstart_offset_seed; - -/* -* Use the sanitised version of id_aa64mmfr0_el1 so that linear -* map randomization can be enabled by shrinking the IPA space. -*/ -u64 mmfr0 =read_sanitised_ftr_reg (SYS_ID_AA64MMFR0_EL1 ); +u64 mmfr0 =read_cpuid (ID_AA64MMFR0_EL1 );int parange =cpuid_feature_extract_unsigned_field ( mmfr0,ID_AA64MMFR0_EL1_PARANGE_SHIFT ); s64 range = linear_region_size -
arch/riscv/include/asm/cmpxchg.h +1 -1
@@ -231,7 +231,7 @@__arch_cmpxchg (".w" ,".w" sc_sfx,".w" cas_sfx, \ sc_prepend, sc_append, \ cas_prepend, cas_append, \ - __ret, __ptr, (long), __old, __new); \ + __ret, __ptr, (long)(int)(long), __old, __new); \break ; \case 8 : \ __arch_cmpxchg(".d", ".d" sc_sfx, ".d" cas_sfx, \
arch/riscv/include/asm/futex.h +1 -1
@@ -93,7 +93,7 @@ futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr, _ASM_EXTABLE_UACCESS_ERR(1b, 3b, %[r]) \ _ASM_EXTABLE_UACCESS_ERR(2b, 3b, %[r]) \ : [r] "+r" (ret), [v] "=&r" (val), [u] "+m" (*uaddr), [t] "=&r" (tmp) - : [ov] "Jr" (oldval), [nv] "Jr" (newval) + : [ov] "Jr" ((long)(int)oldval), [nv] "Jr" (newval) : "memory"); __disable_user_access();
arch/riscv/kernel/cacheinfo.c +6 -6
@@ -108,11 +108,11 @@ int populate_cache_leaves(unsigned int cpu)if (!np)return -ENOENT ; -if (of_property_read_bool (np,"cache-size" )) +if (of_property_present (np,"cache-size" ))ci_leaf_init (this_leaf++,CACHE_TYPE_UNIFIED , level); -if (of_property_read_bool (np,"i-cache-size" )) +if (of_property_present (np,"i-cache-size" ))ci_leaf_init (this_leaf++,CACHE_TYPE_INST , level); -if (of_property_read_bool (np,"d-cache-size" )) +if (of_property_present (np,"d-cache-size" ))ci_leaf_init (this_leaf++,CACHE_TYPE_DATA , level); prev = np;
@@ -125,11 +125,11 @@ int populate_cache_leaves(unsigned int cpu)break ;if (level <= levels)break ; -if (of_property_read_bool (np,"cache-size" )) +if (of_property_present (np,"cache-size" ))ci_leaf_init (this_leaf++,CACHE_TYPE_UNIFIED , level); -if (of_property_read_bool (np,"i-cache-size" )) +if (of_property_present (np,"i-cache-size" ))ci_leaf_init (this_leaf++,CACHE_TYPE_INST , level); -if (of_property_read_bool (np,"d-cache-size" )) +if (of_property_present (np,"d-cache-size" ))ci_leaf_init (this_leaf++,CACHE_TYPE_DATA , level); levels = level; }
arch/riscv/kernel/cpufeature.c +1 -1
@@ -475,7 +475,7 @@ static void __init riscv_resolve_isa(unsigned long *source_isa,if (bit <RISCV_ISA_EXT_BASE ) *this_hwcap |= isa2hwcap[bit]; } - }while (loop &&memcmp (prev_resolved_isa, resolved_isa,sizeof (prev_resolved_isa))); + }while (loop && !bitmap_equal (prev_resolved_isa, resolved_isa,RISCV_ISA_EXT_MAX )); }static void __init match_isa_ext (const char *name,const char *name_end,unsigned long *bitmap)
arch/riscv/kernel/setup.c +1 -1
@@ -324,8 +324,8 @@ void __init setup_arch(char **cmdline_p)riscv_init_cbo_blocksizes ();riscv_fill_hwcap (); -init_rt_signal_env ();apply_boot_alternatives (); +init_rt_signal_env ();if (IS_ENABLED (CONFIG_RISCV_ISA_ZICBOM ) &&riscv_isa_extension_available (NULL ,ZICBOM ))
arch/riscv/kernel/signal.c +0 -6
@@ -215,12 +215,6 @@ static size_t get_rt_frame_size(bool cal_all)if (cal_all ||riscv_v_vstate_query (task_pt_regs (current))) total_context_size += riscv_v_sc_size; } -/* -* Preserved a __riscv_ctx_hdr for END signal context header if an -* extension uses __riscv_extra_ext_header -*/ -if (total_context_size) - total_context_size +=sizeof (struct __riscv_ctx_hdr ); frame_size += total_context_size;
arch/riscv/kvm/vcpu_sbi_hsm.c +6 -5
@@ -9,6 +9,7 @@#include <linux/errno.h> #include <linux/err.h> #include <linux/kvm_host.h> +#include <linux/wordpart.h> #include <asm/sbi.h> #include <asm/kvm_vcpu_sbi.h>
@@ -79,12 +80,12 @@ static int kvm_sbi_hsm_vcpu_get_status(struct kvm_vcpu *vcpu) target_vcpu =kvm_get_vcpu_by_id (vcpu->kvm, target_vcpuid);if (!target_vcpu)return SBI_ERR_INVALID_PARAM ; -if (!kvm_riscv_vcpu_stopped (target_vcpu)) -return SBI_HSM_STATE_STARTED ; -else if (vcpu->stat.generic.blocking) +if (kvm_riscv_vcpu_stopped (target_vcpu)) +return SBI_HSM_STATE_STOPPED ; +else if (target_vcpu->stat.generic.blocking)return SBI_HSM_STATE_SUSPENDED ;else -return SBI_HSM_STATE_STOPPED ; +return SBI_HSM_STATE_STARTED ; } static int kvm_sbi_ext_hsm_handler(struct kvm_vcpu *vcpu, struct kvm_run *run,
@@ -109,7 +110,7 @@ static int kvm_sbi_ext_hsm_handler(struct kvm_vcpu *vcpu, struct kvm_run *run, }return 0 ;case SBI_EXT_HSM_HART_SUSPEND : -switch (cp->a0) { +switch (lower_32_bits (cp->a0)) {case SBI_HSM_SUSPEND_RET_DEFAULT :kvm_riscv_vcpu_wfi (vcpu);break ;
arch/riscv/kvm/vcpu_sbi_replace.c +12 -3
@@ -21,7 +21,7 @@ static int kvm_sbi_ext_time_handler(struct kvm_vcpu *vcpu, struct kvm_run *run,u64 next_cycle;if (cp->a6 !=SBI_EXT_TIME_SET_TIMER ) { - retdata->err_val =SBI_ERR_INVALID_PARAM ; + retdata->err_val =SBI_ERR_NOT_SUPPORTED ;return 0 ; }
@@ -51,9 +51,10 @@ static int kvm_sbi_ext_ipi_handler(struct kvm_vcpu *vcpu, struct kvm_run *run,struct kvm_cpu_context *cp = &vcpu->arch.guest_context;unsigned long hmask = cp->a0;unsigned long hbase = cp->a1; +unsigned long hart_bit =0 , sentmask =0 ;if (cp->a6 !=SBI_EXT_IPI_SEND_IPI ) { - retdata->err_val =SBI_ERR_INVALID_PARAM ; + retdata->err_val =SBI_ERR_NOT_SUPPORTED ;return 0 ; }
@@ -62,15 +63,23 @@ static int kvm_sbi_ext_ipi_handler(struct kvm_vcpu *vcpu, struct kvm_run *run,if (hbase !=-1UL ) {if (tmp->vcpu_id < hbase)continue ; -if (!(hmask & (1UL << (tmp->vcpu_id - hbase)))) + hart_bit = tmp->vcpu_id - hbase; +if (hart_bit >= __riscv_xlen) + goto done; +if (!(hmask & (1UL << hart_bit)))continue ; } ret =kvm_riscv_vcpu_set_interrupt (tmp,IRQ_VS_SOFT );if (ret <0 )break ; + sentmask |=1UL << hart_bit;kvm_riscv_vcpu_pmu_incr_fw (tmp,SBI_PMU_FW_IPI_RCVD ); } +done: +if (hbase !=-1UL && (hmask ^ sentmask)) + retdata->err_val =SBI_ERR_INVALID_PARAM ; +return ret; }
arch/x86/Kconfig +1 -0
@@ -1336,6 +1336,7 @@ config X86_REBOOTFIXUPS config MICROCODE def_bool y depends on CPU_SUP_AMD || CPU_SUP_INTEL + select CRYPTO_LIB_SHA256 if CPU_SUP_AMD config MICROCODE_INITRD32 def_bool y
arch/x86/events/core.c +1 -1
@@ -628,7 +628,7 @@ int x86_pmu_hw_config(struct perf_event *event)if (event->attr.type == event->pmu->type) event->hw.config |=x86_pmu_get_event_config (event); -if (event->attr.sample_period && x86_pmu.limit_period) { +if (!event->attr.freq && x86_pmu.limit_period) {s64 left = event->attr.sample_period; x86_pmu.limit_period (event, &left);if (left > event->attr.sample_period)
arch/x86/kernel/cpu/cyrix.c +2 -2
@@ -153,8 +153,8 @@ static void geode_configure(void)u8 ccr3;local_irq_save (flags); -/* Suspend on halt power saving and enable #SUSP pin */ -setCx86 (CX86_CCR2 ,getCx86 (CX86_CCR2 ) |0x88 ); +/* Suspend on halt power saving */ +setCx86 (CX86_CCR2 ,getCx86 (CX86_CCR2 ) |0x08 ); ccr3 =getCx86 (CX86_CCR3 );setCx86 (CX86_CCR3 , (ccr3 &0x0f ) |0x10 );/* enable MAPEN */
arch/x86/kernel/cpu/microcode/amd.c +192 -91
398 lines not on this page · raw message
arch/x86/kernel/cpu/microcode/amd_shas.c new file +444 -0
444 lines not on this page · raw message
arch/x86/kernel/cpu/microcode/internal.h +0 -2
@@ -100,14 +100,12 @@ extern bool force_minrev;#ifdef CONFIG_CPU_SUP_AMD void load_ucode_amd_bsp (struct early_load_data *ed,unsigned int family);void load_ucode_amd_ap (unsigned int family); -int save_microcode_in_initrd_amd (unsigned int family);void reload_ucode_amd (unsigned int cpu);struct microcode_ops *init_amd_microcode (void );void exit_amd_microcode (void );#else /* CONFIG_CPU_SUP_AMD */ static inline void load_ucode_amd_bsp (struct early_load_data *ed,unsigned int family) { }static inline void load_ucode_amd_ap (unsigned int family) { } -static inline int save_microcode_in_initrd_amd (unsigned int family) {return -EINVAL ; }static inline void reload_ucode_amd (unsigned int cpu) { }static inline struct microcode_ops *init_amd_microcode (void ) {return NULL ; }static inline void exit_amd_microcode (void ) { }
block/blk-zoned.c +69 -7
137 lines not on this page · raw message
drivers/firmware/cirrus/cs_dsp.c +6 -18
@@ -1609,8 +1609,8 @@ static int cs_dsp_load(struct cs_dsp *dsp, const struct firmware *firmware, goto out_fw; } - ret =regmap_raw_write_async (regmap, reg, buf->buf, -le32_to_cpu (region->len)); + ret =regmap_raw_write (regmap, reg, buf->buf, +le32_to_cpu (region->len));if (ret !=0 ) { cs_dsp_err(dsp, "%s.%d: Failed to write %d bytes at %d in %s: %d\n",
@@ -1625,12 +1625,6 @@ static int cs_dsp_load(struct cs_dsp *dsp, const struct firmware *firmware, regions++; } - ret =regmap_async_complete (regmap); -if (ret !=0 ) { -cs_dsp_err (dsp,"Failed to complete async write: %d\n" , ret); - goto out_fw; - } -if (pos > firmware->size)cs_dsp_warn (dsp,"%s.%d: %zu bytes at end of file\n" , file, regions, pos - firmware->size);
@@ -1638,7 +1632,6 @@ static int cs_dsp_load(struct cs_dsp *dsp, const struct firmware *firmware,cs_dsp_debugfs_save_wmfwname (dsp, file); out_fw: -regmap_async_complete (regmap);cs_dsp_buf_free (&buf_list);if (ret == -EOVERFLOW )
@@ -2326,8 +2319,8 @@ static int cs_dsp_load_coeff(struct cs_dsp *dsp, const struct firmware *firmwarecs_dsp_dbg (dsp,"%s.%d: Writing %d bytes at %x\n" , file, blocks,le32_to_cpu (blk->len), reg); - ret =regmap_raw_write_async (regmap, reg, buf->buf, -le32_to_cpu (blk->len)); + ret =regmap_raw_write (regmap, reg, buf->buf, +le32_to_cpu (blk->len));if (ret !=0 ) { cs_dsp_err(dsp, "%s.%d: Failed to write to %x in %s: %d\n",
@@ -2339,10 +2332,6 @@ static int cs_dsp_load_coeff(struct cs_dsp *dsp, const struct firmware *firmware blocks++; } - ret =regmap_async_complete (regmap); -if (ret !=0 ) -cs_dsp_err (dsp,"Failed to complete async write: %d\n" , ret); -if (pos > firmware->size)cs_dsp_warn (dsp,"%s.%d: %zu bytes at end of file\n" , file, blocks, pos - firmware->size);
@@ -2350,7 +2339,6 @@ static int cs_dsp_load_coeff(struct cs_dsp *dsp, const struct firmware *firmwarecs_dsp_debugfs_save_binname (dsp, file); out_fw: -regmap_async_complete (regmap);cs_dsp_buf_free (&buf_list);if (ret == -EOVERFLOW )
@@ -2561,8 +2549,8 @@ static int cs_dsp_adsp2_enable_core(struct cs_dsp *dsp) {int ret; - ret =regmap_update_bits_async (dsp->regmap, dsp->base +ADSP2_CONTROL , -ADSP2_SYS_ENA ,ADSP2_SYS_ENA ); + ret =regmap_update_bits (dsp->regmap, dsp->base +ADSP2_CONTROL , +ADSP2_SYS_ENA ,ADSP2_SYS_ENA );if (ret !=0 )return ret;
drivers/firmware/efi/mokvar-table.c +13 -29
70 lines not on this page · raw message
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +7 -0
@@ -1635,6 +1635,13 @@ int amdgpu_device_resize_fb_bar(struct amdgpu_device *adev)if (amdgpu_sriov_vf (adev))return 0 ; +/* resizing on Dell G5 SE platforms causes problems with runtime pm */ +if ((amdgpu_runtime_pm !=0 ) && + adev->pdev->vendor ==PCI_VENDOR_ID_ATI && + adev->pdev->device ==0x731f && + adev->pdev->subsystem_vendor ==PCI_VENDOR_ID_DELL ) +return 0 ; +/* PCI_EXT_CAP_ID_VNDR extended capability is located at 0x100 */ if (!pci_find_ext_capability (adev->pdev,PCI_EXT_CAP_ID_VNDR ))DRM_WARN ("System can't access extended configuration space, please check!!\n" );
drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c +4 -7
@@ -1593,22 +1593,19 @@ static ssize_t amdgpu_gfx_set_enforce_isolation(struct device *dev, }mutex_lock (&adev->enforce_isolation_mutex); -for (i =0 ; i < num_partitions; i++) { -if (adev->enforce_isolation[i] && !partition_values[i]) { +if (adev->enforce_isolation[i] && !partition_values[i])/* Going from enabled to disabled */ amdgpu_vmid_free_reserved (adev,AMDGPU_GFXHUB (i)); -amdgpu_mes_set_enforce_isolation (adev, i, false); - }else if (!adev->enforce_isolation[i] && partition_values[i]) { +else if (!adev->enforce_isolation[i] && partition_values[i])/* Going from disabled to enabled */ amdgpu_vmid_alloc_reserved (adev,AMDGPU_GFXHUB (i)); -amdgpu_mes_set_enforce_isolation (adev, i, true); - } adev->enforce_isolation[i] = partition_values[i]; } -mutex_unlock (&adev->enforce_isolation_mutex); +amdgpu_mes_update_enforce_isolation (adev); +return count; }
drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c +19 -1
@@ -1679,7 +1679,8 @@ bool amdgpu_mes_suspend_resume_all_supported(struct amdgpu_device *adev) }/* Fix me -- node_id is used to identify the correct MES instances in the future */ -int amdgpu_mes_set_enforce_isolation (struct amdgpu_device *adev,uint32_t node_id,bool enable) +static int amdgpu_mes_set_enforce_isolation (struct amdgpu_device *adev, +uint32_t node_id,bool enable) {struct mes_misc_op_input op_input = {0 };int r;
@@ -1701,6 +1702,23 @@ int amdgpu_mes_set_enforce_isolation(struct amdgpu_device *adev, uint32_t node_ireturn r; } +int amdgpu_mes_update_enforce_isolation (struct amdgpu_device *adev) +{ +int i, r =0 ; + +if (adev->enable_mes && adev->gfx.enable_cleaner_shader) { +mutex_lock (&adev->enforce_isolation_mutex); +for (i =0 ; i < (adev->xcp_mgr ? adev->xcp_mgr->num_xcps :1 ); i++) { +if (adev->enforce_isolation[i]) + r |=amdgpu_mes_set_enforce_isolation (adev, i, true); +else + r |=amdgpu_mes_set_enforce_isolation (adev, i, false); + } +mutex_unlock (&adev->enforce_isolation_mutex); + } +return r; +} +#if defined(CONFIG_DEBUG_FS )static int amdgpu_debugfs_mes_event_log_show (struct seq_file *m,void *unused)
drivers/gpu/drm/amd/amdgpu/amdgpu_mes.h +1 -1
@@ -534,6 +534,6 @@ static inline void amdgpu_mes_unlock(struct amdgpu_mes *mes)bool amdgpu_mes_suspend_resume_all_supported (struct amdgpu_device *adev); -int amdgpu_mes_set_enforce_isolation (struct amdgpu_device *adev,uint32_t node_id,bool enable); +int amdgpu_mes_update_enforce_isolation (struct amdgpu_device *adev);#endif /* __AMDGPU_MES_H__ */
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +1 -1
@@ -2280,7 +2280,7 @@ int amdgpu_ttm_clear_buffer(struct amdgpu_bo *bo,struct amdgpu_ring *ring = adev->mman.buffer_funcs_ring;struct amdgpu_res_cursor cursor;u64 addr; -int r; +int r =0 ;if (!adev->mman.buffer_funcs_enabled)return -EINVAL ;
drivers/gpu/drm/amd/amdgpu/mes_v11_0.c +4 -0
@@ -1635,6 +1635,10 @@ static int mes_v11_0_hw_init(struct amdgpu_ip_block *ip_block) goto failure; } + r =amdgpu_mes_update_enforce_isolation (adev); +if (r) + goto failure; + out:/* * Disable KIQ ring usage from the driver once MES is enabled.
drivers/gpu/drm/amd/amdgpu/mes_v12_0.c +4 -0
@@ -1590,6 +1590,10 @@ static int mes_v12_0_hw_init(struct amdgpu_ip_block *ip_block) goto failure; } + r =amdgpu_mes_update_enforce_isolation (adev); +if (r) + goto failure; + out:/* * Disable KIQ ring usage from the driver once MES is enabled.
drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v10.c +4 -2
@@ -107,6 +107,8 @@ static void init_mqd(struct mqd_manager *mm, void **mqd, m->cp_hqd_persistent_state =CP_HQD_PERSISTENT_STATE__PRELOAD_REQ_MASK |0x53 <<CP_HQD_PERSISTENT_STATE__PRELOAD_SIZE__SHIFT ; + m->cp_hqd_pq_control =5 <<CP_HQD_PQ_CONTROL__RPTR_BLOCK_SIZE__SHIFT ; + m->cp_hqd_pq_control |=CP_HQD_PQ_CONTROL__UNORD_DISPATCH_MASK ; m->cp_mqd_control =1 <<CP_MQD_CONTROL__PRIV_STATE__SHIFT ; m->cp_mqd_base_addr_lo =lower_32_bits (addr);
@@ -167,10 +169,10 @@ static void update_mqd(struct mqd_manager *mm, void *mqd, m =get_mqd (mqd); - m->cp_hqd_pq_control =5 <<CP_HQD_PQ_CONTROL__RPTR_BLOCK_SIZE__SHIFT ; + m->cp_hqd_pq_control &= ~CP_HQD_PQ_CONTROL__QUEUE_SIZE_MASK ; m->cp_hqd_pq_control |=ffs (q->queue_size /sizeof (unsigned int )) -1 -1 ; - m->cp_hqd_pq_control |=CP_HQD_PQ_CONTROL__UNORD_DISPATCH_MASK ; +pr_debug ("cp_hqd_pq_control 0x%x\n" , m->cp_hqd_pq_control); m->cp_hqd_pq_base_lo =lower_32_bits ((uint64_t )q->queue_address >>8 );
drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v11.c +3 -2
@@ -154,6 +154,8 @@ static void init_mqd(struct mqd_manager *mm, void **mqd, m->cp_hqd_persistent_state =CP_HQD_PERSISTENT_STATE__PRELOAD_REQ_MASK |0x55 <<CP_HQD_PERSISTENT_STATE__PRELOAD_SIZE__SHIFT ; + m->cp_hqd_pq_control =5 <<CP_HQD_PQ_CONTROL__RPTR_BLOCK_SIZE__SHIFT ; + m->cp_hqd_pq_control |=CP_HQD_PQ_CONTROL__UNORD_DISPATCH_MASK ; m->cp_mqd_control =1 <<CP_MQD_CONTROL__PRIV_STATE__SHIFT ; m->cp_mqd_base_addr_lo =lower_32_bits (addr);
@@ -221,10 +223,9 @@ static void update_mqd(struct mqd_manager *mm, void *mqd, m =get_mqd (mqd); - m->cp_hqd_pq_control =5 <<CP_HQD_PQ_CONTROL__RPTR_BLOCK_SIZE__SHIFT ; + m->cp_hqd_pq_control &= ~CP_HQD_PQ_CONTROL__QUEUE_SIZE_MASK ; m->cp_hqd_pq_control |=ffs (q->queue_size /sizeof (unsigned int )) -1 -1 ; - m->cp_hqd_pq_control |=CP_HQD_PQ_CONTROL__UNORD_DISPATCH_MASK ;pr_debug ("cp_hqd_pq_control 0x%x\n" , m->cp_hqd_pq_control); m->cp_hqd_pq_base_lo =lower_32_bits ((uint64_t )q->queue_address >>8 );
drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v12.c +3 -2
@@ -121,6 +121,8 @@ static void init_mqd(struct mqd_manager *mm, void **mqd, m->cp_hqd_persistent_state =CP_HQD_PERSISTENT_STATE__PRELOAD_REQ_MASK |0x55 <<CP_HQD_PERSISTENT_STATE__PRELOAD_SIZE__SHIFT ; + m->cp_hqd_pq_control =5 <<CP_HQD_PQ_CONTROL__RPTR_BLOCK_SIZE__SHIFT ; + m->cp_hqd_pq_control |=CP_HQD_PQ_CONTROL__UNORD_DISPATCH_MASK ; m->cp_mqd_control =1 <<CP_MQD_CONTROL__PRIV_STATE__SHIFT ; m->cp_mqd_base_addr_lo =lower_32_bits (addr);
@@ -184,10 +186,9 @@ static void update_mqd(struct mqd_manager *mm, void *mqd, m =get_mqd (mqd); - m->cp_hqd_pq_control =5 <<CP_HQD_PQ_CONTROL__RPTR_BLOCK_SIZE__SHIFT ; + m->cp_hqd_pq_control &= ~CP_HQD_PQ_CONTROL__QUEUE_SIZE_MASK ; m->cp_hqd_pq_control |=ffs (q->queue_size /sizeof (unsigned int )) -1 -1 ; - m->cp_hqd_pq_control |=CP_HQD_PQ_CONTROL__UNORD_DISPATCH_MASK ;pr_debug ("cp_hqd_pq_control 0x%x\n" , m->cp_hqd_pq_control); m->cp_hqd_pq_base_lo =lower_32_bits ((uint64_t )q->queue_address >>8 );
drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v9.c +4 -1
@@ -182,6 +182,9 @@ static void init_mqd(struct mqd_manager *mm, void **mqd, m->cp_hqd_persistent_state =CP_HQD_PERSISTENT_STATE__PRELOAD_REQ_MASK |0x53 <<CP_HQD_PERSISTENT_STATE__PRELOAD_SIZE__SHIFT ; + m->cp_hqd_pq_control =5 <<CP_HQD_PQ_CONTROL__RPTR_BLOCK_SIZE__SHIFT ; + m->cp_hqd_pq_control |=CP_HQD_PQ_CONTROL__UNORD_DISPATCH_MASK ; + m->cp_mqd_control =1 <<CP_MQD_CONTROL__PRIV_STATE__SHIFT ; m->cp_mqd_base_addr_lo =lower_32_bits (addr);
@@ -244,7 +247,7 @@ static void update_mqd(struct mqd_manager *mm, void *mqd, m =get_mqd (mqd); - m->cp_hqd_pq_control =5 <<CP_HQD_PQ_CONTROL__RPTR_BLOCK_SIZE__SHIFT ; + m->cp_hqd_pq_control &= ~CP_HQD_PQ_CONTROL__QUEUE_SIZE_MASK ; m->cp_hqd_pq_control |=order_base_2 (q->queue_size /4 ) -1 ;pr_debug ("cp_hqd_pq_control 0x%x\n" , m->cp_hqd_pq_control);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +77 -9
181 lines not on this page · raw message
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c +14 -0
@@ -894,6 +894,7 @@ void amdgpu_dm_hpd_init(struct amdgpu_device *adev)struct drm_device *dev =adev_to_drm (adev);struct drm_connector *connector;struct drm_connector_list_iter iter; +int i;drm_connector_list_iter_begin (dev, &iter);drm_for_each_connector_iter (connector, &iter) {
@@ -920,6 +921,12 @@ void amdgpu_dm_hpd_init(struct amdgpu_device *adev) } }drm_connector_list_iter_end (&iter); + +/* Update reference counts for HPDs */ +for (i =DC_IRQ_SOURCE_HPD1 ; i <= adev->mode_info.num_hpd; i++) { +if (amdgpu_irq_get (adev, &adev->hpd_irq, i -DC_IRQ_SOURCE_HPD1 )) +drm_err (dev,"DM_IRQ: Failed get HPD for source=%d)!\n" , i); + } }/**
@@ -935,6 +942,7 @@ void amdgpu_dm_hpd_fini(struct amdgpu_device *adev)struct drm_device *dev =adev_to_drm (adev);struct drm_connector *connector;struct drm_connector_list_iter iter; +int i;drm_connector_list_iter_begin (dev, &iter);drm_for_each_connector_iter (connector, &iter) {
@@ -960,4 +968,10 @@ void amdgpu_dm_hpd_fini(struct amdgpu_device *adev) } }drm_connector_list_iter_end (&iter); + +/* Update reference counts for HPDs */ +for (i =DC_IRQ_SOURCE_HPD1 ; i <= adev->mode_info.num_hpd; i++) { +if (amdgpu_irq_put (adev, &adev->hpd_irq, i -DC_IRQ_SOURCE_HPD1 )) +drm_err (dev,"DM_IRQ: Failed put HPD for source=%d!\n" , i); + } }
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c +2 -1
@@ -54,7 +54,8 @@ static bool link_supports_psrsu(struct dc_link *link)if (amdgpu_dc_debug_mask &DC_DISABLE_PSR_SU )return false; -return dc_dmub_check_min_version (dc->ctx->dmub_srv->dmub); +/* Temporarily disable PSR-SU to avoid glitches */ +return false; }/*
drivers/gpu/drm/amd/pm/legacy-dpm/kv_dpm.c +19 -6
@@ -3042,6 +3042,7 @@ static int kv_dpm_hw_init(struct amdgpu_ip_block *ip_block)if (!amdgpu_dpm)return 0 ; +mutex_lock (&adev->pm.mutex);kv_dpm_setup_asic (adev); ret =kv_dpm_enable (adev);if (ret)
@@ -3049,6 +3050,8 @@ static int kv_dpm_hw_init(struct amdgpu_ip_block *ip_block)else adev->pm.dpm_enabled = true;amdgpu_legacy_dpm_compute_clocks (adev); +mutex_unlock (&adev->pm.mutex); +return ret; }
@@ -3066,32 +3069,42 @@ static int kv_dpm_suspend(struct amdgpu_ip_block *ip_block) {struct amdgpu_device *adev = ip_block->adev; +cancel_work_sync (&adev->pm.dpm.thermal.work); +if (adev->pm.dpm_enabled) { +mutex_lock (&adev->pm.mutex); + adev->pm.dpm_enabled = false;/* disable dpm */ kv_dpm_disable (adev);/* reset the power state */ adev->pm.dpm.current_ps = adev->pm.dpm.requested_ps = adev->pm.dpm.boot_ps; +mutex_unlock (&adev->pm.mutex); }return 0 ; }static int kv_dpm_resume (struct amdgpu_ip_block *ip_block) { -int ret; +int ret =0 ;struct amdgpu_device *adev = ip_block->adev; -if (adev->pm.dpm_enabled) { +if (!amdgpu_dpm) +return 0 ; + +if (!adev->pm.dpm_enabled) { +mutex_lock (&adev->pm.mutex);/* asic init will reset to the boot state */ kv_dpm_setup_asic (adev); ret =kv_dpm_enable (adev); -if (ret) +if (ret) { adev->pm.dpm_enabled = false; -else + }else { adev->pm.dpm_enabled = true; -if (adev->pm.dpm_enabled)amdgpu_legacy_dpm_compute_clocks (adev); + } +mutex_unlock (&adev->pm.mutex); } -return 0 ; +return ret; }static bool kv_dpm_is_idle (void *handle)
drivers/gpu/drm/amd/pm/legacy-dpm/legacy_dpm.c +6 -2
@@ -1009,9 +1009,12 @@ void amdgpu_dpm_thermal_work_handler(struct work_struct *work)enum amd_pm_state_type dpm_state =POWER_STATE_TYPE_INTERNAL_THERMAL ;int temp, size =sizeof (temp); -if (!adev->pm.dpm_enabled) -return ; +mutex_lock (&adev->pm.mutex); +if (!adev->pm.dpm_enabled) { +mutex_unlock (&adev->pm.mutex); +return ; + } if (!pp_funcs->read_sensor(adev->powerplay.pp_handle, AMDGPU_PP_SENSOR_GPU_TEMP, (void *)&temp,
@@ -1033,4 +1036,5 @@ void amdgpu_dpm_thermal_work_handler(struct work_struct *work) adev->pm.dpm.state = dpm_state;amdgpu_legacy_dpm_compute_clocks (adev->powerplay.pp_handle); +mutex_unlock (&adev->pm.mutex); }
drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c +20 -6
@@ -7785,6 +7785,7 @@ static int si_dpm_hw_init(struct amdgpu_ip_block *ip_block)if (!amdgpu_dpm)return 0 ; +mutex_lock (&adev->pm.mutex);si_dpm_setup_asic (adev); ret =si_dpm_enable (adev);if (ret)
@@ -7792,6 +7793,7 @@ static int si_dpm_hw_init(struct amdgpu_ip_block *ip_block)else adev->pm.dpm_enabled = true;amdgpu_legacy_dpm_compute_clocks (adev); +mutex_unlock (&adev->pm.mutex);return ret; }
@@ -7809,32 +7811,44 @@ static int si_dpm_suspend(struct amdgpu_ip_block *ip_block) {struct amdgpu_device *adev = ip_block->adev; +cancel_work_sync (&adev->pm.dpm.thermal.work); +if (adev->pm.dpm_enabled) { +mutex_lock (&adev->pm.mutex); + adev->pm.dpm_enabled = false;/* disable dpm */ si_dpm_disable (adev);/* reset the power state */ adev->pm.dpm.current_ps = adev->pm.dpm.requested_ps = adev->pm.dpm.boot_ps; +mutex_unlock (&adev->pm.mutex); } +return 0 ; }static int si_dpm_resume (struct amdgpu_ip_block *ip_block) { -int ret; +int ret =0 ;struct amdgpu_device *adev = ip_block->adev; -if (adev->pm.dpm_enabled) { +if (!amdgpu_dpm) +return 0 ; + +if (!adev->pm.dpm_enabled) {/* asic init will reset to the boot state */ +mutex_lock (&adev->pm.mutex);si_dpm_setup_asic (adev); ret =si_dpm_enable (adev); -if (ret) +if (ret) { adev->pm.dpm_enabled = false; -else + }else { adev->pm.dpm_enabled = true; -if (adev->pm.dpm_enabled)amdgpu_legacy_dpm_compute_clocks (adev); + } +mutex_unlock (&adev->pm.mutex); } -return 0 ; + +return ret; }static bool si_dpm_is_idle (void *handle)
drivers/gpu/drm/drm_fbdev_dma.c +155 -62
282 lines not on this page · raw message
drivers/gpu/drm/xe/regs/xe_engine_regs.h +0 -1
@@ -53,7 +53,6 @@#define RING_CTL (base) XE_REG((base) + 0x3c)#define RING_CTL_SIZE (size) ((size) - PAGE_SIZE)/* in bytes -> pages */ -#define RING_CTL_SIZE (size) ((size) - PAGE_SIZE)/* in bytes -> pages */ #define RING_START_UDW (base) XE_REG((base) + 0x48)
drivers/gpu/drm/xe/xe_oa.c +3 -2
@@ -1766,7 +1766,7 @@ static int xe_oa_stream_init(struct xe_oa_stream *stream, stream->oa_buffer.format = &stream->oa->oa_formats[param->oa_format]; stream->sample = param->sample; - stream->periodic = param->period_exponent >0 ; + stream->periodic = param->period_exponent >=0 ; stream->period_exponent = param->period_exponent; stream->no_preempt = param->no_preempt; stream->wait_num_reports = param->wait_num_reports;
@@ -2058,6 +2058,7 @@ int xe_oa_stream_open_ioctl(struct drm_device *dev, u64 data, struct drm_file *f } param.xef = xef; + param.period_exponent =-1 ; ret =xe_oa_user_extensions (oa,XE_OA_USER_EXTN_FROM_OPEN , data,0 , ¶m);if (ret)return ret;
@@ -2112,7 +2113,7 @@ int xe_oa_stream_open_ioctl(struct drm_device *dev, u64 data, struct drm_file *f goto err_exec_q; } -if (param.period_exponent >0 ) { +if (param.period_exponent >=0 ) {u64 oa_period, oa_freq_hz;/* Requesting samples from OAG buffer is a privileged operation */
drivers/gpu/drm/xe/xe_vm.c +33 -7
@@ -667,20 +667,33 @@ int xe_vm_userptr_pin(struct xe_vm *vm)/* Collect invalidated userptrs */ spin_lock (&vm->userptr.invalidated_lock); +xe_assert (vm->xe,list_empty (&vm->userptr.repin_list));list_for_each_entry_safe (uvma, next, &vm->userptr.invalidated, userptr.invalidate_link) {list_del_init (&uvma->userptr.invalidate_link); -list_move_tail (&uvma->userptr.repin_link, - &vm->userptr.repin_list); +list_add_tail (&uvma->userptr.repin_link, + &vm->userptr.repin_list); }spin_unlock (&vm->userptr.invalidated_lock); -/* Pin and move to temporary list */ +/* Pin and move to bind list */ list_for_each_entry_safe (uvma, next, &vm->userptr.repin_list, userptr.repin_link) { err =xe_vma_userptr_pin_pages (uvma);if (err == -EFAULT ) {list_del_init (&uvma->userptr.repin_link); +/* +* We might have already done the pin once already, but +* then had to retry before the re-bind happened, due +* some other condition in the caller, but in the +* meantime the userptr got dinged by the notifier such +* that we need to revalidate here, but this time we hit +* the EFAULT. In such a case make sure we remove +* ourselves from the rebind list to avoid going down in +* flames. +*/ +if (!list_empty (&uvma->vma.combined_links.rebind)) +list_del_init (&uvma->vma.combined_links.rebind);/* Wait for pending binds */ xe_vm_lock (vm, false);
@@ -691,10 +704,10 @@ int xe_vm_userptr_pin(struct xe_vm *vm) err =xe_vm_invalidate_vma (&uvma->vma);xe_vm_unlock (vm);if (err) -return err; +break ; }else { -if (err <0 ) -return err; +if (err) +break ;list_del_init (&uvma->userptr.repin_link); list_move_tail(&uvma->vma.combined_links.rebind,
@@ -702,7 +715,19 @@ int xe_vm_userptr_pin(struct xe_vm *vm) } } -return 0 ; +if (err) { +down_write (&vm->userptr.notifier_lock); +spin_lock (&vm->userptr.invalidated_lock); +list_for_each_entry_safe (uvma, next, &vm->userptr.repin_list, + userptr.repin_link) { +list_del_init (&uvma->userptr.repin_link); +list_move_tail (&uvma->userptr.invalidate_link, + &vm->userptr.invalidated); + } +spin_unlock (&vm->userptr.invalidated_lock); +up_write (&vm->userptr.notifier_lock); + } +return err; }/**
@@ -1066,6 +1091,7 @@ static void xe_vma_destroy(struct xe_vma *vma, struct dma_fence *fence)xe_assert (vm->xe, vma->gpuva.flags &XE_VMA_DESTROYED );spin_lock (&vm->userptr.invalidated_lock); +xe_assert (vm->xe,list_empty (&to_userptr_vma (vma)->userptr.repin_link));list_del (&to_userptr_vma (vma)->userptr.invalidate_link);spin_unlock (&vm->userptr.invalidated_lock); }else if (!xe_vma_is_null (vma)) {
drivers/i2c/busses/i2c-amd-asf-plat.c +1 -0
@@ -293,6 +293,7 @@ static irqreturn_t amd_asf_irq_handler(int irq, void *ptr)amd_asf_update_ioport_target (piix4_smba,ASF_SLV_INTR ,SMBHSTSTS , true); } +iowrite32 (irq, dev->eoi_base);return IRQ_HANDLED ; }
drivers/i2c/busses/i2c-ls2x.c +12 -4
@@ -10,6 +10,7 @@* Rewritten for mainline by Binbin Zhou <[email protected]> */ +#include <linux/bitfield.h> #include <linux/bits.h> #include <linux/completion.h> #include <linux/device.h>
@@ -26,7 +27,8 @@#include <linux/units.h> /* I2C Registers */ -#define I2C_LS2X_PRER 0x0/* Freq Division Register(16 bits) */ +#define I2C_LS2X_PRER_LO 0x0/* Freq Division Low Byte Register */ +#define I2C_LS2X_PRER_HI 0x1/* Freq Division High Byte Register */ #define I2C_LS2X_CTR 0x2/* Control Register */ #define I2C_LS2X_TXR 0x3/* Transport Data Register */ #define I2C_LS2X_RXR 0x3/* Receive Data Register */
@@ -93,6 +95,7 @@ static irqreturn_t ls2x_i2c_isr(int this_irq, void *dev_id)*/ static void ls2x_i2c_adjust_bus_speed (struct ls2x_i2c_priv *priv) { +u16 val;struct i2c_timings *t = &priv->i2c_t;struct device *dev = priv->adapter.dev.parent;u32 acpi_speed =i2c_acpi_find_bus_speed (dev);
@@ -104,9 +107,14 @@ static void ls2x_i2c_adjust_bus_speed(struct ls2x_i2c_priv *priv)else t->bus_freq_hz =LS2X_I2C_FREQ_STD ; -/* Calculate and set i2c frequency. */ -writew (LS2X_I2C_PCLK_FREQ / (5 * t->bus_freq_hz) -1 , - priv->base +I2C_LS2X_PRER ); +/* +* According to the chip manual, we can only access the registers as bytes, +* otherwise the high bits will be truncated. +* So set the I2C frequency with a sequential writeb() instead of writew(). +*/ + val =LS2X_I2C_PCLK_FREQ / (5 * t->bus_freq_hz) -1 ; +writeb (FIELD_GET (GENMASK (7 ,0 ), val), priv->base +I2C_LS2X_PRER_LO ); +writeb (FIELD_GET (GENMASK (15 ,8 ), val), priv->base +I2C_LS2X_PRER_HI ); }static void ls2x_i2c_init (struct ls2x_i2c_priv *priv)
drivers/i2c/busses/i2c-npcm7xx.c +7 -0
@@ -2329,6 +2329,13 @@ static int npcm_i2c_probe_bus(struct platform_device *pdev)if (irq <0 )return irq; +/* +* Disable the interrupt to avoid the interrupt handler being triggered +* incorrectly by the asynchronous interrupt status since the machine +* might do a warm reset during the last smbus/i2c transfer session. +*/ +npcm_i2c_int_enable (bus, false); + ret =devm_request_irq (bus->dev, irq, npcm_i2c_bus_irq,0 ,dev_name (bus->dev), bus);if (ret)
drivers/idle/intel_idle.c +4 -0
@@ -55,6 +55,7 @@#include <asm/intel-family.h> #include <asm/mwait.h> #include <asm/spec-ctrl.h> +#include <asm/tsc.h> #include <asm/fpu/api.h> #define INTEL_IDLE_VERSION "0.5.1"
@@ -1797,6 +1798,9 @@ static void __init intel_idle_init_cstates_acpi(struct cpuidle_driver *drv)if (intel_idle_state_needs_timer_stop (state)) state->flags |=CPUIDLE_FLAG_TIMER_STOP ; +if (cx->type >ACPI_STATE_C1 && !boot_cpu_has (X86_FEATURE_NONSTOP_TSC )) +mark_tsc_unstable ("TSC halts in idle" ); + state->enter = intel_idle; state->enter_s2idle = intel_idle_s2idle; }
drivers/infiniband/hw/bnxt_re/bnxt_re.h +1 -1
@@ -204,7 +204,7 @@ struct bnxt_re_dev {struct bnxt_re_nq_record *nqr;/* Device Resources */ -struct bnxt_qplib_dev_attr dev_attr; +struct bnxt_qplib_dev_attr *dev_attr;struct bnxt_qplib_ctx qplib_ctx;struct bnxt_qplib_res qplib_res;struct bnxt_qplib_dpi dpi_privileged;
drivers/infiniband/hw/bnxt_re/hw_counters.c +2 -2
@@ -357,8 +357,8 @@ int bnxt_re_ib_get_hw_stats(struct ib_device *ibdev, goto done; }bnxt_re_copy_err_stats (rdev, stats, err_s); -if (_is_ext_stats_supported (rdev->dev_attr.dev_cap_flags) && - !rdev->is_virtfn) { +if (bnxt_ext_stats_supported (rdev->chip_ctx, rdev->dev_attr->dev_cap_flags, + rdev->is_virtfn)) { rc =bnxt_re_get_ext_stat (rdev, stats);if (rc) { clear_bit(BNXT_RE_FLAG_ISSUE_ROCE_STATS,
drivers/infiniband/hw/bnxt_re/ib_verbs.c +21 -19
@@ -161,7 +161,7 @@ static int __qp_access_flags_to_ib(struct bnxt_qplib_chip_ctx *cctx, u8 qflags)static void bnxt_re_check_and_set_relaxed_ordering (struct bnxt_re_dev *rdev,struct bnxt_qplib_mrw *qplib_mr) { -if (_is_relaxed_ordering_supported (rdev->dev_attr.dev_cap_flags2) && +if (_is_relaxed_ordering_supported (rdev->dev_attr->dev_cap_flags2) &&pcie_relaxed_ordering_enabled (rdev->en_dev->pdev)) qplib_mr->flags |=CMDQ_REGISTER_MR_FLAGS_ENABLE_RO ; }
@@ -186,7 +186,7 @@ int bnxt_re_query_device(struct ib_device *ibdev, struct ib_udata *udata) {struct bnxt_re_dev *rdev =to_bnxt_re_dev (ibdev, ibdev); -struct bnxt_qplib_dev_attr *dev_attr = &rdev->dev_attr; +struct bnxt_qplib_dev_attr *dev_attr = rdev->dev_attr;memset (ib_attr,0 ,sizeof (*ib_attr)); memcpy(&ib_attr->fw_ver, dev_attr->fw_ver,
@@ -275,7 +275,7 @@ int bnxt_re_query_port(struct ib_device *ibdev, u32 port_num, struct ib_port_attr *port_attr) {struct bnxt_re_dev *rdev =to_bnxt_re_dev (ibdev, ibdev); -struct bnxt_qplib_dev_attr *dev_attr = &rdev->dev_attr; +struct bnxt_qplib_dev_attr *dev_attr = rdev->dev_attr;int rc;memset (port_attr,0 ,sizeof (*port_attr));
@@ -333,8 +333,8 @@ void bnxt_re_query_fw_str(struct ib_device *ibdev, char *str)struct bnxt_re_dev *rdev =to_bnxt_re_dev (ibdev, ibdev);snprintf (str,IB_FW_VERSION_NAME_MAX ,"%d.%d.%d.%d" , - rdev->dev_attr.fw_ver[0 ], rdev->dev_attr.fw_ver[1 ], - rdev->dev_attr.fw_ver[2 ], rdev->dev_attr.fw_ver[3 ]); + rdev->dev_attr->fw_ver[0 ], rdev->dev_attr->fw_ver[1 ], + rdev->dev_attr->fw_ver[2 ], rdev->dev_attr->fw_ver[3 ]); } int bnxt_re_query_pkey(struct ib_device *ibdev, u32 port_num,
@@ -585,7 +585,7 @@ static int bnxt_re_create_fence_mr(struct bnxt_re_pd *pd) mr->qplib_mr.pd = &pd->qplib_pd; mr->qplib_mr.type =CMDQ_ALLOCATE_MRW_MRW_FLAGS_PMR ; mr->qplib_mr.access_flags =__from_ib_access_flags (mr_access_flags); -if (!_is_alloc_mr_unified (rdev->dev_attr.dev_cap_flags)) { +if (!_is_alloc_mr_unified (rdev->dev_attr->dev_cap_flags)) { rc =bnxt_qplib_alloc_mrw (&rdev->qplib_res, &mr->qplib_mr);if (rc) {ibdev_err (&rdev->ibdev,"Failed to alloc fence-HW-MR\n" );
@@ -1057,7 +1057,7 @@ static int bnxt_re_setup_swqe_size(struct bnxt_re_qp *qp, rdev = qp->rdev; qplqp = &qp->qplib_qp; sq = &qplqp->sq; - dev_attr = &rdev->dev_attr; + dev_attr = rdev->dev_attr; align =sizeof (struct sq_send_hdr ); ilsize =ALIGN (init_attr->cap.max_inline_data, align);
@@ -1277,7 +1277,7 @@ static int bnxt_re_init_rq_attr(struct bnxt_re_qp *qp, rdev = qp->rdev; qplqp = &qp->qplib_qp; rq = &qplqp->rq; - dev_attr = &rdev->dev_attr; + dev_attr = rdev->dev_attr;if (init_attr->srq) {struct bnxt_re_srq *srq;
@@ -1314,7 +1314,7 @@ static void bnxt_re_adjust_gsi_rq_attr(struct bnxt_re_qp *qp) rdev = qp->rdev; qplqp = &qp->qplib_qp; - dev_attr = &rdev->dev_attr; + dev_attr = rdev->dev_attr;if (!bnxt_qplib_is_chip_gen_p5_p7 (rdev->chip_ctx)) { qplqp->rq.max_sge = dev_attr->max_qp_sges;
@@ -1340,7 +1340,7 @@ static int bnxt_re_init_sq_attr(struct bnxt_re_qp *qp, rdev = qp->rdev; qplqp = &qp->qplib_qp; sq = &qplqp->sq; - dev_attr = &rdev->dev_attr; + dev_attr = rdev->dev_attr; sq->max_sge = init_attr->cap.max_send_sge; entries = init_attr->cap.max_send_wr;
@@ -1393,7 +1393,7 @@ static void bnxt_re_adjust_gsi_sq_attr(struct bnxt_re_qp *qp, rdev = qp->rdev; qplqp = &qp->qplib_qp; - dev_attr = &rdev->dev_attr; + dev_attr = rdev->dev_attr;if (!bnxt_qplib_is_chip_gen_p5_p7 (rdev->chip_ctx)) { entries =bnxt_re_init_depth (init_attr->cap.max_send_wr +1 , uctx);
@@ -1442,7 +1442,7 @@ static int bnxt_re_init_qp_attr(struct bnxt_re_qp *qp, struct bnxt_re_pd *pd, rdev = qp->rdev; qplqp = &qp->qplib_qp; - dev_attr = &rdev->dev_attr; + dev_attr = rdev->dev_attr;/* Setup misc params */ ether_addr_copy (qplqp->smac, rdev->netdev->dev_addr);
@@ -1612,7 +1612,7 @@ int bnxt_re_create_qp(struct ib_qp *ib_qp, struct ib_qp_init_attr *qp_init_attr, ib_pd = ib_qp->pd; pd = container_of(ib_pd, struct bnxt_re_pd, ib_pd); rdev = pd->rdev; - dev_attr = &rdev->dev_attr; + dev_attr = rdev->dev_attr; qp = container_of(ib_qp, struct bnxt_re_qp, ib_qp); uctx = rdma_udata_to_drv_context(udata, struct bnxt_re_ucontext, ib_uctx);
@@ -1840,7 +1840,7 @@ int bnxt_re_create_srq(struct ib_srq *ib_srq, ib_pd = ib_srq->pd; pd = container_of(ib_pd, struct bnxt_re_pd, ib_pd); rdev = pd->rdev; - dev_attr = &rdev->dev_attr; + dev_attr = rdev->dev_attr; srq = container_of(ib_srq, struct bnxt_re_srq, ib_srq);if (srq_init_attr->attr.max_wr >= dev_attr->max_srq_wqes) {
@@ -1872,6 +1872,8 @@ int bnxt_re_create_srq(struct ib_srq *ib_srq, srq->qplib_srq.threshold = srq_init_attr->attr.srq_limit; srq->srq_limit = srq_init_attr->attr.srq_limit; srq->qplib_srq.eventq_hw_ring_id = rdev->nqr->nq[0 ].ring_id; + srq->qplib_srq.sg_info.pgsize =PAGE_SIZE ; + srq->qplib_srq.sg_info.pgshft =PAGE_SHIFT ; nq = &rdev->nqr->nq[0 ];if (udata) {
@@ -2044,7 +2046,7 @@ int bnxt_re_modify_qp(struct ib_qp *ib_qp, struct ib_qp_attr *qp_attr, { struct bnxt_re_qp *qp = container_of(ib_qp, struct bnxt_re_qp, ib_qp);struct bnxt_re_dev *rdev = qp->rdev; -struct bnxt_qplib_dev_attr *dev_attr = &rdev->dev_attr; +struct bnxt_qplib_dev_attr *dev_attr = rdev->dev_attr;enum ib_qp_state curr_qp_state, new_qp_state;int rc, entries;unsigned int flags;
@@ -3091,7 +3093,7 @@ int bnxt_re_create_cq(struct ib_cq *ibcq, const struct ib_cq_init_attr *attr,struct ib_udata *udata = &attrs->driver_udata;struct bnxt_re_ucontext *uctx = rdma_udata_to_drv_context(udata, struct bnxt_re_ucontext, ib_uctx); -struct bnxt_qplib_dev_attr *dev_attr = &rdev->dev_attr; +struct bnxt_qplib_dev_attr *dev_attr = rdev->dev_attr;struct bnxt_qplib_chip_ctx *cctx;int cqe = attr->cqe;int rc, entries;
@@ -3226,7 +3228,7 @@ int bnxt_re_resize_cq(struct ib_cq *ibcq, int cqe, struct ib_udata *udata) cq = container_of(ibcq, struct bnxt_re_cq, ib_cq); rdev = cq->rdev; - dev_attr = &rdev->dev_attr; + dev_attr = rdev->dev_attr;if (!ibcq->uobject) {ibdev_err (&rdev->ibdev,"Kernel CQ Resize not supported" );return -EOPNOTSUPP ;
@@ -4199,7 +4201,7 @@ static struct ib_mr *__bnxt_re_user_reg_mr(struct ib_pd *ib_pd, u64 length, u64 mr->qplib_mr.access_flags =__from_ib_access_flags (mr_access_flags); mr->qplib_mr.type =CMDQ_ALLOCATE_MRW_MRW_FLAGS_MR ; -if (!_is_alloc_mr_unified (rdev->dev_attr.dev_cap_flags)) { +if (!_is_alloc_mr_unified (rdev->dev_attr->dev_cap_flags)) { rc =bnxt_qplib_alloc_mrw (&rdev->qplib_res, &mr->qplib_mr);if (rc) {ibdev_err (&rdev->ibdev,"Failed to allocate MR rc = %d" , rc);
@@ -4291,7 +4293,7 @@ int bnxt_re_alloc_ucontext(struct ib_ucontext *ctx, struct ib_udata *udata)struct bnxt_re_ucontext *uctx = container_of(ctx, struct bnxt_re_ucontext, ib_uctx);struct bnxt_re_dev *rdev =to_bnxt_re_dev (ibdev, ibdev); -struct bnxt_qplib_dev_attr *dev_attr = &rdev->dev_attr; +struct bnxt_qplib_dev_attr *dev_attr = rdev->dev_attr;struct bnxt_re_user_mmap_entry *entry;struct bnxt_re_uctx_resp resp = {};struct bnxt_re_uctx_req ureq = {};
drivers/infiniband/hw/bnxt_re/main.c +28 -13
115 lines not on this page · raw message
drivers/infiniband/hw/bnxt_re/qplib_res.c +3 -4
@@ -876,14 +876,13 @@ void bnxt_qplib_free_res(struct bnxt_qplib_res *res)bnxt_qplib_free_dpi_tbl (res, &res->dpi_tbl); } -int bnxt_qplib_alloc_res (struct bnxt_qplib_res *res,struct pci_dev *pdev, -struct net_device *netdev, -struct bnxt_qplib_dev_attr *dev_attr) +int bnxt_qplib_alloc_res (struct bnxt_qplib_res *res,struct net_device *netdev) { +struct bnxt_qplib_dev_attr *dev_attr;int rc; - res->pdev = pdev; res->netdev = netdev; + dev_attr = res->dattr; rc =bnxt_qplib_alloc_sgid_tbl (res, &res->sgid_tbl, dev_attr->max_sgid);if (rc)
drivers/infiniband/hw/bnxt_re/qplib_res.h +9 -3
@@ -424,9 +424,7 @@ int bnxt_qplib_dealloc_dpi(struct bnxt_qplib_res *res,void bnxt_qplib_cleanup_res (struct bnxt_qplib_res *res);int bnxt_qplib_init_res (struct bnxt_qplib_res *res);void bnxt_qplib_free_res (struct bnxt_qplib_res *res); -int bnxt_qplib_alloc_res (struct bnxt_qplib_res *res,struct pci_dev *pdev, -struct net_device *netdev, -struct bnxt_qplib_dev_attr *dev_attr); +int bnxt_qplib_alloc_res (struct bnxt_qplib_res *res,struct net_device *netdev);void bnxt_qplib_free_ctx (struct bnxt_qplib_res *res,struct bnxt_qplib_ctx *ctx); int bnxt_qplib_alloc_ctx(struct bnxt_qplib_res *res,
@@ -549,6 +547,14 @@ static inline bool _is_ext_stats_supported(u16 dev_cap_flags)CREQ_QUERY_FUNC_RESP_SB_EXT_STATS ; } +static inline int bnxt_ext_stats_supported (struct bnxt_qplib_chip_ctx *ctx, +u16 flags,bool virtfn) +{ +/* ext stats supported if cap flag is set AND is a PF OR a Thor2 VF */ +return (_is_ext_stats_supported (flags) && + ((virtfn &&bnxt_qplib_is_chip_gen_p7 (ctx)) || (!virtfn))); +} +static inline bool _is_hw_retx_supported (u16 dev_cap_flags) { return dev_cap_flags &
drivers/infiniband/hw/bnxt_re/qplib_sp.c +2 -2
@@ -88,9 +88,9 @@ static void bnxt_qplib_query_version(struct bnxt_qplib_rcfw *rcfw, fw_ver[3 ] = resp.fw_rsvd; } -int bnxt_qplib_get_dev_attr (struct bnxt_qplib_rcfw *rcfw, -struct bnxt_qplib_dev_attr *attr) +int bnxt_qplib_get_dev_attr (struct bnxt_qplib_rcfw *rcfw) { +struct bnxt_qplib_dev_attr *attr = rcfw->res->dattr;struct creq_query_func_resp resp = {};struct bnxt_qplib_cmdqmsg msg = {};struct creq_query_func_resp_sb *sb;
drivers/infiniband/hw/bnxt_re/qplib_sp.h +1 -2
@@ -325,8 +325,7 @@ int bnxt_qplib_add_sgid(struct bnxt_qplib_sgid_tbl *sgid_tbl,int bnxt_qplib_update_sgid (struct bnxt_qplib_sgid_tbl *sgid_tbl,struct bnxt_qplib_gid *gid,u16 gid_idx,const u8 *smac); -int bnxt_qplib_get_dev_attr (struct bnxt_qplib_rcfw *rcfw, -struct bnxt_qplib_dev_attr *attr); +int bnxt_qplib_get_dev_attr (struct bnxt_qplib_rcfw *rcfw);int bnxt_qplib_set_func_resources (struct bnxt_qplib_res *res,struct bnxt_qplib_rcfw *rcfw,struct bnxt_qplib_ctx *ctx);
drivers/infiniband/hw/hns/hns_roce_hw_v2.c +48 -16
110 lines not on this page · raw message
drivers/infiniband/hw/hns/hns_roce_hw_v2.h +2 -0
@@ -230,6 +230,8 @@ enum hns_roce_opcode_type { };#define HNS_ROCE_OPC_POST_MB_TIMEOUT 35000 +#define HNS_ROCE_OPC_POST_MB_TRY_CNT 8 +#define HNS_ROCE_OPC_POST_MB_RETRY_GAP_MSEC 5struct hns_roce_cmdq_tx_timeout_map {u16 opcode;u32 tx_timeout;
drivers/infiniband/hw/mana/main.c +1 -1
@@ -174,7 +174,7 @@ static int mana_gd_allocate_doorbell_page(struct gdma_context *gc, req.resource_type =GDMA_RESOURCE_DOORBELL_PAGE ; req.num_resources =1 ; - req.alignment =1 ; + req.alignment =PAGE_SIZE /MANA_PAGE_SIZE ;/* Have GDMA start searching from 0 */ req.allocated_resources =0 ;
drivers/infiniband/hw/mlx5/ah.c +2 -1
@@ -67,7 +67,8 @@ static void create_ib_ah(struct mlx5_ib_dev *dev, struct mlx5_ib_ah *ah, ah->av.tclass = grh->traffic_class; } - ah->av.stat_rate_sl = (rdma_ah_get_static_rate (ah_attr) <<4 ); + ah->av.stat_rate_sl = + (mlx5r_ib_rate (dev,rdma_ah_get_static_rate (ah_attr)) <<4 );if (ah_attr->type ==RDMA_AH_ATTR_TYPE_ROCE ) {if (init_attr->xmit_slave)
drivers/infiniband/hw/mlx5/counters.c +6 -2
@@ -546,6 +546,7 @@ static int mlx5_ib_counter_bind_qp(struct rdma_counter *counter, struct ib_qp *qp) {struct mlx5_ib_dev *dev =to_mdev (qp->device); +bool new = false;int err;if (!counter->id) {
@@ -560,6 +561,7 @@ static int mlx5_ib_counter_bind_qp(struct rdma_counter *counter,return err; counter->id =MLX5_GET (alloc_q_counter_out, out, counter_set_id); + new = true; } err =mlx5_ib_qp_set_counter (qp, counter);
@@ -569,8 +571,10 @@ static int mlx5_ib_counter_bind_qp(struct rdma_counter *counter,return 0 ; fail_set_counter: -mlx5_ib_counter_dealloc (counter); - counter->id =0 ; +if (new) { +mlx5_ib_counter_dealloc (counter); + counter->id =0 ; + }return err; }
drivers/infiniband/hw/mlx5/mr.c +14 -2
@@ -1550,7 +1550,7 @@ static void mlx5_ib_dmabuf_invalidate_cb(struct dma_buf_attachment *attach)dma_resv_assert_held (umem_dmabuf->attach->dmabuf->resv); -if (!umem_dmabuf->sgt) +if (!umem_dmabuf->sgt || !mr)return ;mlx5r_umr_update_mr_pas (mr,MLX5_IB_UPD_XLT_ZAP );
@@ -1935,7 +1935,8 @@ mlx5_alloc_priv_descs(struct ib_device *device,static void mlx5_free_priv_descs (struct mlx5_ib_mr *mr) { -if (!mr->umem && !mr->data_direct && mr->descs) { +if (!mr->umem && !mr->data_direct && + mr->ibmr.type !=IB_MR_TYPE_DM && mr->descs) {struct ib_device *device = mr->ibmr.device;int size = mr->max_descs * mr->desc_size;struct mlx5_ib_dev *dev =to_mdev (device);
@@ -2022,11 +2023,16 @@ static int mlx5_revoke_mr(struct mlx5_ib_mr *mr)struct mlx5_ib_dev *dev =to_mdev (mr->ibmr.device);struct mlx5_cache_ent *ent = mr->mmkey.cache_ent;bool is_odp =is_odp_mr (mr); +bool is_odp_dma_buf =is_dmabuf_mr (mr) && + !to_ib_umem_dmabuf (mr->umem)->pinned;int ret =0 ;if (is_odp)mutex_lock (&to_ib_umem_odp (mr->umem)->umem_mutex); +if (is_odp_dma_buf) +dma_resv_lock (to_ib_umem_dmabuf (mr->umem)->attach->dmabuf->resv,NULL ); +if (mr->mmkey.cacheable && !mlx5r_umr_revoke_mr (mr) && !cache_ent_find_and_store (dev, mr)) { ent = mr->mmkey.cache_ent;/* upon storing to a clean temp entry - schedule its cleanup */
@@ -2054,6 +2060,12 @@ static int mlx5_revoke_mr(struct mlx5_ib_mr *mr)mutex_unlock (&to_ib_umem_odp (mr->umem)->umem_mutex); } +if (is_odp_dma_buf) { +if (!ret) +to_ib_umem_dmabuf (mr->umem)->private =NULL ; +dma_resv_unlock (to_ib_umem_dmabuf (mr->umem)->attach->dmabuf->resv); + } +return ret; }
drivers/infiniband/hw/mlx5/odp.c +1 -0
@@ -242,6 +242,7 @@ static void destroy_unused_implicit_child_mr(struct mlx5_ib_mr *mr)if (__xa_cmpxchg (&imr->implicit_children, idx, mr,NULL ,GFP_KERNEL ) != mr) {xa_unlock (&imr->implicit_children); +mlx5r_deref_odp_mkey (&imr->mmkey);return ; }
drivers/infiniband/hw/mlx5/qp.c +6 -4
@@ -3447,11 +3447,11 @@ static int ib_to_mlx5_rate_map(u8 rate)return 0 ; } -static int ib_rate_to_mlx5 (struct mlx5_ib_dev *dev,u8 rate) +int mlx5r_ib_rate (struct mlx5_ib_dev *dev,u8 rate) {u32 stat_rate_support; -if (rate ==IB_RATE_PORT_CURRENT ) +if (rate ==IB_RATE_PORT_CURRENT || rate ==IB_RATE_800_GBPS )return 0 ;if (rate <IB_RATE_2_5_GBPS || rate >IB_RATE_800_GBPS )
@@ -3596,7 +3596,7 @@ static int mlx5_set_path(struct mlx5_ib_dev *dev, struct mlx5_ib_qp *qp, sizeof(grh->dgid.raw)); } - err =ib_rate_to_mlx5 (dev,rdma_ah_get_static_rate (ah)); + err =mlx5r_ib_rate (dev,rdma_ah_get_static_rate (ah));if (err <0 )return err;MLX5_SET (ads, path, stat_rate, err);
@@ -4579,6 +4579,8 @@ static int mlx5_ib_modify_dct(struct ib_qp *ibqp, struct ib_qp_attr *attr, set_id =mlx5_ib_get_counters_id (dev, attr->port_num -1 );
Lines of this file are not shown. View the raw message.
drivers/infiniband/hw/mlx5/umr.c +56 -27
83 lines not on this page · raw message
drivers/net/dsa/realtek/rtl8366rb-leds.c new file +177 -0
177 lines not on this page · raw message
drivers/net/dsa/realtek/rtl8366rb.c +6 -252
258 lines not on this page · raw message
drivers/net/dsa/realtek/rtl8366rb.h new file +107 -0
107 lines not on this page · raw message
drivers/net/ethernet/cadence/macb_main.c +10 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/freescale/enetc/enetc.c +74 -29
103 lines not on this page · raw message
drivers/net/ethernet/freescale/enetc/enetc4_pf.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/freescale/enetc/enetc_ethtool.c +5 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/google/gve/gve_rx_dqo.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_eswitch.c +1 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_sriov.c +1 -4
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_vf_lib.c +8 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_vf_lib_private.h +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/idpf/idpf_txrx.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c +7 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/pci_irq.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c +14 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/ti/icssg/icss_iep.c +1 -20
Lines of this file are not shown. View the raw message.
drivers/phy/rockchip/phy-rockchip-naneng-combphy.c +4 -1
Lines of this file are not shown. View the raw message.
drivers/phy/samsung/phy-exynos5-usbdrd.c +14 -11
Lines of this file are not shown. View the raw message.
drivers/thermal/thermal_of.c +29 -21
50 lines not on this page · raw message
fs/btrfs/extent_map.c +59 -24
83 lines not on this page · raw message
sound/soc/codecs/cs35l56-shared.c +80 -0
80 lines not on this page · raw message
tools/objtool/check.c +6 -44
50 lines not on this page · raw message
tools/objtool/include/objtool/special.h +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/drivers/net/queues.py +3 -4
Lines of this file are not shown. View the raw message.
tools/testing/selftests/landlock/common.h +1 -0
Lines of this file are not shown. View the raw message.
tools/testing/selftests/landlock/config +2 -0
Lines of this file are not shown. View the raw message.
tools/testing/selftests/landlock/net_test.c +110 -14
124 lines not on this page · raw message
tools/testing/selftests/rseq/rseq-riscv-bits.h +3 -3
Lines of this file are not shown. View the raw message.
tools/testing/selftests/rseq/rseq-riscv.h +1 -1
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.
Greg Kroah-Hartman wrote on 07/03/2025 18:52:
Quoted 4 lines
I'm announcing the release of the 6.13.6 kernel.
All users of the 6.13 kernel series must upgrade.
Thank you all for the new stable kernel. Unfortunately, the following messages appear in dmesg on my system:
[ 0.000000] microcode: You should not be seeing this. Please send the following couple of lines to x86-<at>-kernel.org [ 0.000000] microcode: CPUID(1).EAX: 0xa50f00, current revision: 0xa500011 [ 0.000000] Linux version 6.13.6 (root@uruz) (gcc (Debian 14.2.0-17) 14.2.0, GNU ld (GNU Binutils for Debian) 2.44) #1 SMP Fri Mar 7 19:40:58 CET 2025 [ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz root=PARTUUID=cb5df131-01
random.trust_cpu=on amd_pstate=active spec_rstack_overflow=off
...
[ 0.295153] smpboot: CPU0: AMD Ryzen 7 5700G with Radeon Graphics (family: 0x19, model: 0x50, stepping: 0x0) [ 0.295308] Performance Events: Fam17h+ core perfctr, AMD PMU driver. [ 0.295386] ... version: 0 [ 0.295442] ... bit width: 48 [ 0.295499] ... generic registers: 6 [ 0.295555] ... value mask: 0000ffffffffffff [ 0.295617] ... max period: 00007fffffffffff [ 0.295678] ... fixed-purpose events: 0 [ 0.295735] ... event mask: 000000000000003f [ 0.295838] signal: max sigframe size: 2976 [ 0.295921] rcu: Hierarchical SRCU implementation. [ 0.295981] rcu: Max phase no-delay instances is 1000. [ 0.296062] Timer migration: 2 hierarchy levels; 8 children per group; 2 crossnode level [ 0.296192] smp: Bringing up secondary CPUs ... [ 0.296286] smpboot: x86: Booting SMP configuration: [ 0.296346] .... node #0, CPUs: #1 #2 #3 #4 [ 0.015631] microcode: You should not be seeing this. Please send the following couple of lines to x86-<at>-kernel.org [ 0.015631] microcode: CPUID(1).EAX: 0xa50f00, current revision: 0xa500011 [ 0.015631] microcode: You should not be seeing this. Please send the following couple of lines to x86-<at>-kernel.org [ 0.015631] microcode: CPUID(1).EAX: 0xa50f00, current revision: 0xa500011 [ 0.015631] microcode: You should not be seeing this. Please send the following couple of lines to x86-<at>-kernel.org [ 0.015631] microcode: CPUID(1).EAX: 0xa50f00, current revision: 0xa500011 [ 0.015631] microcode: You should not be seeing this. Please send the following couple of lines to x86-<at>-kernel.org [ 0.015631] microcode: CPUID(1).EAX: 0xa50f00, current revision: 0xa500011 [ 0.296783] #5 [ 0.015631] microcode: You should not be seeing this. Please send the following couple of lines to x86-<at>-kernel.org [ 0.015631] microcode: CPUID(1).EAX: 0xa50f00, current revision: 0xa500011 [ 0.296817] #6 [ 0.015631] microcode: You should not be seeing this. Please send the following couple of lines to x86-<at>-kernel.org [ 0.015631] microcode: CPUID(1).EAX: 0xa50f00, current revision: 0xa500011 [ 0.296817] #7 [ 0.015631] microcode: You should not be seeing this. Please send the following couple of lines to x86-<at>-kernel.org [ 0.015631] microcode: CPUID(1).EAX: 0xa50f00, current revision: 0xa500011 [ 0.310182] #8 [ 0.015631] microcode: You should not be seeing this. Please send the following couple of lines to x86-<at>-kernel.org [ 0.015631] microcode: CPUID(1).EAX: 0xa50f00, current revision: 0xa500011 [ 0.310682] #9 [ 0.015631] microcode: You should not be seeing this. Please send the following couple of lines to x86-<at>-kernel.org [ 0.015631] microcode: CPUID(1).EAX: 0xa50f00, current revision: 0xa500011 [ 0.310978] #10 [ 0.015631] microcode: You should not be seeing this. Please send the following couple of lines to x86-<at>-kernel.org [ 0.015631] microcode: CPUID(1).EAX: 0xa50f00, current revision: 0xa500011 [ 0.311265] #11 [ 0.015631] microcode: You should not be seeing this. Please send the following couple of lines to x86-<at>-kernel.org [ 0.015631] microcode: CPUID(1).EAX: 0xa50f00, current revision: 0xa500011 [ 0.311553] #12 [ 0.015631] microcode: You should not be seeing this. Please send the following couple of lines to x86-<at>-kernel.org [ 0.015631] microcode: CPUID(1).EAX: 0xa50f00, current revision: 0xa500011 [ 0.311842] #13 [ 0.015631] microcode: You should not be seeing this. Please send the following couple of lines to x86-<at>-kernel.org [ 0.015631] microcode: CPUID(1).EAX: 0xa50f00, current revision: 0xa500011 [ 0.312134] #14 [ 0.015631] microcode: You should not be seeing this. Please send the following couple of lines to x86-<at>-kernel.org [ 0.015631] microcode: CPUID(1).EAX: 0xa50f00, current revision: 0xa500011 [ 0.312424] #15 [ 0.015631] microcode: You should not be seeing this. Please send the following couple of lines to x86-<at>-kernel.org [ 0.015631] microcode: CPUID(1).EAX: 0xa50f00, current revision: 0xa500011 [ 0.313521] Spectre V2 : Update user space SMT mitigation: STIBP always-on [ 0.328817] smp: Brought up 1 node, 16 CPUs [ 0.330152] smpboot: Total of 16 processors activated (121422.53 BogoMIPS) [ 0.331117] Memory: 61612104K/62798720K available (10240K kernel code, 922K
rwdata, 2264K rodata, 1248K init, 1564K bss, 1173300K reserved, 0K cma-reserved)
Before this, I used stable kernel 6.13.4 which didn't show these lines.
Regards,
Jörg.
Quoted 3 lines · Jörg-Volker Peetz
[ 0.000000] microcode: You should not be seeing this. Please send the following couple of lines to x86-<at>-kernel.org [ 0.000000] microcode: CPUID(1).EAX: 0xa50f00, current revision: 0xa500011
This should fix it:
https://lore.kernel.org/r/[email protected]
Thx.
Signature · 4 lines
Regards/Gruss,
Boris.
https://people.kernel.org/tglx/notes-about-netiquetteGreg Kroah-Hartman
maintainerQuoted 8 lines · Borislav Petkov
Quoted 3 lines · Jörg-Volker Peetz
[ 0.000000] microcode: You should not be seeing this. Please send the following couple of lines to x86-<at>-kernel.org [ 0.000000] microcode: CPUID(1).EAX: 0xa50f00, current revision: 0xa500011This should fix it:
Now queued up.