Re: [PATCH] mm/zsmalloc: include sparsemem.h for MAX_PHYSMEM_BITS

From: Andrew Morton
Date: Sat Nov 07 2020 - 19:57:09 EST


On Sat, 7 Nov 2020 16:22:06 +0100 Stefan Agner <stefan@xxxxxxxx> wrote:

> Most architectures define MAX_PHYSMEM_BITS in asm/sparsemem.h and don't
> include it in asm/pgtable.h. Include asm/sparsemem.h directly to get
> the MAX_PHYSMEM_BITS define on all architectures.
>
> This fixes a crash when accessing zram on 32-bit ARM platform with LPAE and
> more than 4GB of memory:
> Unable to handle kernel NULL pointer dereference at virtual address 00000000

Mysterious. Presumably without this include, some compilation unit is
picking up the wrong value of MAX_PHYSMEM_BITS? But I couldn't
actually see where/how this occurs. Can you please explain further?