kernel-fxtec-pro1x/arch/arm/kvm
Marc Zyngier 979acd5e18 arm64: KVM: fix 2-level page tables unmapping
When using 64kB pages, we only have two levels of page tables,
meaning that PGD, PUD and PMD are fused. In this case, trying
to refcount PUDs and PMDs independently is a a complete disaster,
as they are the same.

We manage to get it right for the allocation (stage2_set_pte uses
{pmd,pud}_none), but the unmapping path clears both pud and pmd
refcounts, which fails spectacularly with 2-level page tables.

The fix is to avoid calling clear_pud_entry when both the pmd and
pud pages are empty. For this, and instead of introducing another
pud_empty function, consolidate both pte_empty and pmd_empty into
page_empty (the code is actually identical) and use that to also
test the validity of the pud.

Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
2013-08-07 18:17:39 -07:00
..
arm.c KVM fixes for 3.11 2013-07-03 13:21:40 -07:00
coproc.c ARM: KVM: Fix 64-bit coprocessor handling 2013-08-06 11:32:30 -07:00
coproc.h ARM: KVM: Fix 64-bit coprocessor handling 2013-08-06 11:32:30 -07:00
coproc_a15.c ARM: KVM: Fix 64-bit coprocessor handling 2013-08-06 11:32:30 -07:00
emulate.c ARM: KVM: move kvm_handle_wfi to handle_exit.c 2013-03-06 15:48:45 -08:00
guest.c ARM: KVM: move kvm_target_cpu to guest.c 2013-03-06 15:48:44 -08:00
handle_exit.c ARM: KVM: Don't handle PSCI calls via SMC 2013-06-26 10:50:02 -07:00
init.S ARM: KVM: switch to a dual-step HYP init code 2013-04-28 22:23:10 -07:00
interrupts.S ARM: KVM: clear exclusive monitor on all exception returns 2013-06-26 10:50:05 -07:00
interrupts_head.S KVM fixes for 3.11 2013-07-03 13:21:40 -07:00
Kconfig ARM: kvm: don't include drivers/virtio/Kconfig 2013-06-26 10:50:06 -07:00
Makefile KVM: get rid of $(addprefix ../../../virt/kvm/, ...) in Makefiles 2013-05-19 15:14:00 +03:00
mmio.c ARM: KVM: don't special case PC when doing an MMIO 2013-06-26 10:50:03 -07:00
mmu.c arm64: KVM: fix 2-level page tables unmapping 2013-08-07 18:17:39 -07:00
perf.c ARM: KVM: add support for minimal host vs guest profiling 2013-04-28 21:44:01 -07:00
psci.c ARM: KVM: Don't handle PSCI calls via SMC 2013-06-26 10:50:02 -07:00
reset.c ARM: KVM: Allow host virt timer irq to be different from guest timer virt irq 2013-06-26 10:50:02 -07:00
trace.h KVM: ARM: Handle I/O aborts 2013-01-23 13:29:17 -05:00