On Fri, Oct 16, 2020 at 01:07:47PM +0200, Peter Zijlstra wrote: > On Fri, Oct 09, 2020 at 12:42:54PM -0700, ira.we...@intel.com wrote: > > +static inline void pks_update_protection(int pkey, unsigned long > > protection) > > +{ > > + current->thread.saved_pkrs = update_pkey_val(current->thread.saved_pkrs, > > + pkey, protection); > > + preempt_disable(); > > + write_pkrs(current->thread.saved_pkrs); > > + preempt_enable(); > > +} > > write_pkrs() already disables preemption itself. Wrapping it in yet > another layer is useless.
I was thinking the update to saved_pkrs needed this protection as well and that was to be included in the preemption disable. But that too is incorrect. I've removed this preemption disable. Thanks, Ira