Re: [PATCH v2 12/12] x86/traps: Fix up invalid PASID

From: Peter Zijlstra
Date: Mon Jun 15 2020 - 03:53:59 EST


On Fri, Jun 12, 2020 at 05:41:33PM -0700, Fenghua Yu wrote:
> @@ -447,6 +458,18 @@ dotraplinkage void do_general_protection(struct pt_regs *regs, long error_code)
> int ret;
>
> RCU_LOCKDEP_WARN(!rcu_is_watching(), "entry code didn't wake RCU");
> +
> + /*
> + * Perform the check for a user mode PASID exception before enable
> + * interrupts. Doing this here ensures that the PASID MSR can be simply
> + * accessed because the contents are known to be still associated
> + * with the current process.
> + */
> + if (user_mode(regs) && fixup_pasid_exception()) {
> + cond_local_irq_enable(regs);
> + return;

OK, so we're done with the exception, lets enable interrupts?

> + }