On 10/9/20 12:42 PM, ira.we...@intel.com wrote:
> @@ -341,6 +341,9 @@ noinstr void irqentry_enter(struct pt_regs *regs, 
> irqentry_state_t *state)
>       /* Use the combo lockdep/tracing function */
>       trace_hardirqs_off();
>       instrumentation_end();
> +
> +done:
> +     irq_save_pkrs(state);
>  }

One nit: This saves *and* sets PKRS.  It's not obvious from the call
here that PKRS is altered at this site.  Seems like there could be a
better name.

Even if we did:

        irq_save_set_pkrs(state, INIT_VAL);

It would probably compile down to the same thing, but be *really*
obvious what's going on.

>  void irqentry_exit_cond_resched(void)
> @@ -362,7 +365,12 @@ noinstr void irqentry_exit(struct pt_regs *regs, 
> irqentry_state_t *state)
>       /* Check whether this returns to user mode */
>       if (user_mode(regs)) {
>               irqentry_exit_to_user_mode(regs);
> -     } else if (!regs_irqs_disabled(regs)) {
> +             return;
> +     }
> +
> +     irq_restore_pkrs(state);
> +
> +     if (!regs_irqs_disabled(regs)) {
>               /*
>                * If RCU was not watching on entry this needs to be done
>                * carefully and needs the same ordering of lockdep/tracing
> 

Reply via email to