Linux 6.6.81
Greg Kroah-Hartman
maintainerI'm announcing the release of the 6.6.81 kernel.
All users, EXCEPT i386 systems, of the 6.6 kernel series must upgrade.
Note, the i386 arch is currently broken, please wait for the next release before you upgrade.
The updated 6.6.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.6.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/admin-guide/kernel-parameters.txt | 5 Makefile | 2 arch/arm64/boot/dts/rockchip/px30-ringneck.dtsi | 5 arch/riscv/include/asm/futex.h | 2 arch/riscv/include/asm/kvm_host.h | 8 arch/riscv/kernel/signal.c | 6 arch/riscv/kvm/vcpu.c | 48 - arch/riscv/kvm/vcpu_sbi.c | 7 arch/riscv/kvm/vcpu_sbi_hsm.c | 45 - arch/riscv/kvm/vcpu_sbi_replace.c | 15 arch/x86/Kconfig | 26 arch/x86/events/core.c | 2 arch/x86/include/asm/apic.h | 5 arch/x86/include/asm/cpu.h | 20 arch/x86/include/asm/microcode.h | 16 arch/x86/kernel/apic/apic_flat_64.c | 2 arch/x86/kernel/apic/ipi.c | 8 arch/x86/kernel/apic/x2apic_cluster.c | 1 arch/x86/kernel/apic/x2apic_phys.c | 1 arch/x86/kernel/cpu/common.c | 12 arch/x86/kernel/cpu/cyrix.c | 4 arch/x86/kernel/cpu/microcode/amd.c | 636 +++++++++++----- arch/x86/kernel/cpu/microcode/amd_shas.c | 444 +++++++++++ arch/x86/kernel/cpu/microcode/core.c | 685 +++++++++++------- arch/x86/kernel/cpu/microcode/intel.c | 670 +++++------------ arch/x86/kernel/cpu/microcode/internal.h | 49 - arch/x86/kernel/head32.c | 3 arch/x86/kernel/head_32.S | 10 arch/x86/kernel/nmi.c | 9 arch/x86/kernel/smpboot.c | 12 drivers/firmware/cirrus/cs_dsp.c | 24 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/i2c/busses/i2c-ls2x.c | 16 drivers/i2c/busses/i2c-npcm7xx.c | 7 drivers/idle/intel_idle.c | 4 drivers/infiniband/core/sysfs.c | 4 drivers/infiniband/core/uverbs_std_types_device.c | 3 drivers/infiniband/core/verbs.c | 3 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/qp.c | 10 drivers/infiniband/hw/mlx5/qp.h | 1 drivers/net/ethernet/cadence/macb.h | 2 drivers/net/ethernet/cadence/macb_main.c | 12 drivers/net/ethernet/freescale/enetc/enetc.c | 100 +- drivers/net/ethernet/google/gve/gve.h | 10 drivers/net/ethernet/google/gve/gve_main.c | 6 drivers/net/ethernet/intel/ice/ice.h | 1 drivers/net/ethernet/intel/ice/ice_common.c | 71 + drivers/net/ethernet/intel/ice/ice_devids.h | 10 drivers/net/ethernet/intel/ice/ice_ethtool_fdir.c | 24 drivers/net/ethernet/intel/ice/ice_hw_autogen.h | 55 + drivers/net/ethernet/intel/ice/ice_lib.c | 3 drivers/net/ethernet/intel/ice/ice_main.c | 37 drivers/net/ethernet/intel/ice/ice_sriov.c | 4 drivers/net/ethernet/intel/ice/ice_type.h | 3 drivers/net/ethernet/intel/ice/ice_vf_lib.c | 34 drivers/net/ethernet/intel/ice/ice_vf_lib_private.h | 1 drivers/net/ethernet/intel/ice/ice_vf_mbx.c | 32 drivers/net/ethernet/intel/ice/ice_vf_mbx.h | 9 drivers/net/ethernet/intel/ice/ice_virtchnl.c | 8 drivers/net/ethernet/intel/ice/ice_virtchnl_fdir.c | 29 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c | 2 drivers/net/ethernet/mellanox/mlx5/core/pci_irq.c | 2 drivers/net/ethernet/ti/icssg/icss_iep.c | 35 drivers/net/ipvlan/ipvlan_core.c | 24 drivers/net/loopback.c | 14 drivers/net/usb/gl620a.c | 4 drivers/phy/rockchip/phy-rockchip-naneng-combphy.c | 5 drivers/phy/samsung/phy-exynos5-usbdrd.c | 12 drivers/phy/tegra/xusb-tegra186.c | 11 drivers/platform/x86/intel/ifs/load.c | 8 drivers/scsi/scsi_lib.c | 14 drivers/ufs/core/ufs_bsg.c | 6 drivers/ufs/core/ufshcd-priv.h | 5 drivers/ufs/core/ufshcd.c | 122 ++- fs/afs/cell.c | 1 fs/afs/internal.h | 23 fs/afs/server.c | 1 fs/afs/server_list.c | 114 ++ fs/afs/vl_alias.c | 2 fs/afs/volume.c | 36 fs/overlayfs/copy_up.c | 2 include/asm-generic/vmlinux.lds.h | 2 include/linux/rcuref.h | 9 include/linux/sunrpc/sched.h | 17 include/net/dst.h | 9 include/net/ip.h | 5 include/net/route.h | 5 include/rdma/ib_verbs.h | 2 include/trace/events/icmp.h | 67 + include/trace/events/sunrpc.h | 3 include/uapi/rdma/ib_user_ioctl_verbs.h | 3 include/ufs/ufs.h | 13 include/ufs/ufshcd.h | 4 io_uring/net.c | 4 kernel/events/core.c | 31 kernel/events/uprobes.c | 5 kernel/sched/core.c | 2 kernel/trace/ftrace.c | 27 kernel/trace/trace_events_hist.c | 30 lib/rcuref.c | 5 net/bluetooth/l2cap_core.c | 9 net/bridge/br_netfilter_hooks.c | 8 net/core/gro.c | 1 net/core/skbuff.c | 2 net/core/sysctl_net_core.c | 3 net/ipv4/icmp.c | 24 net/ipv4/ip_options.c | 3 net/ipv4/tcp_minisocks.c | 10 net/ipv6/ip6_tunnel.c | 4 net/ipv6/rpl_iptunnel.c | 58 - net/ipv6/seg6_iptunnel.c | 97 +- net/mptcp/pm_netlink.c | 5 net/mptcp/subflow.c | 15 net/rxrpc/rxperf.c | 12 net/sunrpc/cache.c | 10 net/sunrpc/sched.c | 2 net/sunrpc/xprtsock.c | 10 sound/pci/hda/patch_realtek.c | 32 sound/soc/codecs/es8328.c | 15 sound/usb/midi.c | 2 sound/usb/quirks.c | 1 tools/testing/selftests/rseq/rseq-riscv-bits.h | 6 tools/testing/selftests/rseq/rseq-riscv.h | 2 tools/tracing/rtla/src/timerlat_hist.c | 2 tools/tracing/rtla/src/timerlat_top.c | 2 132 files changed, 2867 insertions(+), 1524 deletions(-)
Adrien Vergé (1):
ALSA: hda/realtek: Fix microphone regression on ASUS N705UD
Andreas Schwab (1):
riscv/futex: sign extend compare value in atomic cmpxchg
Andrew Jones (3):
riscv: KVM: Fix hart suspend status check
riscv: KVM: Fix SBI IPI error generation
riscv: KVM: Fix SBI TIME error generation
Ard Biesheuvel (1):
vmlinux.lds: Ensure that const vars with relocations are mapped R/O
Arnd Bergmann (1):
sunrpc: suppress warnings for unused procfs functions
Arthur Simchaev (1):
scsi: ufs: core: bsg: Fix crash when arpmb command fails
Ashok Raj (1):
x86/microcode/intel: Rip out mixed stepping support for Intel CPUs
Avri Altman (2):
scsi: ufs: core: Introduce ufshcd_has_pending_tasks()
scsi: ufs: core: Prepare to introduce a new clock_gating lock
BH Hsieh (1):
phy: tegra: xusb: reset VBUS & ID OVERRIDE
Bart Van Assche (2):
scsi: ufs: core: Fix ufshcd_is_ufs_dev_busy() and ufshcd_eh_timed_out()
scsi: ufs: core: Start the RTC update work later
Bean Huo (2):
scsi: ufs: core: Add ufshcd_is_ufs_dev_busy()
scsi: ufs: core: Add UFS RTC support
Benjamin Coddington (1):
SUNRPC: Handle -ETIMEDOUT return from tlshd
Binbin Zhou (1):
i2c: ls2x: Fix frequency division register access
Borislav Petkov (1):
x86/microcode/AMD: Use the family,model,stepping encoded in the patch ID
Borislav Petkov (AMD) (11):
x86/microcode: Rework early revisions reporting x86/microcode/intel: Set new revision only after a successful update x86/microcode/AMD: Pay attention to the stepping dynamically x86/microcode/AMD: Split load_microcode_amd() x86/microcode/AMD: Flush patch buffer mapping after application x86/microcode/AMD: Have __apply_microcode_amd() return bool 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 x86/microcode/AMD: Fix a -Wsometimes-uninitialized clang false positive
Breno Leitao (1):
perf/core: Add RCU read lock protection to perf_iterate_ctx()
Chang S. Bae (1):
x86/microcode/intel: Remove unnecessary cache writeback and invalidation
Chukun Pan (1):
phy: rockchip: naneng-combphy: compatible reset with old DT
David Howells (3):
rxrpc: rxperf: Fix missing decoding of terminal magic cookie
afs: Make it possible to find the volumes that are using a server
afs: Fix the server_list to unuse a displaced server rather than putting it
Diogo Ivo (1):
net: ti: icss-iep: Remove spinlock-based synchronization
Dmitry Panchenko (1):
ALSA: usb-audio: Re-add sample rate quirk for Pioneer DJM-900NXS2
Eric Dumazet (1):
ipvlan: ensure network headers are in skb linear part
Greg Kroah-Hartman (1):
Linux 6.6.81
Guillaume Nault (3):
ipv4: Convert icmp_route_lookup() to dscp_t.
ipv4: Convert ip_route_input() to dscp_t.
ipvlan: Prepare ipvlan_process_v4_outbound() to future .flowi4_tos conversion.
Harshal Chaudhari (1):
net: mvpp2: cls: Fixed Non IP flow, with vlan tag flow defination.
Ido Schimmel (4):
net: loopback: Avoid sending IP packets without an Ethernet header
ipv4: icmp: Pass full DS field to ip_route_input()
ipv4: icmp: Unmask upper DSCP bits in icmp_route_lookup()
ipvlan: Unmask upper DSCP bits in ipvlan_process_v4_outbound()
Jiri Slaby (SUSE) (1):
net: set the minimum for net_hotdata.netdev_budget_usecs
Joshua Washington (1):
gve: set xdp redirect target only when it is available
Justin Iurman (5):
include: net: add static inline dst_dev_overhead() to dst.h
net: ipv6: seg6_iptunnel: mitigate 2-realloc issue
net: ipv6: fix dst ref loop on input in seg6 lwt
net: ipv6: rpl_iptunnel: mitigate 2-realloc issue
net: ipv6: fix dst ref loop on input in rpl lwt
Kan Liang (2):
perf/x86: Fix low freqency setting issue perf/core: Fix low freq setting via IOC_PERIOD
Kaustabh Chakraborty (1):
phy: exynos5-usbdrd: fix MPLL_MULTIPLIER and SSC_REFCLKSEL masks in refclk
Konstantin Taranov (1):
RDMA/mana_ib: Allocate PAGE aligned doorbell index
Luiz Augusto von Dentz (1):
Bluetooth: L2CAP: Fix L2CAP_ECRED_CONN_RSP response
Lukasz Czechowski (1):
arm64: dts: rockchip: Disable DMA for uart5 on px30-ringneck
Luo Gengkun (1):
perf/core: Order the PMU list to fix warning about unordered pmu_ctx_list
Manivannan Sadhasivam (1):
scsi: ufs: core: Cancel RTC work during ufshcd_remove()
Marcin Szycik (1):
ice: Fix deinitializing VF in error path
Mark Zhang (1):
IB/mlx5: Set and get correct qp_num for a DCT QP
Matthieu Baerts (NGI0) (1):
mptcp: reset when MPTCP opts are dropped after join
Meghana Malladi (1):
net: ti: icss-iep: Reject perout generation request
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 (2):
x86/microcode/AMD: Return bool from find_blobs_in_containers() x86/microcode/AMD: Make __verify_patch_size() return bool
Nikolay Kuratov (1):
ftrace: Avoid potential division by zero in function_stat_show()
Or Har-Toov (1):
IB/core: Add support for XDR link speed
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
Paul Greenwalt (2):
ice: Add E830 device IDs, MAC type and registers
ice: add E830 HW VF mailbox message limit support
Pavel Begunkov (1):
io_uring/net: save msg_control for compat
Peilin He (1):
net/ipv4: add tracepoint for icmp_send
Peter Wang (2):
scsi: ufs: core: Fix deadlock during RTC update
scsi: ufs: core: Fix another deadlock during RTC update
Philo Lu (1):
ipvs: Always clear ipvs_property flag in skb_scrub_packet()
Richard Fitzgerald (1):
firmware: cs_dsp: Remove async regmap writes
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
Sean Anderson (1):
net: cadence: macb: Synchronize stats calculations
Shay Drory (1):
net/mlx5: IRQ, Fix null string in debug print
Stafford Horne (1):
rseq/selftests: Fix riscv rseq_offset_deref_addv inline asm
Stefan Binding (1):
ALSA: hda/realtek: Add quirks for ASUS ROG 2023 models
Stephen Brennan (1):
SUNRPC: convert RPC_TASK_* constants to enum
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
Thomas Gleixner (34):
rcuref: Plug slowpath race in rcuref_put()
sched/core: Prevent rescheduling when interrupts are disabled
intel_idle: Handle older CPUs, which stop the TSC in deeper C states, correctly x86/microcode/32: Move early loading after paging enable x86/microcode/intel: Simplify scan_microcode() x86/microcode/intel: Simplify and rename generic_load_microcode() x86/microcode/intel: Cleanup code further
x86/microcode/intel: Simplify early loading
x86/microcode/intel: Save the microcode only after a successful late-load x86/microcode/intel: Switch to kvmalloc()
x86/microcode/intel: Unify microcode apply() functions x86/microcode/intel: Rework intel_cpu_collect_info() x86/microcode/intel: Reuse intel_cpu_collect_info() x86/microcode/intel: Rework intel_find_matching_signature() x86/microcode: Remove pointless apply() invocation x86/microcode/amd: Use correct per CPU ucode_cpu_info x86/microcode/amd: Cache builtin microcode too
x86/microcode/amd: Cache builtin/initrd microcode early x86/microcode/amd: Use cached microcode for AP load x86/microcode: Mop up early loading leftovers
x86/microcode: Get rid of the schedule work indirection x86/microcode: Clean up mc_cpu_down_prep()
x86/microcode: Handle "nosmt" correctly
x86/microcode: Clarify the late load logic
x86/microcode: Sanitize __wait_for_cpus()
x86/microcode: Add per CPU result state
x86/microcode: Add per CPU control field
x86/microcode: Provide new control functions
x86/microcode: Replace the all-in-one rendevous handler x86/microcode: Rendezvous and load in NMI
x86/microcode: Protect against instrumentation
x86/apic: Provide apic_force_nmi_on_cpu()
x86/microcode: Handle "offline" CPUs correctly
x86/microcode: Prepare for minimal revision check
Tom Chung (1):
drm/amd/display: Disable PSR-SU on eDP panels
Tomas Glozar (4):
Revert "rtla/timerlat_top: Set OSNOISE_WORKLOAD for kernel threads" Revert "rtla/timerlat_hist: Set OSNOISE_WORKLOAD for kernel threads" rtla/timerlat_hist: Set OSNOISE_WORKLOAD for kernel threads rtla/timerlat_top: Set OSNOISE_WORKLOAD for kernel threads
Tong Tiangen (1):
uprobes: Reject the shared zeropage in uprobe_write_opcode()
Trond Myklebust (1):
SUNRPC: Prevent looping due to rpc_signal_task() races
Tyrone Ting (1):
i2c: npcm: disable interrupt enable bit before devm_request_irq
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 (5):
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: update UDP checksum when updating originTimestamp field
net: enetc: correct the xdp_tx statistics
net: enetc: fix the off-by-one issue in enetc_map_tx_tso_buffs()
Ye Bin (1):
scsi: core: Clear driver private data when retrying request
Yong-Xuan Wang (2):
RISCV: KVM: Introduce mp_state_lock to avoid lock inversion
riscv: signal: fix signal frame size
chr[] (1):
amdgpu/pm/legacy: fix suspend/resume issues
Greg Kroah-Hartman
maintainerDocumentation/admin-guide/kernel-parameters.txt +5 -0
@@ -3287,6 +3287,11 @@ mga= [HW,DRM] + microcode.force_minrev= [X86] + Format: <bool> + Enable or disable the microcode minimal revision + enforcement for the runtime microcode loader. + min_addr=nn[KMG] [KNL,BOOT,IA-64] All physical memory below this physical address is ignored.
Makefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 6 PATCHLEVEL = 6 -SUBLEVEL = 80 +SUBLEVEL = 81 EXTRAVERSION = NAME = Pinguïn Aangedreven
arch/arm64/boot/dts/rockchip/px30-ringneck.dtsi +5 -0
@@ -367,6 +367,11 @@ &u2phy_host { status = "okay"; }; +&uart5 { + /delete-property/ dmas; + /delete-property/ dma-names; +}; + /* Mule UCAN */ &usb_host0_ehci { status = "okay";
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/include/asm/kvm_host.h +6 -2
@@ -236,8 +236,9 @@ struct kvm_vcpu_arch {/* Cache pages needed to program page tables with spinlock held */ struct kvm_mmu_memory_cache mmu_page_cache; -/* VCPU power-off state */ -bool power_off; +/* VCPU power state */ +struct kvm_mp_state mp_state; +spinlock_t mp_state_lock;/* Don't run the VCPU (blocked) */ bool pause;
@@ -351,7 +352,10 @@ int kvm_riscv_vcpu_unset_interrupt(struct kvm_vcpu *vcpu, unsigned int irq);void kvm_riscv_vcpu_flush_interrupts (struct kvm_vcpu *vcpu);void kvm_riscv_vcpu_sync_interrupts (struct kvm_vcpu *vcpu);bool kvm_riscv_vcpu_has_interrupts (struct kvm_vcpu *vcpu,u64 mask); +void __kvm_riscv_vcpu_power_off (struct kvm_vcpu *vcpu);void kvm_riscv_vcpu_power_off (struct kvm_vcpu *vcpu); +void __kvm_riscv_vcpu_power_on (struct kvm_vcpu *vcpu);void kvm_riscv_vcpu_power_on (struct kvm_vcpu *vcpu); +bool kvm_riscv_vcpu_stopped (struct kvm_vcpu *vcpu);#endif /* __RISCV_KVM_HOST_H__ */
arch/riscv/kernel/signal.c +0 -6
@@ -211,12 +211,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.c +35 -13
102 lines not on this page · raw message
arch/riscv/kvm/vcpu_sbi.c +5 -2
@@ -102,8 +102,11 @@ void kvm_riscv_vcpu_sbi_system_reset(struct kvm_vcpu *vcpu,unsigned long i;struct kvm_vcpu *tmp; -kvm_for_each_vcpu (i, tmp, vcpu->kvm) - tmp->arch.power_off = true; +kvm_for_each_vcpu (i, tmp, vcpu->kvm) { +spin_lock (&vcpu->arch.mp_state_lock); +WRITE_ONCE (tmp->arch.mp_state.mp_state,KVM_MP_STATE_STOPPED ); +spin_unlock (&vcpu->arch.mp_state_lock); + }kvm_make_all_cpus_request (vcpu->kvm,KVM_REQ_SLEEP );memset (&run->system_event,0 ,sizeof (run->system_event));
arch/riscv/kvm/vcpu_sbi_hsm.c +30 -15
87 lines not on this page · raw message
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 +24 -2
@@ -1313,17 +1313,39 @@ 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_LATE_LOADING bool "Late microcode loading (DANGEROUS)" default n - depends on MICROCODE + depends on MICROCODE && SMP help Loading microcode late, when the system is up and executing instructions is a tricky business and should be avoided if possible. Just the sequence of synchronizing all cores and SMT threads is one fragile dance which does not guarantee that cores might not softlock after the loading. Therefore, - use this at your own risk. Late loading taints the kernel too. + use this at your own risk. Late loading taints the kernel unless the + microcode header indicates that it is safe for late loading via the + minimal revision check. This minimal revision check can be enforced on + the kernel command line with "microcode.minrev=Y". + +config MICROCODE_LATE_FORCE_MINREV + bool "Enforce late microcode loading minimal revision check" + default n + depends on MICROCODE_LATE_LOADING + help + To prevent that users load microcode late which modifies already + in use features, newer microcode patches have a minimum revision field + in the microcode header, which tells the kernel which minimum + revision must be active in the CPU to safely load that new microcode + late into the running system. If disabled the check will not + be enforced but the kernel will be tainted when the minimal + revision check fails. + + This minimal revision check can also be controlled via the + "microcode.minrev" parameter on the kernel command line. + + If unsure say Y. config X86_MSR tristate "/dev/cpu/*/msr - Model-specific register support"
arch/x86/events/core.c +1 -1
@@ -623,7 +623,7 @@ int x86_pmu_hw_config(struct perf_event *event)if (event->attr.type == event->pmu->type) event->hw.config |= event->attr.config &X86_RAW_EVENT_MASK ; -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/include/asm/apic.h +4 -1
@@ -277,7 +277,8 @@ struct apic { u32 disable_esr : 1, dest_mode_logical : 1, - x2apic_set_max_apicid : 1; + x2apic_set_max_apicid : 1, + nmi_to_offline_cpu : 1;u32 (*calc_dest_apicid)(unsigned int cpu);
@@ -543,6 +544,8 @@ extern bool default_check_apicid_used(physid_mask_t *map, int apicid);extern void default_ioapic_phys_id_map (physid_mask_t *phys_map,physid_mask_t *retmap);extern int default_cpu_present_to_apicid (int mps_cpu); +void apic_send_nmi_to_offline_cpu (unsigned int cpu); +#else /* CONFIG_X86_LOCAL_APIC */ static inline unsigned int read_apic_id (void ) {return 0 ; }
arch/x86/include/asm/cpu.h +3 -17
@@ -71,26 +71,12 @@ static inline void init_ia32_feat_ctl(struct cpuinfo_x86 *c) {} extern __noendbr void cet_disable(void); -struct ucode_cpu_info ; +struct cpu_signature ; -int intel_cpu_collect_info (struct ucode_cpu_info *uci); - -static inline bool intel_cpu_signatures_match (unsigned int s1,unsigned int p1, -unsigned int s2,unsigned int p2) -{ -if (s1 != s2) -return false; - -/* Processor flags are either both 0 ... */ -if (!p1 && !p2) -return true; - -/* ... or they intersect. */ -return p1 & p2; -} +void intel_collect_cpu_info (struct cpu_signature *sig);extern u64 x86_read_arch_cap_msr (void ); -int intel_find_matching_signature (void *mc,unsigned int csig,int cpf); +bool intel_find_matching_signature (void *mc,struct cpu_signature *sig);int intel_microcode_sanity_check (void *mc,bool print_err,int hdr_type);extern struct cpumask cpus_stop_mask;
arch/x86/include/asm/microcode.h +12 -4
@@ -68,11 +68,19 @@ static inline u32 intel_get_microcode_revision(void)return rev; } +#endif /* !CONFIG_CPU_SUP_INTEL */ -void show_ucode_info_early (void ); +bool microcode_nmi_handler (void ); +void microcode_offline_nmi_handler (void ); -#else /* CONFIG_CPU_SUP_INTEL */ -static inline void show_ucode_info_early (void ) { } -#endif /* !CONFIG_CPU_SUP_INTEL */ +#ifdef CONFIG_MICROCODE_LATE_LOADING +DECLARE_STATIC_KEY_FALSE (microcode_nmi_handler_enable); +static __always_inline bool microcode_nmi_handler_enabled(void) +{ +return static_branch_unlikely (µcode_nmi_handler_enable); +} +#else +static __always_inline bool microcode_nmi_handler_enabled(void) { return false; } +#endif #endif /* _ASM_X86_MICROCODE_H */
arch/x86/kernel/apic/apic_flat_64.c +2 -0
@@ -103,6 +103,7 @@ static struct apic apic_flat __ro_after_init = { .send_IPI_allbutself = default_send_IPI_allbutself, .send_IPI_all = default_send_IPI_all, .send_IPI_self = default_send_IPI_self, + .nmi_to_offline_cpu = true, .read = native_apic_mem_read, .write = native_apic_mem_write,
@@ -175,6 +176,7 @@ static struct apic apic_physflat __ro_after_init = { .send_IPI_allbutself = default_send_IPI_allbutself, .send_IPI_all = default_send_IPI_all, .send_IPI_self = default_send_IPI_self, + .nmi_to_offline_cpu = true, .read = native_apic_mem_read, .write = native_apic_mem_write,
arch/x86/kernel/apic/ipi.c +8 -0
@@ -97,6 +97,14 @@ void native_send_call_func_ipi(const struct cpumask *mask) __apic_send_IPI_mask(mask, CALL_FUNCTION_VECTOR); } +void apic_send_nmi_to_offline_cpu (unsigned int cpu) +{ +if (WARN_ON_ONCE (!apic->nmi_to_offline_cpu)) +return ; +if (WARN_ON_ONCE (!cpumask_test_cpu (cpu, &cpus_booted_once_mask))) +return ; + apic->send_IPI (cpu,NMI_VECTOR ); +}#endif /* CONFIG_SMP */ static inline int __prepare_ICR2 (unsigned int mask)
arch/x86/kernel/apic/x2apic_cluster.c +1 -0
@@ -251,6 +251,7 @@ static struct apic apic_x2apic_cluster __ro_after_init = { .send_IPI_allbutself = x2apic_send_IPI_allbutself, .send_IPI_all = x2apic_send_IPI_all, .send_IPI_self = x2apic_send_IPI_self, + .nmi_to_offline_cpu = true, .read = native_apic_msr_read, .write = native_apic_msr_write,
arch/x86/kernel/apic/x2apic_phys.c +1 -0
@@ -166,6 +166,7 @@ static struct apic apic_x2apic_phys __ro_after_init = { .send_IPI_allbutself = x2apic_send_IPI_allbutself, .send_IPI_all = x2apic_send_IPI_all, .send_IPI_self = x2apic_send_IPI_self, + .nmi_to_offline_cpu = true, .read = native_apic_msr_read, .write = native_apic_msr_write,
arch/x86/kernel/cpu/common.c +0 -12
@@ -2224,8 +2224,6 @@ static inline void setup_getcpu(int cpu) }#ifdef CONFIG_X86_64 -static inline void ucode_cpu_init (int cpu) { } -static inline void tss_setup_ist (struct tss_struct *tss) {/* Set up the per-CPU TSS IST stacks */
@@ -2236,16 +2234,8 @@ static inline void tss_setup_ist(struct tss_struct *tss)/* Only mapped when SEV-ES is active */ tss->x86_tss.ist[IST_INDEX_VC] = __this_cpu_ist_top_va(VC); } -#else /* CONFIG_X86_64 */ - -static inline void ucode_cpu_init (int cpu) -{ -show_ucode_info_early (); -} -static inline void tss_setup_ist (struct tss_struct *tss) { } -#endif /* !CONFIG_X86_64 */ static inline void tss_setup_io_bitmap (struct tss_struct *tss)
@@ -2301,8 +2291,6 @@ void cpu_init(void)struct task_struct *cur = current;int cpu =raw_smp_processor_id (); -ucode_cpu_init (cpu); -#ifdef CONFIG_NUMA if (this_cpu_read (numa_node) ==0 &&early_cpu_to_node (cpu) !=NUMA_NO_NODE )
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 +432 -204
1,033 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/core.c +433 -252
897 lines not on this page · raw message
arch/x86/kernel/cpu/microcode/intel.c +198 -472
108 lines not on this page · raw message
arch/x86/kernel/cpu/microcode/internal.h +23 -26
49 lines not on this page · raw message
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c +14 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/pm/legacy-dpm/kv_dpm.c +19 -6
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/pm/legacy-dpm/legacy_dpm.c +6 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c +20 -6
Lines of this file are not shown. View the raw message.
drivers/infiniband/core/uverbs_std_types_device.c +2 -1
Lines of this file are not shown. View the 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 +71 -29
100 lines not on this page · raw message
drivers/net/ethernet/google/gve/gve_main.c +5 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_common.c +47 -24
71 lines not on this page · raw message
drivers/net/ethernet/intel/ice/ice_devids.h +9 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_ethtool_fdir.c +16 -8
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_hw_autogen.h +42 -13
55 lines not on this page · raw message
drivers/net/ethernet/intel/ice/ice_lib.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_main.c +25 -12
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_sriov.c +1 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_type.h +2 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_vf_lib.c +31 -3
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/ice/ice_vf_mbx.c +32 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_vf_mbx.h +9 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_virtchnl.c +5 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_virtchnl_fdir.c +21 -8
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/pci_irq.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/ti/icssg/icss_iep.c +1 -34
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 +6 -6
Lines of this file are not shown. View the raw message.
drivers/ufs/core/ufshcd.c +111 -11
122 lines not on this page · raw message
fs/afs/server_list.c +104 -10
114 lines not on this page · raw message
include/trace/events/icmp.h new file +67 -0
67 lines not on this page · raw message
include/uapi/rdma/ib_user_ioctl_verbs.h +2 -1
Lines of this file are not shown. View the raw message.
net/ipv6/rpl_iptunnel.c +36 -22
58 lines not on this page · raw message
net/ipv6/seg6_iptunnel.c +63 -34
97 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.