From: Peter Zijlstra <peterz@infradead.org> To: ira.weiny@intel.com Cc: Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>, Andy Lutomirski <luto@kernel.org>, x86@kernel.org, Dave Hansen <dave.hansen@linux.intel.com>, Dan Williams <dan.j.williams@intel.com>, Vishal Verma <vishal.l.verma@intel.com>, Andrew Morton <akpm@linux-foundation.org>, Fenghua Yu <fenghua.yu@intel.com>, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-nvdimm@lists.01.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-kselftest@vger.kernel.org Subject: Re: [PATCH RFC V2 12/17] memremap: Add zone device access protection Date: Fri, 17 Jul 2020 11:17:18 +0200 [thread overview] Message-ID: <20200717091718.GA10769@hirez.programming.kicks-ass.net> (raw) In-Reply-To: <20200717072056.73134-13-ira.weiny@intel.com> On Fri, Jul 17, 2020 at 12:20:51AM -0700, ira.weiny@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) > + 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++) > + local_irq_restore(flags); > +} > +EXPORT_SYMBOL_GPL(dev_access_enable); Also, you probably want something like: static __always_inline devm_access_disable(void) { 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(); }
next prev parent reply other threads:[~2020-07-17 9:17 UTC|newest] Thread overview: 73+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-07-17 7:20 [PATCH RFC V2 00/17] PKS: Add Protection Keys Supervisor (PKS) support ira.weiny 2020-07-17 7:20 ` [PATCH RFC V2 01/17] x86/pkeys: Create pkeys_internal.h ira.weiny 2020-07-17 7:20 ` [PATCH RFC V2 02/17] x86/fpu: Refactor arch_set_user_pkey_access() for PKS support ira.weiny 2020-07-17 8:54 ` Peter Zijlstra 2020-07-17 20:52 ` Ira Weiny 2020-07-20 9:14 ` Peter Zijlstra 2020-07-17 22:36 ` Dave Hansen 2020-07-20 9:13 ` Peter Zijlstra 2020-07-17 7:20 ` [PATCH RFC V2 03/17] x86/pks: Enable Protection Keys Supervisor (PKS) ira.weiny 2020-07-17 7:20 ` [PATCH RFC V2 04/17] x86/pks: Preserve the PKRS MSR on context switch ira.weiny 2020-07-17 8:31 ` Peter Zijlstra 2020-07-17 21:39 ` Ira Weiny 2020-07-17 8:59 ` Peter Zijlstra 2020-07-17 22:34 ` Ira Weiny 2020-07-20 9:15 ` Peter Zijlstra 2020-07-20 18:35 ` Ira Weiny 2020-07-17 7:20 ` [PATCH RFC V2 05/17] x86/pks: Add PKS kernel API ira.weiny 2020-07-17 7:20 ` [PATCH RFC V2 06/17] x86/pks: Add a debugfs file for allocated PKS keys ira.weiny 2020-07-17 7:20 ` [PATCH RFC V2 07/17] Documentation/pkeys: Update documentation for kernel pkeys ira.weiny 2020-07-17 7:20 ` [PATCH RFC V2 08/17] x86/pks: Add PKS Test code ira.weiny 2020-07-17 7:20 ` [PATCH RFC V2 09/17] memremap: Convert devmap static branch to {inc,dec} ira.weiny 2020-07-17 7:20 ` [PATCH RFC V2 10/17] fs/dax: Remove unused size parameter ira.weiny 2020-07-17 7:20 ` [PATCH RFC V2 11/17] drivers/dax: Expand lock scope to cover the use of addresses ira.weiny 2020-07-17 7:20 ` [PATCH RFC V2 12/17] memremap: Add zone device access protection ira.weiny 2020-07-17 9:10 ` Peter Zijlstra 2020-07-18 5:06 ` Ira Weiny 2020-07-20 9:16 ` Peter Zijlstra 2020-07-17 9:17 ` Peter Zijlstra [this message] 2020-07-18 5:51 ` Ira Weiny 2020-07-17 9:20 ` Peter Zijlstra 2020-07-17 7:20 ` [PATCH RFC V2 13/17] kmap: Add stray write protection for device pages ira.weiny 2020-07-17 9:21 ` Peter Zijlstra 2020-07-19 4:13 ` Ira Weiny 2020-07-20 9:17 ` Peter Zijlstra 2020-07-21 16:31 ` Ira Weiny 2020-07-17 7:20 ` [PATCH RFC V2 14/17] dax: Stray write protection for dax_direct_access() ira.weiny 2020-07-17 9:22 ` Peter Zijlstra 2020-07-19 4:41 ` Ira Weiny 2020-07-17 7:20 ` [PATCH RFC V2 15/17] nvdimm/pmem: Stray write protection for pmem->virt_addr ira.weiny 2020-07-17 7:20 ` [PATCH RFC V2 16/17] [dax|pmem]: Enable stray write protection ira.weiny 2020-07-17 9:25 ` Peter Zijlstra 2020-07-17 7:20 ` [PATCH RFC V2 17/17] x86/entry: Preserve PKRS MSR across exceptions ira.weiny 2020-07-17 9:30 ` Peter Zijlstra 2020-07-21 18:01 ` Ira Weiny 2020-07-21 19:11 ` Peter Zijlstra 2020-07-17 9:34 ` Peter Zijlstra 2020-07-17 10:06 ` Peter Zijlstra 2020-07-22 5:27 ` Ira Weiny 2020-07-22 9:48 ` Peter Zijlstra 2020-07-22 21:24 ` Ira Weiny 2020-07-23 20:08 ` Thomas Gleixner 2020-07-23 20:15 ` Thomas Gleixner 2020-07-24 17:23 ` Ira Weiny 2020-07-24 17:29 ` Andy Lutomirski 2020-07-24 19:43 ` Ira Weiny 2020-07-22 16:21 ` Andy Lutomirski 2020-07-23 16:18 ` Fenghua Yu 2020-07-23 16:23 ` Dave Hansen 2020-07-23 16:52 ` Fenghua Yu 2020-07-23 17:08 ` Andy Lutomirski 2020-07-23 17:30 ` Dave Hansen 2020-07-23 20:23 ` Thomas Gleixner 2020-07-23 20:22 ` Thomas Gleixner 2020-07-23 21:30 ` Andy Lutomirski 2020-07-23 22:14 ` Thomas Gleixner 2020-07-23 19:53 ` Thomas Gleixner 2020-07-23 22:04 ` Ira Weiny 2020-07-23 23:41 ` Thomas Gleixner 2020-07-24 21:24 ` Thomas Gleixner 2020-07-24 21:31 ` Thomas Gleixner 2020-07-25 0:09 ` Andy Lutomirski 2020-07-27 20:59 ` Ira Weiny 2020-07-24 22:19 ` [PATCH RFC V2 00/17] PKS: Add Protection Keys Supervisor (PKS) support Kees Cook
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20200717091718.GA10769@hirez.programming.kicks-ass.net \ --to=peterz@infradead.org \ --cc=akpm@linux-foundation.org \ --cc=bp@alien8.de \ --cc=dan.j.williams@intel.com \ --cc=dave.hansen@linux.intel.com \ --cc=fenghua.yu@intel.com \ --cc=ira.weiny@intel.com \ --cc=linux-doc@vger.kernel.org \ --cc=linux-fsdevel@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-kselftest@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=linux-nvdimm@lists.01.org \ --cc=luto@kernel.org \ --cc=mingo@redhat.com \ --cc=tglx@linutronix.de \ --cc=vishal.l.verma@intel.com \ --cc=x86@kernel.org \ --subject='Re: [PATCH RFC V2 12/17] memremap: Add zone device access protection' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).