Re: [PATCH 0/5] Rewrite Motorola MMU page-table layout

Greg Ungerer
2020-01-31T06:31:54Z

Hi Peter,

On 29/1/20 8:39 pm, Peter Zijlstra wrote:
> Hi!
>
> In order to faciliate Will's READ_ONCE() patches:
>
> https://lkml.kernel.org/r/20200123153341.19947-1-will@kernel.org
>
> we need to fix m68k/motorola to not have a giant pmd_t. These patches do so and
> are tested using ARAnyM/68040.
>
> It would be very good if someone can either test or tell us what emulator to
> use for 020/030.

This series breaks compilation for the ColdFire (with MMU) variant of
the m68k family:

CC arch/m68k/kernel/sys_m68k.o
In file included from ./arch/m68k/include/asm/pgalloc.h:12,
from ./include/asm-generic/tlb.h:16,
from ./arch/m68k/include/asm/tlb.h:5,
from arch/m68k/kernel/sys_m68k.c:35:
./arch/m68k/include/asm/mcf_pgalloc.h: In function ‘__pte_free_tlb’:
./arch/m68k/include/asm/mcf_pgalloc.h:41:24: error: passing argument 1 of ‘pgtable_pte_page_dtor’ from incompatible pointer type [-Werror=incompatible-pointer-types]
pgtable_pte_page_dtor(page);
^~~~
In file included from arch/m68k/kernel/sys_m68k.c:13:
./include/linux/mm.h:1949:55: note: expected ‘struct page *’ but argument is of type ‘pgtable_t’ {aka ‘struct <anonymous> *’}
static inline void pgtable_pte_page_dtor(struct page *page)
~~~~~~~~~~~~~^~~~
In file included from ./include/linux/mm.h:10,
from arch/m68k/kernel/sys_m68k.c:13:
./include/linux/gfp.h:577:40: error: passing argument 1 of ‘__free_pages’ from incompatible pointer type [-Werror=incompatible-pointer-types]
#define __free_page(page) __free_pages((page), 0)
^~~~~~
./arch/m68k/include/asm/mcf_pgalloc.h:42:2: note: in expansion of macro ‘__free_page’
__free_page(page);
^~~~~~~~~~~
./include/linux/gfp.h:566:39: note: expected ‘struct page *’ but argument is of type ‘pgtable_t’ {aka ‘struct <anonymous> *’}
extern void __free_pages(struct page *page, unsigned int order);
~~~~~~~~~~~~~^~~~
cc1: some warnings being treated as errors
scripts/Makefile.build:265: recipe for target 'arch/m68k/kernel/sys_m68k.o' failed

Easy to reproduce. Build for the m5475evb_defconfig.

Regards
Greg