[PATCH v2 1/5] arm64: Rename page table BSS section to .bss..pgtbl

Ard Biesheuvel ardb at kernel.org
Tue Jun 16 02:38:48 PDT 2026



On Mon, 15 Jun 2026, at 22:09, Frank Li wrote:
> On Thu, Jun 04, 2026 at 05:11:53PM +0200, Ard Biesheuvel wrote:
>> From: Ard Biesheuvel <ardb at kernel.org>
>>
>> Rename the .pgdir.bss section to .bss..pgtbl so that the compiler will
>> notice the leading ".bss" and mark it as NOBITS by default (rather than
>> PROGBITS, which would take up space in Image binary, forcing all of the
>> preceding BSS to be emitted into the image as well). This supersedes the
>> NOLOAD linker directive, which achieves the same thing, and can be
>> therefore be dropped.
>>
>> Also, rename .pgdir to .pgtbl to be more generic, as page tables of
>> various levels will reside here.
>>
>> Signed-off-by: Ard Biesheuvel <ardb at kernel.org>
>> ---
>
> I met boot failure for i.MX8QXP by this patch
>
> [    0.823515] Unable to handle kernel paging request at virtual 
> address ffff00000328f000
> [    0.831116] Mem abort info:
> [    0.833886]   ESR = 0x0000000096000147
> [    0.837622]   EC = 0x25: DABT (current EL), IL = 32 bits
> [    0.842923]   SET = 0, FnV = 0
> [    0.845961]   EA = 0, S1PTW = 0
> [    0.849088]   FSC = 0x07: level 3 translation fault
> [    0.853952] Data abort info:
> [    0.856809]   ISV = 0, ISS = 0x00000147, ISS2 = 0x00000000
> [    0.862296]   CM = 1, WnR = 1, TnD = 0, TagAccess = 0
> [    0.867330]   GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0
> [    0.872633] swapper pgtable: 4k pages, 48-bit VAs, 
> pgdp=000000008211f000
> [    0.879321] [ffff00000328f000] pgd=0000000000000000, 
> p4d=18000008bffff403, pud=18000008bfffe403, pmd=18000008bffea403, 
> pte=00e800008328ff06
> [    0.891834] Internal error: Oops: 0000000096000147 [#1]  SMP
> [    0.897469] Modules linked in:
> [    0.900514] CPU: 0 UID: 0 PID: 1 Comm: swapper/0 Not tainted 
> 7.1.0-rc1-00016-g63e0b6a5b693 #834 PREEMPT
> [    0.909978] Hardware name: Freescale i.MX8QXP MEK (DT)
> [    0.915104] pstate: 80000005 (Nzcv daif -PAN -UAO -TCO -DIT -SSBS 
> BTYPE=--)
> [    0.922053] pc : dcache_clean_inval_poc+0x24/0x48
> [    0.926742] lr : kvm_arm_init+0xa78/0x1638
> [    0.930828] sp : ffff80008318bd10
> [    0.934127] x29: ffff80008318bd50 x28: 0000000000000000 x27: 
> ffff00000328f000
> [    0.941251] x26: 0000000000002000 x25: ffff80008219e000 x24: 
> 0000000001002222
> [    0.948374] x23: 0000000000000030 x22: ffff800081e850c0 x21: 
> ffff800082b790d0
> [    0.955498] x20: 0000000000000004 x19: ffff8000830a0000 x18: 
> 0000000000000000
> [    0.962622] x17: ffff800082f938b8 x16: ffff800082b8b4e0 x15: 
> ffff800082b8b4b8
> [    0.969746] x14: ffff80008308f0a0 x13: ffff800082b8b490 x12: 
> ffff800082b8b530
> [    0.976869] x11: ffff800082b8b508 x10: ffff80008308f140 x9 : 
> ffff80008308f118
> [    0.983993] x8 : ffff80008308f0f0 x7 : ffff80008308f0c8 x6 : 
> ffff80008308f078
> [    0.991117] x5 : ffff80008308f050 x4 : ffff800082b8b468 x3 : 
> 000000000000003f
> [    0.998240] x2 : 0000000000000040 x1 : ffff000003291000 x0 : 
> ffff00000328f000
> [    1.005367] Call trace:
> [    1.007800]  dcache_clean_inval_poc+0x24/0x48 (P)
> [    1.012490]  do_one_initcall+0x80/0x1c8
> [    1.016310]  kernel_init_freeable+0x208/0x2f0
> [    1.020654]  kernel_init+0x24/0x1e0
> [    1.024131]  ret_from_fork+0x10/0x20
> [    1.027700] Code: 9ac32042 d1000443 8a230000 d503201f (d50b7e20)
> [    1.033779] ---[ end trace 0000000000000000 ]---
> [    1.038428] Kernel panic - not syncing: Attempted to kill init! 
> exitcode=0x0000000b
> [    1.046026] SMP: stopping secondary CPUs
> [    1.049943] Kernel Offset: disabled
> [    1.053408] CPU features: 0x00000000,00000008,00040021,0400421b
> [    1.059316] Memory Limit: none
> [    1.062359] ---[ end Kernel panic - not syncing: Attempted to kill 
> init! exitcode=0x0000000b ]---
>
>
> Any idea?
>

Which tree is this based on?



More information about the linux-arm-kernel mailing list