[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