Skip to content

Fix arm64 boot regression in 5.14

Will Deacon linux-arm-kernel linuxppc-dev lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest2 patches 4 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/2Revert "powerpc/8xx: add support for huge pages on VMAP and VMALLOC"arch/powerpc/Kconfig arch/powerpc/include/asm/nohash/32/mmu-8xx.h+1 -441 reply
2/2Revert "mm/pgtable: add stubs for {pmd/pub}_{set/clear}_huge"arch/arm64/mm/mmu.c arch/x86/mm/pgtable.c include/linux/pgtable.h+24 -560 replies

Reviews trailers per patch

None of the 2 patches has a Reviewed-by or Acked-by of their own; the series has one for all of them.

PatchArd BiesheuvelMarc Zyngier
SeriesR-b R-b A-b A-b
1/2
2/2

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [PATCH 0/2] Fix arm64 boot regression in 5.14

Hi folks,

Jonathan reports [1] that commit c742199a014d ("mm/pgtable: add stubs for {pmd/pub}_{set/clear}_huge") breaks the boot on arm64 when huge mappings are used to map the kernel linear map but the VA size is configured such that PUDs are folded. This is because the non-functional pud_set_huge() stub is used to create the linear map, which results in 1GB holes and a fatal data abort when the kernel attemps to access them.

Digging further into the issue, it also transpired that huge-vmap is silently disabled in these configurations as well [2], despite working correctly in 5.13. The latter issue causes the pgtable selftests to scream due to a failing consistency check [3].

Rather than leave mainline in a terminally broken state for arm64 while we figure this out, revert the offending commit to get things working again. Unfortunately, reverting the change in isolation causes a build breakage for 32-bit PowerPC 8xx machines which recently started relying on the problematic stubs to support pte-level huge-vmap entries [4]. Since Christophe is away at the moment, this series first reverts the PowerPC 8xx change in order to avoid breaking the build.

I would really like this to land for -rc3 and I can take these via the arm64 fixes queue if the PowerPC folks are alright with them.

Cheers,

Will

[1] https://lore.kernel.org/r/[email protected]
[2] https://lore.kernel.org/r/20210719104918.GA6440@willie-the-truck
[3] https://lore.kernel.org/r/CAMuHMdXShORDox-xxaeUfDW3wx2PeggFSqhVSHVZNKCGK-y_vQ@mail.gmail.com/
[4] https://lore.kernel.org/r/8b972f1c03fb6bd59953035f0a3e4d26659de4f8.1620795204.git.christophe.leroy@csgroup.eu/

Cc Ard Biesheuvel <[email protected]>
Cc Michael Ellerman <[email protected]>
Cc Thomas Gleixner <[email protected]>
Cc Benjamin Herrenschmidt <[email protected]>
Cc Christophe Leroy <[email protected]>
Cc Paul Mackerras <[email protected]>
Cc Jonathan Marek <[email protected]>
Cc Catalin Marinas <[email protected]>
Cc Andrew Morton <[email protected]>
Cc Nicholas Piggin <[email protected]
Cc Mike Rapoport <[email protected]>
Cc Mark Rutland <[email protected]>
Cc Geert Uytterhoeven <[email protected]>
Cc Marc Zyngier <[email protected]>

--->8

Jonathan Marek (1):
Revert "mm/pgtable: add stubs for {pmd/pub}_{set/clear}_huge"

Will Deacon (1):
Revert "powerpc/8xx: add support for huge pages on VMAP and VMALLOC"

 arch/arm64/mm/mmu.c                          | 20 ++++-----
 arch/powerpc/Kconfig                         |  2 +-
 arch/powerpc/include/asm/nohash/32/mmu-8xx.h | 43 --------------------
 arch/x86/mm/pgtable.c                        | 34 +++++++---------
 include/linux/pgtable.h                      | 26 +-----------
 5 files changed, 25 insertions(+), 100 deletions(-)
Signature · 1 line
2.32.0.402.g57bb445576-goog