Re: [PATCH v2 4/4] mm, arch: add generic implementation of pfn_valid() for FLATMEM

Mike Rapoport
2023-02-13T07:55:05Z

Andrew,

On Sun, Feb 12, 2023 at 10:37:15PM -0800, Guenter Roeck wrote:
> On 2/12/23 17:26, Mike Rapoport wrote:
> > On Sun, Feb 12, 2023 at 08:13:20AM -0800, Guenter Roeck wrote:
> > > On Sun, Jan 29, 2023 at 02:42:35PM +0200, Mike Rapoport wrote:
> > > > From: "Mike Rapoport (IBM)" <rppt@kernel.org>
> > > >
> > > > Every architecture that supports FLATMEM memory model defines its own
> > > > version of pfn_valid() that essentially compares a pfn to max_mapnr.
> > > >
> > > > Use mips/powerpc version implemented as static inline as a generic
> > > > implementation of pfn_valid() and drop its per-architecture definitions.
> > > >
> > >
> > > With this patch in the tree, sh4 and sh4eb qemu emulations no longer boot.
> > > Reverting this patch fixes the problem.
> >
> > This should be a better fix than a revert:
> >
> > diff --git a/arch/sh/mm/init.c b/arch/sh/mm/init.c
> > index 506784702430..bf1b54055316 100644
> > --- a/arch/sh/mm/init.c
> > +++ b/arch/sh/mm/init.c
> > @@ -301,6 +301,7 @@ void __init paging_init(void)
> > */
> > max_low_pfn = max_pfn = memblock_end_of_DRAM() >> PAGE_SHIFT;
> > min_low_pfn = __MEMORY_START >> PAGE_SHIFT;
> > + set_max_mapnr(max_low_pfn - min_low_pfn);
> > nodes_clear(node_online_map);
>
> Confirmed, this fixes the problem for me.

What is your preference for this and m68k fix? Fixups on top of mm-stable
or v3 of the entire series?

> Thanks,
> Guenter

--
Sincerely yours,
Mike.