Re: [PATCH 10/16] sparc64: use the generic get_user_pages_fast code

From: Christoph Hellwig
Date: Mon Jun 03 2019 - 03:49:07 EST


On Sun, Jun 02, 2019 at 03:39:48PM +0800, Hillf Danton wrote:
>
> Hi Christoph
>
> On Sat, 1 Jun 2019 09:49:53 +0200 Christoph Hellwig wrote:
> >
> > diff --git a/arch/sparc/include/asm/pgtable_64.h b/arch/sparc/include/asm/pgtable_64.h
> > index a93eca29e85a..2301ab5250e4 100644
> > --- a/arch/sparc/include/asm/pgtable_64.h
> > +++ b/arch/sparc/include/asm/pgtable_64.h
> > @@ -1098,6 +1098,24 @@ static inline unsigned long untagged_addr(unsigned long start)
> > }
> > #define untagged_addr untagged_addr
> >
> > +static inline bool pte_access_permitted(pte_t pte, bool write)
> > +{
> > + u64 prot;
> > +
> > + if (tlb_type == hypervisor) {
> > + prot = _PAGE_PRESENT_4V | _PAGE_P_4V;
> > + if (prot)
>
> Feel free to correct me if I misread or miss anything.
> It looks like a typo: s/prot/write/, as checking _PAGE_PRESENT_4V and
> _PAGE_P_4V makes prot always have _PAGE_WRITE_4V set, regardless of write.

True, the if prot should be if write.