Re: [PATCH v6 1/2] x86/sev: Make sure IRQs are disabled while GHCB is active
From: Peter Zijlstra <peterz@infradead.org>
Date: 2021-06-17 15:02:35
Also in:
kvm, linux-coco, lkml
From: Peter Zijlstra <peterz@infradead.org>
Date: 2021-06-17 15:02:35
Also in:
kvm, linux-coco, lkml
On Wed, Jun 16, 2021 at 08:49:12PM +0200, Joerg Roedel wrote:
static void sev_es_ap_hlt_loop(void) { struct ghcb_state state; + unsigned long flags; struct ghcb *ghcb; - ghcb = sev_es_get_ghcb(&state); + local_irq_save(flags); + + ghcb = __sev_get_ghcb(&state); while (true) { vc_ghcb_invalidate(ghcb);@@ -692,7 +704,9 @@ static void sev_es_ap_hlt_loop(void) break; } - sev_es_put_ghcb(&state); + __sev_put_ghcb(&state); + + local_irq_restore(flags); }
I think this is broken, at this point RCU is quite dead on this CPU and local_irq_save/restore include tracing and all sorts. Also, shouldn't IRQs already be disabled by the time we get here? _______________________________________________ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization