On Fri, Jul 17, 2020 at 11:17:18AM +0200, Peter Zijlstra wrote:
> On Fri, Jul 17, 2020 at 12:20:51AM -0700, ira.we...@intel.com wrote:
> > +void dev_access_disable(void)
> > +{
> > +   unsigned long flags;
> > +
> > +   if (!static_branch_unlikely(&dev_protection_static_key))
> > +           return;
> > +
> > +   local_irq_save(flags);
> > +   current->dev_page_access_ref--;
> > +   if (current->dev_page_access_ref == 0)
> 
>       if (!--current->dev_page_access_ref)

It's not my style but I'm ok with it.

> 
> > +           pks_update_protection(dev_page_pkey, PKEY_DISABLE_ACCESS);
> > +   local_irq_restore(flags);
> > +}
> > +EXPORT_SYMBOL_GPL(dev_access_disable);
> > +
> > +void dev_access_enable(void)
> > +{
> > +   unsigned long flags;
> > +
> > +   if (!static_branch_unlikely(&dev_protection_static_key))
> > +           return;
> > +
> > +   local_irq_save(flags);
> > +   /* 0 clears the PKEY_DISABLE_ACCESS bit, allowing access */
> > +   if (current->dev_page_access_ref == 0)
> > +           pks_update_protection(dev_page_pkey, 0);
> > +   current->dev_page_access_ref++;
> 
>       if (!current->dev_page_access_ref++)

Sure.

> 
> > +   local_irq_restore(flags);
> > +}
> > +EXPORT_SYMBOL_GPL(dev_access_enable);
> 
> 
> Also, you probably want something like:
> 
> static __always_inline devm_access_disable(void)

Yes that is better.

However, again Dan and I agree devm is not the right prefix here.

I've updated.

Thanks!
Ira

> {
>       if (static_branch_unlikely(&dev_protection_static_key))
>               __devm_access_disable();
> }
> 
> static __always_inline devm_access_enable(void)
> {
>       if (static_branch_unlikely(&dev_protection_static_key))
>               __devm_access_enable();
> }

Reply via email to