Messages in this thread | | | Date | Thu, 17 Jun 2021 17:00:48 +0200 | From | Peter Zijlstra <> | Subject | Re: [PATCH v6 1/2] x86/sev: Make sure IRQs are disabled while GHCB is active |
| |
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?
| |