Re: [PATCH v3 05/13] m68k: mm: use pgtable-nopXd instead of 4level-fixup

Geert Uytterhoeven
2019-11-04T09:53:51Z

Hi Mike,

On Mon, Nov 4, 2019 at 10:48 AM Mike Rapoport <rppt@kernel.org> wrote:
> On Mon, Nov 04, 2019 at 09:53:34AM +0100, Geert Uytterhoeven wrote:
> > On Mon, Nov 4, 2019 at 7:57 AM Mike Rapoport <rppt@kernel.org> wrote:
> > > From: Mike Rapoport <rppt@linux.ibm.com>
> > > m68k has two or three levels of page tables and can use appropriate
> > > pgtable-nopXd and folding of the upper layers.
> > >
> > > Replace usage of include/asm-generic/4level-fixup.h and explicit
> > > definitions of __PAGETABLE_PxD_FOLDED in m68k with
> > > include/asm-generic/pgtable-nopmd.h for two-level configurations and with
> > > include/asm-generic/pgtable-nopud.h for three-lelve configurations and
> > > adjust page table manipulation macros and functions accordingly.
> > >
> > > Signed-off-by: Mike Rapoport <rppt@linux.ibm.com>
> > > Acked-by: Greg Ungerer <gerg@linux-m68k.org>
> >
> > Thanks for your patch!
> >
> > The build error reported for v1 by kbuild test robot when building for
> > sun3x is still there (m68k defconfig or sun3x_defconfig):
> >
> > arch/m68k/sun3x/dvma.c: In function ‘dvma_map_cpu’:
> > arch/m68k/sun3x/dvma.c:98:33: error: passing argument 2 of
> > ‘pmd_alloc’ from incompatible pointer type
> > [-Werror=incompatible-pointer-types]
> > if((pmd = pmd_alloc(&init_mm, pgd, vaddr)) == NULL) {
> > ^~~
> > In file included from arch/m68k/sun3x/dvma.c:17:
> > include/linux/mm.h:1875:61: note: expected ‘pud_t *’ {aka ‘struct
> > <anonymous> *’} but argument is of type ‘pgd_t *’ {aka ‘struct
> > <anonymous> *’}
> > static inline pmd_t *pmd_alloc(struct mm_struct *mm, pud_t *pud,
> > unsigned long address)
> > ~~~~~~~^~~
>
> The initial report was against older mmotm (base:
> git://git.cmpxchg.org/linux-mmotm.git master) and I presumed this was the
> cause of the error. Will fix in v4.

OK, thanks!

My tree is based on m68k/master, which does not include the mmotm tree,
and should be fairly similar to plain v5.4-rc6.

> > This indeed boots fine on ARAnyM, which emulates on 68040.
> > It would be good to have some boot testing on '020/030, too.
>
> To be honest, I have no idea how to to that :)

Sure. This was more a request for the fellow m68k users.
But don't worry too much about it. If it breaks '020/'030, we can fix
that later.

Thanks!

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds