]> git.baikalelectronics.ru Git - kernel.git/commit
arm: KVM: fix possible misalignment of PGDs and bounce page
authorMark Salter <msalter@redhat.com>
Fri, 28 Mar 2014 14:25:19 +0000 (14:25 +0000)
committerChristoffer Dall <christoffer.dall@linaro.org>
Mon, 28 Apr 2014 10:21:48 +0000 (03:21 -0700)
commitec07e0b3fc7bbbf42c82ba763c1f5ac71b90cf45
treedcdab60be89d96865d9d375f7dcb076cfe67bdf7
parent945bf76007b2bceaa847b44cea7bf4b7c0c3b186
arm: KVM: fix possible misalignment of PGDs and bounce page

The kvm/mmu code shared by arm and arm64 uses kalloc() to allocate
a bounce page (if hypervisor init code crosses page boundary) and
hypervisor PGDs. The problem is that kalloc() does not guarantee
the proper alignment. In the case of the bounce page, the page sized
buffer allocated may also cross a page boundary negating the purpose
and leading to a hang during kvm initialization. Likewise the PGDs
allocated may not meet the minimum alignment requirements of the
underlying MMU. This patch uses __get_free_page() to guarantee the
worst case alignment needs of the bounce page and PGDs on both arm
and arm64.

Cc: <stable@vger.kernel.org> # 3.10+
Signed-off-by: Mark Salter <msalter@redhat.com>
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
arch/arm/kvm/mmu.c