]> xenbits.xensource.com Git - people/dwmw2/xen.git/commitdiff
xen/arm: vGICv3: Restore the interrupt state correctly
authorAyan Kumar Halder <ayankuma@amd.com>
Thu, 27 Oct 2022 19:09:13 +0000 (20:09 +0100)
committerJulien Grall <julien@xen.org>
Tue, 15 Nov 2022 23:01:44 +0000 (23:01 +0000)
As "spin_lock_irqsave(&v->arch.vgic.lock, flags)" saves the current interrupt
state in "flags", "spin_unlock_irqrestore(&v->arch.vgic.lock, flags)" should be
used to restore the saved interrupt state.

Fixes: fe7fa1332dabd9ce4 ("ARM: vGICv3: handle virtual LPI pending and property tables")
Signed-off-by: Ayan Kumar Halder <ayankuma@amd.com>
Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com>
Reviewed-by: Andre Przywara <andre.przywara@arm.com>
Acked-by: Julien Grall <jgrall@amazon.com>
Release-acked-by: Henry Wang <Henry.Wang@arm.com>
xen/arch/arm/vgic-v3.c

index c19691ece0e030bec943e0522fd0263bc5808a4c..84dc442fc65b8a86136fe23e5ac67339065d78bb 100644 (file)
@@ -582,7 +582,7 @@ static int __vgic_v3_rdistr_rd_mmio_write(struct vcpu *v, mmio_info_t *info,
             write_atomic(&v->arch.vgic.rdist_pendbase, reg);
         }
 
-        spin_unlock_irqrestore(&v->arch.vgic.lock, false);
+        spin_unlock_irqrestore(&v->arch.vgic.lock, flags);
 
         return 1;
     }