• Alexander Gordeev's avatar
    s390/boot: Fix KASLR base offset off by __START_KERNEL bytes · 1642285e
    Alexander Gordeev authored
    Symbol offsets to the KASLR base do not match symbol address in
    the vmlinux image. That is the result of setting the KASLR base
    to the beginning of .text section as result of an optimization.
    
    Revert that optimization and allocate virtual memory for the
    whole kernel image including __START_KERNEL bytes as per the
    linker script. That allows keeping the semantics of the KASLR
    base offset in sync with other architectures.
    
    Rename __START_KERNEL to TEXT_OFFSET, since it represents the
    offset of the .text section within the kernel image, rather than
    a virtual address.
    
    Still skip mapping TEXT_OFFSET bytes to save memory on pgtables
    and provoke exceptions in case an attempt to access this area is
    made, as no kernel symbol may reside there.
    
    In case CONFIG_KASAN is enabled the location counter might exceed
    the value of TEXT_OFFSET, while the decompressor linker script
    forcefully resets it to TEXT_OFFSET, which leads to a sections
    overlap link failure. ...
    1642285e
vmlinux.lds.S 5.9 KB