diff options
-rw-r--r-- | virt/kvm/arm/mmu.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/virt/kvm/arm/mmu.c b/virt/kvm/arm/mmu.c index b36945d49986..b4b69c2d1012 100644 --- a/virt/kvm/arm/mmu.c +++ b/virt/kvm/arm/mmu.c | |||
@@ -509,8 +509,6 @@ static void unmap_hyp_range(pgd_t *pgdp, phys_addr_t start, u64 size) | |||
509 | */ | 509 | */ |
510 | void free_hyp_pgds(void) | 510 | void free_hyp_pgds(void) |
511 | { | 511 | { |
512 | unsigned long addr; | ||
513 | |||
514 | mutex_lock(&kvm_hyp_pgd_mutex); | 512 | mutex_lock(&kvm_hyp_pgd_mutex); |
515 | 513 | ||
516 | if (boot_hyp_pgd) { | 514 | if (boot_hyp_pgd) { |
@@ -521,10 +519,10 @@ void free_hyp_pgds(void) | |||
521 | 519 | ||
522 | if (hyp_pgd) { | 520 | if (hyp_pgd) { |
523 | unmap_hyp_range(hyp_pgd, hyp_idmap_start, PAGE_SIZE); | 521 | unmap_hyp_range(hyp_pgd, hyp_idmap_start, PAGE_SIZE); |
524 | for (addr = PAGE_OFFSET; virt_addr_valid(addr); addr += PGDIR_SIZE) | 522 | unmap_hyp_range(hyp_pgd, kern_hyp_va(PAGE_OFFSET), |
525 | unmap_hyp_range(hyp_pgd, kern_hyp_va(addr), PGDIR_SIZE); | 523 | (uintptr_t)high_memory - PAGE_OFFSET); |
526 | for (addr = VMALLOC_START; is_vmalloc_addr((void*)addr); addr += PGDIR_SIZE) | 524 | unmap_hyp_range(hyp_pgd, kern_hyp_va(VMALLOC_START), |
527 | unmap_hyp_range(hyp_pgd, kern_hyp_va(addr), PGDIR_SIZE); | 525 | VMALLOC_END - VMALLOC_START); |
528 | 526 | ||
529 | free_pages((unsigned long)hyp_pgd, hyp_pgd_order); | 527 | free_pages((unsigned long)hyp_pgd, hyp_pgd_order); |
530 | hyp_pgd = NULL; | 528 | hyp_pgd = NULL; |