[PATCH 1/2] KVM: arm64: nv: Allocate the shadow S2 MMUs individually

Marc Zyngier maz at kernel.org
Mon Aug 10 00:58:12 PDT 2026


On Sun, 09 Aug 2026 19:11:54 +0100,
Karl Mehltretter <kmehltretter at gmail.com> wrote:
> 
> On Sun, Aug 09, 2026 at 12:39:10PM +0100, Marc Zyngier wrote:
> > My current patch is as follows, and so far, I haven't seen much that I
> > like better.
> > 
> 
> Hi Marc,
> 
> Thanks for your revised patch.
> I think one correctness issue is in there. 
> 
> > +		for (i = 0; !ret && i < S2_MMU_PER_VCPU; i++)
> > +			ret = init_nested_s2_mmu(kvm, &tmp[i]);
> 
> > +		if (ret) {
> > +			while (--i >= 0)
> > +				kvm_free_stage2_pgd(&tmp[i]);
> 
> The increment expression of the for loop still runs after an error.

Yup. Should be fixed with

diff --git a/arch/arm64/kvm/nested.c b/arch/arm64/kvm/nested.c
index 5b69a0f382320..50d6dcc75582c 100644
--- a/arch/arm64/kvm/nested.c
+++ b/arch/arm64/kvm/nested.c
@@ -96,8 +96,11 @@ int kvm_vcpu_init_nested(struct kvm_vcpu *vcpu)
 		if (!tmp)
 			ret = -ENOMEM;
 
-		for (i = 0; !ret && i < S2_MMU_PER_VCPU; i++)
+		for (i = 0; !ret && i < S2_MMU_PER_VCPU; i++) {
 			ret = init_nested_s2_mmu(kvm, &tmp[i]);
+			if (ret)
+				break;
+		}
 
 		if (ret) {
 			while (--i >= 0)

	M.

-- 
Without deviation from the norm, progress is not possible.



More information about the linux-arm-kernel mailing list