• Ard Biesheuvel's avatar
    ARM, arm64: kvm: get rid of the bounce page · 06f75a1f
    Ard Biesheuvel authored
    The HYP init bounce page is a runtime construct that ensures that the
    HYP init code does not cross a page boundary. However, this is something
    we can do perfectly well at build time, by aligning the code appropriately.
    
    For arm64, we just align to 4 KB, and enforce that the code size is less
    than 4 KB, regardless of the chosen page size.
    
    For ARM, the whole code is less than 256 bytes, so we tweak the linker
    script to align at a power of 2 upper bound of the code size
    
    Note that this also fixes a benign off-by-one error in the original bounce
    page code, where a bounce page would be allocated unnecessarily if the code
    was exactly 1 page in size.
    
    On ARM, it also fixes an issue with very large kernels reported by Arnd
    Bergmann, where stub sections with linker emitted veneers could erroneously
    trigger the size/alignment ASSERT() in the linker script.
    Tested-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
    Reviewed-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
    Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
    06f75a1f
vmlinux.lds.S 3.8 KB