[PATCHv2] arm64: mm: Fix VM_BUG_ON(mm != &init_mm) for trans_pgd

Catalin Marinas catalin.marinas at arm.com
Fri Nov 12 06:26:08 PST 2021


On Fri, Nov 12, 2021 at 01:22:14PM +0800, Pingfan Liu wrote:
> trans_pgd_create_copy() can hit "VM_BUG_ON(mm != &init_mm)" in the
> function pmd_populate_kernel().
> 
> This is the combined consequence of commit 5de59884ac0e ("arm64:
> trans_pgd: pass NULL instead of init_mm to *_populate functions"), which
> replaced &init_mm with NULL and commit 59511cfd08f3 ("arm64: mm: use XN
> table mapping attributes for user/kernel mappings"), which introduced
> the VM_BUG_ON.
> 
> Since the former sounds reasonable, it is better to work on the later.
> From the perspective of trans_pgd, two groups of functions are
> considered in the later one:
> 
>   pmd_populate_kernel()
>     mm == NULL should be fixed, else it hits VM_BUG_ON()
>   p?d_populate()
>     mm == NULL means PXN, that is OK, since trans_pgd only copies a
>     linear map, no execution will happen on the map.
> 
> So it is good enough to just relax VM_BUG_ON() to disregard mm == NULL
> 
> Fixes: 59511cfd08f3 ("arm64: mm: use XN table mapping attributes for user/kernel mappings")

Cc: <stable at vger.kernel.org> # 5.13.x

> Signed-off-by: Pingfan Liu <kernelfans at gmail.com>
> Cc: Catalin Marinas <catalin.marinas at arm.com>
> Cc: Ard Biesheuvel <ardb at kernel.org>
> Cc: Will Deacon <will at kernel.org>
> Cc: Pasha Tatashin <pasha.tatashin at soleen.com>
> Cc: James Morse <james.morse at arm.com>
> Cc: Matthias Brugger <mbrugger at suse.com>
> To: linux-arm-kernel at lists.infradead.org

It looks fine to me.

Reviewed-by: Catalin Marinas <catalin.marinas at arm.com>

I'll leave it to Will to queue as a fix.

Thanks.

-- 
Catalin



More information about the linux-arm-kernel mailing list