Messages in this thread | | | Date | Fri, 15 May 2020 16:04:39 +0200 | From | Frederic Weisbecker <> | Subject | Re: [patch V4 part 1 27/36] arm64: Prepare arch_nmi_enter() for recursion |
| |
On Wed, May 13, 2020 at 07:28:34PM -0400, Mathieu Desnoyers wrote: > ----- On May 5, 2020, at 9:16 AM, Thomas Gleixner tglx@linutronix.de wrote: > > > +#define arch_nmi_enter() \ > [...] \ > > + ___hcr = read_sysreg(hcr_el2); \ > > + if (!(___hcr & HCR_TGE)) { \ > > + write_sysreg(___hcr | HCR_TGE, hcr_el2); \ > > + isb(); \ > > Why is there an isb() above ^ .... > > > + } \ > > + /* \ > [...] > > -#define arch_nmi_exit() \ > [...] > > + /* \ > > + * Make sure ___ctx->cnt release is visible before we \ > > + * restore the sysreg. Otherwise a new NMI occurring \ > > + * right after write_sysreg() can be fooled and think \ > > + * we secured things for it. \ > > + */ \ > > + barrier(); \ > > + if (!___ctx->cnt && !(___hcr & HCR_TGE)) \ > > + write_sysreg(___hcr, hcr_el2); \ > > And not here ?
I have to defer to Will on this detail...
| |