Re: [PATCH 04/16] MIPS: use the generic get_user_pages_fast code

From: Christoph Hellwig
Date: Tue Jun 25 2019 - 03:47:24 EST


On Fri, Jun 21, 2019 at 11:05:42AM -0300, Jason Gunthorpe wrote:
> Today this check is only being done on the get_user_pages_fast() -
> after this patch it is also done for __get_user_pages_fast().
>
> Which means __get_user_pages_fast is now non-functional on a range of
> MIPS CPUs, but that seems OK as far as I can tell, so:

> However, looks to me like this patch is also a bug fix for this:

Yes.

> > - pgdp = pgd_offset(mm, addr);
> > - do {
> > - pgd_t pgd = *pgdp;
> > -
> > - next = pgd_addr_end(addr, end);
> > - if (pgd_none(pgd))
> > - goto slow;
> > - if (!gup_pud_range(pgd, addr, next, gup_flags & FOLL_WRITE,
> > - pages, &nr))
>
> This is different too, the core code has a p4d layer, but I see that
> whole thing gets NOP'd by the compiler as mips uses pgtable-nop4d.h -
> right?

Exactly.