All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	patches@lists.linux.dev, Mark Rutland <mark.rutland@arm.com>,
	Mark Brown <broonie@kernel.org>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Fuad Tabba <tabba@google.com>, Marc Zyngier <maz@kernel.org>,
	Oliver Upton <oliver.upton@linux.dev>,
	Will Deacon <will@kernel.org>
Subject: [PATCH 6.13 117/119] KVM: arm64: Eagerly switch ZCR_EL{1,2}
Date: Tue, 25 Mar 2025 08:22:55 -0400	[thread overview]
Message-ID: <20250325122152.045350443@linuxfoundation.org> (raw)
In-Reply-To: <20250325122149.058346343@linuxfoundation.org>

6.13-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Mark Rutland <mark.rutland@arm.com>

[ Upstream commit 59419f10045bc955d2229819c7cf7a8b0b9c5b59 ]

In non-protected KVM modes, while the guest FPSIMD/SVE/SME state is live on the
CPU, the host's active SVE VL may differ from the guest's maximum SVE VL:

* For VHE hosts, when a VM uses NV, ZCR_EL2 contains a value constrained
  by the guest hypervisor, which may be less than or equal to that
  guest's maximum VL.

  Note: in this case the value of ZCR_EL1 is immaterial due to E2H.

* For nVHE/hVHE hosts, ZCR_EL1 contains a value written by the guest,
  which may be less than or greater than the guest's maximum VL.

  Note: in this case hyp code traps host SVE usage and lazily restores
  ZCR_EL2 to the host's maximum VL, which may be greater than the
  guest's maximum VL.

This can be the case between exiting a guest and kvm_arch_vcpu_put_fp().
If a softirq is taken during this period and the softirq handler tries
to use kernel-mode NEON, then the kernel will fail to save the guest's
FPSIMD/SVE state, and will pend a SIGKILL for the current thread.

This happens because kvm_arch_vcpu_ctxsync_fp() binds the guest's live
FPSIMD/SVE state with the guest's maximum SVE VL, and
fpsimd_save_user_state() verifies that the live SVE VL is as expected
before attempting to save the register state:

| if (WARN_ON(sve_get_vl() != vl)) {
|         force_signal_inject(SIGKILL, SI_KERNEL, 0, 0);
|         return;
| }

Fix this and make this a bit easier to reason about by always eagerly
switching ZCR_EL{1,2} at hyp during guest<->host transitions. With this
happening, there's no need to trap host SVE usage, and the nVHE/nVHE
__deactivate_cptr_traps() logic can be simplified to enable host access
to all present FPSIMD/SVE/SME features.

In protected nVHE/hVHE modes, the host's state is always saved/restored
by hyp, and the guest's state is saved prior to exit to the host, so
from the host's PoV the guest never has live FPSIMD/SVE/SME state, and
the host's ZCR_EL1 is never clobbered by hyp.

Fixes: 8c8010d69c132273 ("KVM: arm64: Save/restore SVE state for nVHE")
Fixes: 2e3cf82063a00ea0 ("KVM: arm64: nv: Ensure correct VL is loaded before saving SVE state")
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Mark Brown <broonie@kernel.org>
Tested-by: Mark Brown <broonie@kernel.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Fuad Tabba <tabba@google.com>
Cc: Marc Zyngier <maz@kernel.org>
Cc: Oliver Upton <oliver.upton@linux.dev>
Cc: Will Deacon <will@kernel.org>
Reviewed-by: Oliver Upton <oliver.upton@linux.dev>
Link: https://lore.kernel.org/r/20250210195226.1215254-9-mark.rutland@arm.com
Signed-off-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 arch/arm64/kvm/fpsimd.c                 |   30 ----------------
 arch/arm64/kvm/hyp/entry.S              |    5 ++
 arch/arm64/kvm/hyp/include/hyp/switch.h |   59 ++++++++++++++++++++++++++++++++
 arch/arm64/kvm/hyp/nvhe/hyp-main.c      |    9 +---
 arch/arm64/kvm/hyp/nvhe/switch.c        |   33 +++++++++++++++--
 arch/arm64/kvm/hyp/vhe/switch.c         |    4 ++
 6 files changed, 100 insertions(+), 40 deletions(-)

--- a/arch/arm64/kvm/fpsimd.c
+++ b/arch/arm64/kvm/fpsimd.c
@@ -136,36 +136,6 @@ void kvm_arch_vcpu_put_fp(struct kvm_vcp
 	local_irq_save(flags);
 
 	if (guest_owns_fp_regs()) {
-		if (vcpu_has_sve(vcpu)) {
-			u64 zcr = read_sysreg_el1(SYS_ZCR);
-
-			/*
-			 * If the vCPU is in the hyp context then ZCR_EL1 is
-			 * loaded with its vEL2 counterpart.
-			 */
-			__vcpu_sys_reg(vcpu, vcpu_sve_zcr_elx(vcpu)) = zcr;
-
-			/*
-			 * Restore the VL that was saved when bound to the CPU,
-			 * which is the maximum VL for the guest. Because the
-			 * layout of the data when saving the sve state depends
-			 * on the VL, we need to use a consistent (i.e., the
-			 * maximum) VL.
-			 * Note that this means that at guest exit ZCR_EL1 is
-			 * not necessarily the same as on guest entry.
-			 *
-			 * ZCR_EL2 holds the guest hypervisor's VL when running
-			 * a nested guest, which could be smaller than the
-			 * max for the vCPU. Similar to above, we first need to
-			 * switch to a VL consistent with the layout of the
-			 * vCPU's SVE state. KVM support for NV implies VHE, so
-			 * using the ZCR_EL1 alias is safe.
-			 */
-			if (!has_vhe() || (vcpu_has_nv(vcpu) && !is_hyp_ctxt(vcpu)))
-				sve_cond_update_zcr_vq(vcpu_sve_max_vq(vcpu) - 1,
-						       SYS_ZCR_EL1);
-		}
-
 		/*
 		 * Flush (save and invalidate) the fpsimd/sve state so that if
 		 * the host tries to use fpsimd/sve, it's not using stale data
--- a/arch/arm64/kvm/hyp/entry.S
+++ b/arch/arm64/kvm/hyp/entry.S
@@ -44,6 +44,11 @@ alternative_if ARM64_HAS_RAS_EXTN
 alternative_else_nop_endif
 	mrs	x1, isr_el1
 	cbz	x1,  1f
+
+	// Ensure that __guest_enter() always provides a context
+	// synchronization event so that callers don't need ISBs for anything
+	// that would usually be synchonized by the ERET.
+	isb
 	mov	x0, #ARM_EXCEPTION_IRQ
 	ret
 
--- a/arch/arm64/kvm/hyp/include/hyp/switch.h
+++ b/arch/arm64/kvm/hyp/include/hyp/switch.h
@@ -375,6 +375,65 @@ static inline void __hyp_sve_save_host(v
 			 true);
 }
 
+static inline void fpsimd_lazy_switch_to_guest(struct kvm_vcpu *vcpu)
+{
+	u64 zcr_el1, zcr_el2;
+
+	if (!guest_owns_fp_regs())
+		return;
+
+	if (vcpu_has_sve(vcpu)) {
+		/* A guest hypervisor may restrict the effective max VL. */
+		if (vcpu_has_nv(vcpu) && !is_hyp_ctxt(vcpu))
+			zcr_el2 = __vcpu_sys_reg(vcpu, ZCR_EL2);
+		else
+			zcr_el2 = vcpu_sve_max_vq(vcpu) - 1;
+
+		write_sysreg_el2(zcr_el2, SYS_ZCR);
+
+		zcr_el1 = __vcpu_sys_reg(vcpu, vcpu_sve_zcr_elx(vcpu));
+		write_sysreg_el1(zcr_el1, SYS_ZCR);
+	}
+}
+
+static inline void fpsimd_lazy_switch_to_host(struct kvm_vcpu *vcpu)
+{
+	u64 zcr_el1, zcr_el2;
+
+	if (!guest_owns_fp_regs())
+		return;
+
+	/*
+	 * When the guest owns the FP regs, we know that guest+hyp traps for
+	 * any FPSIMD/SVE/SME features exposed to the guest have been disabled
+	 * by either fpsimd_lazy_switch_to_guest() or kvm_hyp_handle_fpsimd()
+	 * prior to __guest_entry(). As __guest_entry() guarantees a context
+	 * synchronization event, we don't need an ISB here to avoid taking
+	 * traps for anything that was exposed to the guest.
+	 */
+	if (vcpu_has_sve(vcpu)) {
+		zcr_el1 = read_sysreg_el1(SYS_ZCR);
+		__vcpu_sys_reg(vcpu, vcpu_sve_zcr_elx(vcpu)) = zcr_el1;
+
+		/*
+		 * The guest's state is always saved using the guest's max VL.
+		 * Ensure that the host has the guest's max VL active such that
+		 * the host can save the guest's state lazily, but don't
+		 * artificially restrict the host to the guest's max VL.
+		 */
+		if (has_vhe()) {
+			zcr_el2 = vcpu_sve_max_vq(vcpu) - 1;
+			write_sysreg_el2(zcr_el2, SYS_ZCR);
+		} else {
+			zcr_el2 = sve_vq_from_vl(kvm_host_sve_max_vl) - 1;
+			write_sysreg_el2(zcr_el2, SYS_ZCR);
+
+			zcr_el1 = vcpu_sve_max_vq(vcpu) - 1;
+			write_sysreg_el1(zcr_el1, SYS_ZCR);
+		}
+	}
+}
+
 static void kvm_hyp_save_fpsimd_host(struct kvm_vcpu *vcpu)
 {
 	/*
--- a/arch/arm64/kvm/hyp/nvhe/hyp-main.c
+++ b/arch/arm64/kvm/hyp/nvhe/hyp-main.c
@@ -5,6 +5,7 @@
  */
 
 #include <hyp/adjust_pc.h>
+#include <hyp/switch.h>
 
 #include <asm/pgtable-types.h>
 #include <asm/kvm_asm.h>
@@ -179,7 +180,9 @@ static void handle___kvm_vcpu_run(struct
 		pkvm_put_hyp_vcpu(hyp_vcpu);
 	} else {
 		/* The host is fully trusted, run its vCPU directly. */
+		fpsimd_lazy_switch_to_guest(host_vcpu);
 		ret = __kvm_vcpu_run(host_vcpu);
+		fpsimd_lazy_switch_to_host(host_vcpu);
 	}
 
 out:
@@ -480,12 +483,6 @@ void handle_trap(struct kvm_cpu_context
 	case ESR_ELx_EC_SMC64:
 		handle_host_smc(host_ctxt);
 		break;
-	case ESR_ELx_EC_SVE:
-		cpacr_clear_set(0, CPACR_ELx_ZEN);
-		isb();
-		sve_cond_update_zcr_vq(sve_vq_from_vl(kvm_host_sve_max_vl) - 1,
-				       SYS_ZCR_EL2);
-		break;
 	case ESR_ELx_EC_IABT_LOW:
 	case ESR_ELx_EC_DABT_LOW:
 		handle_host_mem_abort(host_ctxt);
--- a/arch/arm64/kvm/hyp/nvhe/switch.c
+++ b/arch/arm64/kvm/hyp/nvhe/switch.c
@@ -40,6 +40,9 @@ static void __activate_cptr_traps(struct
 {
 	u64 val = CPTR_EL2_TAM;	/* Same bit irrespective of E2H */
 
+	if (!guest_owns_fp_regs())
+		__activate_traps_fpsimd32(vcpu);
+
 	if (has_hvhe()) {
 		val |= CPACR_ELx_TTA;
 
@@ -48,6 +51,8 @@ static void __activate_cptr_traps(struct
 			if (vcpu_has_sve(vcpu))
 				val |= CPACR_ELx_ZEN;
 		}
+
+		write_sysreg(val, cpacr_el1);
 	} else {
 		val |= CPTR_EL2_TTA | CPTR_NVHE_EL2_RES1;
 
@@ -62,12 +67,32 @@ static void __activate_cptr_traps(struct
 
 		if (!guest_owns_fp_regs())
 			val |= CPTR_EL2_TFP;
+
+		write_sysreg(val, cptr_el2);
 	}
+}
 
-	if (!guest_owns_fp_regs())
-		__activate_traps_fpsimd32(vcpu);
+static void __deactivate_cptr_traps(struct kvm_vcpu *vcpu)
+{
+	if (has_hvhe()) {
+		u64 val = CPACR_ELx_FPEN;
+
+		if (cpus_have_final_cap(ARM64_SVE))
+			val |= CPACR_ELx_ZEN;
+		if (cpus_have_final_cap(ARM64_SME))
+			val |= CPACR_ELx_SMEN;
+
+		write_sysreg(val, cpacr_el1);
+	} else {
+		u64 val = CPTR_NVHE_EL2_RES1;
+
+		if (!cpus_have_final_cap(ARM64_SVE))
+			val |= CPTR_EL2_TZ;
+		if (!cpus_have_final_cap(ARM64_SME))
+			val |= CPTR_EL2_TSM;
 
-	kvm_write_cptr_el2(val);
+		write_sysreg(val, cptr_el2);
+	}
 }
 
 static void __activate_traps(struct kvm_vcpu *vcpu)
@@ -120,7 +145,7 @@ static void __deactivate_traps(struct kv
 
 	write_sysreg(this_cpu_ptr(&kvm_init_params)->hcr_el2, hcr_el2);
 
-	kvm_reset_cptr_el2(vcpu);
+	__deactivate_cptr_traps(vcpu);
 	write_sysreg(__kvm_hyp_host_vector, vbar_el2);
 }
 
--- a/arch/arm64/kvm/hyp/vhe/switch.c
+++ b/arch/arm64/kvm/hyp/vhe/switch.c
@@ -462,6 +462,8 @@ static int __kvm_vcpu_run_vhe(struct kvm
 
 	sysreg_save_host_state_vhe(host_ctxt);
 
+	fpsimd_lazy_switch_to_guest(vcpu);
+
 	/*
 	 * Note that ARM erratum 1165522 requires us to configure both stage 1
 	 * and stage 2 translation for the guest context before we clear
@@ -486,6 +488,8 @@ static int __kvm_vcpu_run_vhe(struct kvm
 
 	__deactivate_traps(vcpu);
 
+	fpsimd_lazy_switch_to_host(vcpu);
+
 	sysreg_restore_host_state_vhe(host_ctxt);
 
 	if (guest_owns_fp_regs())



  parent reply	other threads:[~2025-03-25 12:34 UTC|newest]

Thread overview: 129+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-03-25 12:20 [PATCH 6.13 000/119] 6.13.9-rc1 review Greg Kroah-Hartman
2025-03-25 12:20 ` [PATCH 6.13 001/119] firmware: qcom: scm: Fix error code in probe() Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 002/119] firmware: imx-scu: fix OF node leak in .probe() Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 003/119] arm64: dts: freescale: tqma8mpql: Fix vqmmc-supply Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 004/119] arm64: dts: rockchip: remove supports-cqe from rk3588 jaguar Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 005/119] arm64: dts: rockchip: remove supports-cqe from rk3588 tiger Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 006/119] xfrm: fix tunnel mode TX datapath in packet offload mode Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 007/119] xfrm_output: Force software GSO only in tunnel mode Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 008/119] soc: imx8m: Unregister cpufreq and soc dev in cleanup path Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 009/119] Revert "arm64: dts: qcom: sdm845: Affirm IDR0.CCTW on apps_smmu" Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 010/119] ARM: dts: bcm2711: Fix xHCI power-domain Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 011/119] ARM: dts: bcm2711: PL011 UARTs are actually r1p5 Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 012/119] arm64: dts: bcm2712: " Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 013/119] arm64: dts: rockchip: Remove undocumented sdmmc property from lubancat-1 Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 014/119] RDMA/rxe: Fix the failure of ibv_query_device() and ibv_query_device_ex() tests Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 015/119] RDMA/bnxt_re: Add missing paranthesis in map_qp_id_to_tbl_indx Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 016/119] RDMA/mlx5: Handle errors returned from mlx5r_ib_rate() Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 017/119] ARM: OMAP1: select CONFIG_GENERIC_IRQ_CHIP Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 018/119] ARM: dts: bcm2711: Dont mark timer regs unconfigured Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 019/119] ARM: dts: BCM5301X: Fix switch port labels of ASUS RT-AC5300 Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 020/119] ARM: dts: BCM5301X: Fix switch port labels of ASUS RT-AC3200 Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 021/119] dma-mapping: fix missing clear bdr in check_ram_in_range_map() Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 022/119] RDMA/bnxt_re: Avoid clearing VLAN_ID mask in modify qp path Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 023/119] RDMA/hns: Fix soft lockup during bt pages loop Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 024/119] RDMA/hns: Fix unmatched condition in error path of alloc_user_qp_db() Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 025/119] RDMA/hns: Fix invalid sq params not being blocked Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 026/119] RDMA/hns: Fix a missing rollback in error path of hns_roce_create_qp_common() Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 027/119] RDMA/hns: Fix missing xa_destroy() Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 028/119] RDMA/hns: Fix wrong value of max_sge_rd Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 029/119] reset: mchp: sparx5: Fix for lan966x Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 030/119] Bluetooth: Fix error code in chan_alloc_skb_cb() Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 031/119] Bluetooth: hci_event: Fix connection regression between LE and non-LE adapters Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 032/119] accel/qaic: Fix possible data corruption in BOs > 2G Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 033/119] soc: hisilicon: kunpeng_hccs: Fix incorrect string assembly Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 034/119] ARM: davinci: da850: fix selecting ARCH_DAVINCI_DA8XX Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 035/119] tracing: tprobe-events: Fix to clean up tprobe correctly when module unload Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 036/119] ata: libata-core: Add ATA_QUIRK_NO_LPM_ON_ATI for certain Samsung SSDs Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 037/119] net: ethernet: ti: am65-cpsw: Fix NAPI registration sequence Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 038/119] net: ipv6: fix TCP GSO segmentation with NAT Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 039/119] ipv6: Fix memleak of nhc_pcpu_rth_output in fib_check_nh_v6_gw() Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 040/119] ipv6: Set errno after ip_fib_metrics_init() in ip6_route_info_create() Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 041/119] devlink: fix xa_alloc_cyclic() error handling Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 042/119] dpll: " Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 043/119] phy: " Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 044/119] gpu: host1x: Do not assume that a NULL domain means no DMA IOMMU Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 045/119] net: atm: fix use after free in lec_send() Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 046/119] net: ti: icssg-prueth: Add lock to stats Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 047/119] net: lwtunnel: fix recursion loops Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 048/119] net: ipv6: ioam6: fix lwtunnel_output() loop Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 049/119] libfs: Fix duplicate directory entry in offset_dir_lookup Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 050/119] net/neighbor: add missing policy for NDTPA_QUEUE_LENBYTES Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 051/119] Revert "gre: Fix IPv6 link-local address generation." Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 052/119] media: rtl2832_sdr: assign vb2 lock before vb2_queue_init Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 053/119] tracing: tprobe-events: Fix leakage of module refcount Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 054/119] i2c: omap: fix IRQ storms Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 055/119] net: mana: Support holes in device list reply msg Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 056/119] dt-bindings: can: renesas,rcar-canfd: Fix typo in pattern properties for R-Car V4M Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 057/119] can: rcar_canfd: Fix page entries in the AFL list Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 058/119] can: ucan: fix out of bound read in strscpy() source Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 059/119] can: flexcan: only change CAN state when link up in system PM Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 060/119] can: flexcan: disable transceiver during " Greg Kroah-Hartman
2025-03-25 12:21 ` [PATCH 6.13 061/119] drm/xe: Fix exporting xe buffers multiple times Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 062/119] drm/v3d: Dont run jobs that have errors flagged in its fence Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 063/119] io_uring/net: dont clear REQ_F_NEED_CLEANUP unconditionally Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 064/119] riscv: dts: starfive: Fix a typo in StarFive JH7110 pin function definitions Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 065/119] netfs: Call `invalidate_cache` only if implemented Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 066/119] regulator: dummy: force synchronous probing Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 067/119] regulator: check that dummy regulator has been probed before using it Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 068/119] accel/qaic: Fix integer overflow in qaic_validate_req() Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 069/119] arm64: dts: freescale: imx8mp-verdin-dahlia: add Microphone Jack to sound card Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 070/119] arm64: dts: freescale: imx8mm-verdin-dahlia: " Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 071/119] arm64: dts: rockchip: fix pinmux of UART0 for PX30 Ringneck on Haikou Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 072/119] arm64: dts: rockchip: fix pinmux of UART5 " Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 073/119] arm64: dts: rockchip: fix u2phy1_host status for NanoPi R4S Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 074/119] arm64: dts: rockchip: Add avdd HDMI supplies to RockPro64 board dtsi Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 075/119] arm64: dts: rockchip: Add missing PCIe " Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 076/119] mmc: sdhci-brcmstb: add cqhci suspend/resume to PM ops Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 077/119] mmc: atmel-mci: Add missing clk_disable_unprepare() Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 078/119] selftests/mm: run_vmtests.sh: fix half_ufd_size_MB calculation Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 079/119] mm: fix error handling in __filemap_get_folio() with FGP_NOWAIT Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 080/119] mm/migrate: fix shmem xarray update during migration Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 081/119] mm/page_alloc: fix memory accept before watermarks gets initialized Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 082/119] mm/huge_memory: drop beyond-EOF folios with the right number of refs Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 083/119] proc: fix UAF in proc_get_inode() Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 084/119] memcg: drain obj stock on cpu hotplug teardown Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 085/119] ARM: dts: imx6qdl-apalis: Fix poweroff on Apalis iMX6 Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 086/119] ARM: shmobile: smp: Enforce shmobile_smp_* alignment Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 087/119] firmware: qcom: uefisecapp: fix efivars registration race Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 088/119] efi/libstub: Avoid physical address 0x0 when doing random allocation Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 089/119] keys: Fix UAF in key_put() Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 090/119] xsk: fix an integer overflow in xp_create_and_assign_umem() Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 091/119] batman-adv: Ignore own maximum aggregation size during RX Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 092/119] soc: qcom: pdr: Fix the potential deadlock Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 093/119] pmdomain: amlogic: fix T7 ISP secpower Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 094/119] drm/radeon: fix uninitialized size issue in radeon_vce_cs_parse() Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 095/119] drm/sched: Fix fence reference count leak Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 096/119] drm/amdgpu/gfx12: correct cleanup of me field with gfx_v12_0_me_fini() Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 097/119] drm/amd/display: Fix message for support_edp0_on_dp1 Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 098/119] drm/amd/display: Use HW lock mgr for PSR1 when only one eDP Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 099/119] drm/amd/pm: add unique_id for gfx12 Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 100/119] drm/amdgpu: Restore uncached behaviour on GFX12 Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 101/119] drm/amdgpu/pm: Handle SCLK offset correctly in overdrive for smu 14.0.2 Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 102/119] drm/amdgpu/pm: wire up hwmon fan speed " Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 103/119] drm/amdgpu: Remove JPEG from vega and carrizo video caps Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 104/119] drm/amdgpu: Fix MPEG2, MPEG4 and VC1 video caps max size Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 105/119] drm/amdgpu: Fix JPEG video caps max size for navi1x and raven Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 106/119] drm/amdkfd: Fix user queue validation on Gfx7/8 Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 107/119] drm/amdkfd: Fix instruction hazard in gfx12 trap handler Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 108/119] ksmbd: fix incorrect validation for num_aces field of smb_acl Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 109/119] io_uring/net: fix sendzc double notif flush Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 110/119] KVM: arm64: Calculate cptr_el2 traps on activating traps Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 111/119] KVM: arm64: Unconditionally save+flush host FPSIMD/SVE/SME state Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 112/119] KVM: arm64: Remove host FPSIMD saving for non-protected KVM Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 113/119] KVM: arm64: Remove VHE host restore of CPACR_EL1.ZEN Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 114/119] KVM: arm64: Remove VHE host restore of CPACR_EL1.SMEN Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 115/119] KVM: arm64: Refactor exit handlers Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 116/119] KVM: arm64: Mark some header functions as inline Greg Kroah-Hartman
2025-03-25 12:22 ` Greg Kroah-Hartman [this message]
2025-03-25 12:22 ` [PATCH 6.13 118/119] Revert "sched/core: Reduce cost of sched_move_task when config autogroup" Greg Kroah-Hartman
2025-03-25 12:22 ` [PATCH 6.13 119/119] mptcp: Fix data stream corruption in the address announcement Greg Kroah-Hartman
2025-03-25 17:50 ` [PATCH 6.13 000/119] 6.13.9-rc1 review Florian Fainelli
2025-03-25 18:29 ` Miguel Ojeda
2025-03-25 18:31 ` Mark Brown
2025-03-26 11:35 ` Ron Economos
2025-03-26 12:56 ` Takeshi Ogasawara
2025-03-26 15:02 ` Naresh Kamboju
2025-03-26 15:28 ` Jon Hunter
2025-03-26 19:21 ` Christian Heusel
2025-03-26 23:04 ` Peter Schneider

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250325122152.045350443@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=broonie@kernel.org \
    --cc=catalin.marinas@arm.com \
    --cc=mark.rutland@arm.com \
    --cc=maz@kernel.org \
    --cc=oliver.upton@linux.dev \
    --cc=patches@lists.linux.dev \
    --cc=stable@vger.kernel.org \
    --cc=tabba@google.com \
    --cc=will@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.