From: David Hildenbrand <david@redhat.com> To: Mike Rapoport <rppt@kernel.org>, Andrew Morton <akpm@linux-foundation.org> Cc: Alexander Viro <viro@zeniv.linux.org.uk>, Andy Lutomirski <luto@kernel.org>, Arnd Bergmann <arnd@arndb.de>, Borislav Petkov <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>, Christopher Lameter <cl@linux.com>, Dave Hansen <dave.hansen@linux.intel.com>, Elena Reshetova <elena.reshetova@intel.com>, "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>, James Bottomley <jejb@linux.ibm.com>, "Kirill A. Shutemov" <kirill@shutemov.name>, Matthew Wilcox <willy@infradead.org>, Matthew Garrett <mjg59@srcf.ucam.org>, Mark Rutland <mark.rutland@arm.com>, Michal Hocko <mhocko@suse.com>, Mike Rapoport <rppt@linux.ibm.com>, Michael Kerrisk <mtk.manpages@gmail.com>, Palmer Dabbelt <palmer@dabbelt.com>, Paul Walmsley <paul.walmsley@sifive.com>, Peter Zijlstra <peterz@infradead.org>, "Rafael J. Wysocki" <rjw@rjwysocki.net>, Rick Edgecombe <rick.p.edgecombe@intel.com>, Roman Gushchin <guro@fb.com>, Shakeel Butt <shakeelb@google.com>, Shuah Khan <shuah@kernel.org>, Thomas Gleixn er <tglx@linutronix.de>, Tycho Andersen <tycho@tycho.ws>, Will Deacon <will@kernel.org>, Yury Norov <yury.norov@gmail.com>, linux-api@vger.kernel.org, linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-nvdimm@lists.01.org, linux-riscv@lists.infradead.org, x86@kernel.org Subject: Re: [PATCH v2 1/2] secretmem/gup: don't check if page is secretmem without reference Date: Tue, 20 Apr 2021 15:19:56 +0200 [thread overview] Message-ID: <95b7fa81-f72e-c63f-0456-4c25dee8a5eb@redhat.com> (raw) In-Reply-To: <20210420131611.8259-2-rppt@kernel.org> On 20.04.21 15:16, Mike Rapoport wrote: > From: Mike Rapoport <rppt@linux.ibm.com> > > The check in gup_pte_range() whether a page belongs to a secretmem mapping > is performed before grabbing the page reference. > > To avoid potential race move the check after try_grab_compound_head(). > > Signed-off-by: Mike Rapoport <rppt@linux.ibm.com> > --- > mm/gup.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/mm/gup.c b/mm/gup.c > index c3a17b189064..4b58c016e949 100644 > --- a/mm/gup.c > +++ b/mm/gup.c > @@ -2080,13 +2080,13 @@ static int gup_pte_range(pmd_t pmd, unsigned long addr, unsigned long end, > VM_BUG_ON(!pfn_valid(pte_pfn(pte))); > page = pte_page(pte); > > - if (page_is_secretmem(page)) > - goto pte_unmap; > - > head = try_grab_compound_head(page, 1, flags); > if (!head) > goto pte_unmap; > > + if (page_is_secretmem(page)) > + goto pte_unmap; > + Looking at the hunk below, I wonder if you're missing a put_compound_head(). (also, I'd do if unlikely(page_is_secretmem()) but that's a different discussion) > if (unlikely(pte_val(pte) != pte_val(*ptep))) { > put_compound_head(head, 1, flags); > goto pte_unmap; > -- Thanks, David / dhildenb _______________________________________________ Linux-nvdimm mailing list -- linux-nvdimm@lists.01.org To unsubscribe send an email to linux-nvdimm-leave@lists.01.org
next prev parent reply other threads:[~2021-04-20 13:20 UTC|newest] Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-04-20 13:16 [PATCH v2 0/2] secretmem: optimize page_is_secretmem() Mike Rapoport 2021-04-20 13:16 ` [PATCH v2 1/2] secretmem/gup: don't check if page is secretmem without reference Mike Rapoport 2021-04-20 13:19 ` David Hildenbrand [this message] 2021-04-20 13:27 ` Mike Rapoport 2021-04-20 13:16 ` [PATCH v2 1/2] secretmem: optimize page_is_secretmem() Mike Rapoport 2021-04-20 13:16 ` [PATCH v2 2/2] secretmem/gup: don't check if page is secretmem without reference Mike Rapoport 2021-04-20 13:16 ` [PATCH v2 2/2] secretmem: optimize page_is_secretmem() Mike Rapoport 2021-04-20 14:38 ` [PATCH v2 0/2] " Mike Rapoport
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=95b7fa81-f72e-c63f-0456-4c25dee8a5eb@redhat.com \ --to=david@redhat.com \ --cc=akpm@linux-foundation.org \ --cc=arnd@arndb.de \ --cc=bp@alien8.de \ --cc=catalin.marinas@arm.com \ --cc=cl@linux.com \ --cc=dave.hansen@linux.intel.com \ --cc=elena.reshetova@intel.com \ --cc=guro@fb.com \ --cc=hpa@zytor.com \ --cc=jejb@linux.ibm.com \ --cc=kirill@shutemov.name \ --cc=linux-api@vger.kernel.org \ --cc=linux-arch@vger.kernel.org \ --cc=linux-arm-kernel@lists.infradead.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=linux-riscv@lists.infradead.org \ --cc=luto@kernel.org \ --cc=mark.rutland@arm.com \ --cc=mhocko@suse.com \ --cc=mingo@redhat.com \ --cc=mjg59@srcf.ucam.org \ --cc=mtk.manpages@gmail.com \ --cc=palmer@dabbelt.com \ --cc=paul.walmsley@sifive.com \ --cc=peterz@infradead.org \ --cc=rick.p.edgecombe@intel.com \ --cc=rjw@rjwysocki.net \ --cc=rppt@kernel.org \ --cc=rppt@linux.ibm.com \ --cc=shakeelb@google.com \ --cc=shuah@kernel.org \ --cc=tglx@linutronix.de \ --cc=tycho@tycho.ws \ --cc=viro@zeniv.linux.org.uk \ --cc=will@kernel.org \ --cc=willy@infradead.org \ --cc=x86@kernel.org \ --cc=yury.norov@gmail.com \ --subject='Re: [PATCH v2 1/2] secretmem/gup: don'\''t check if page is secretmem without reference' \ /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).