]> git.baikalelectronics.ru Git - kernel.git/commit
ARM, arm64: kvm: get rid of the bounce page
authorArd Biesheuvel <ard.biesheuvel@linaro.org>
Thu, 19 Mar 2015 16:42:26 +0000 (16:42 +0000)
committerWill Deacon <will.deacon@arm.com>
Thu, 19 Mar 2015 19:21:56 +0000 (19:21 +0000)
commit300c209dd80e0adf14f2cf16dfa07fb7a6726d30
tree84f134705f009d74aba8637f25da3f887ea40c08
parent4e813428b23f3210ec3696d8097c405444662f99
ARM, arm64: kvm: get rid of the bounce page

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: Marc Zyngier <marc.zyngier@arm.com>
Reviewed-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
arch/arm/kernel/vmlinux.lds.S
arch/arm/kvm/init.S
arch/arm/kvm/mmu.c
arch/arm64/kernel/vmlinux.lds.S