On Fri, Oct 16, 2020 at 01:07:47PM +0200, Peter Zijlstra wrote:
On Fri, Oct 09, 2020 at 12:42:54PM -0700, ira.weiny@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