KVM: arm64: Fix build error in user_mem_abort()
authorGavin Shan <gshan@redhat.com>
Tue, 3 Nov 2020 00:30:09 +0000 (11:30 +1100)
committerMarc Zyngier <maz@kernel.org>
Fri, 6 Nov 2020 16:00:29 +0000 (16:00 +0000)
commitfaf000397e7f103df9953a312e1df21df1dc797f
treed8991bc5596f17d3737688e76b8ee671455c8124
parent22f553842b14a1289c088a79a67fb479d3fa2a4e
KVM: arm64: Fix build error in user_mem_abort()

The PUD and PMD are folded into PGD when the following options are
enabled. In that case, PUD_SHIFT is equal to PMD_SHIFT and we fail
to build with the indicated errors:

   CONFIG_ARM64_VA_BITS_42=y
   CONFIG_ARM64_PAGE_SHIFT=16
   CONFIG_PGTABLE_LEVELS=3

   arch/arm64/kvm/mmu.c: In function â€˜user_mem_abort’:
   arch/arm64/kvm/mmu.c:798:2: error: duplicate case value
     case PMD_SHIFT:
     ^~~~
   arch/arm64/kvm/mmu.c:791:2: note: previously used here
     case PUD_SHIFT:
     ^~~~

This fixes the issue by skipping the check on PUD huge page when PUD
and PMD are folded into PGD.

Fixes: 2f40c46021bbb ("KVM: arm64: Use fallback mapping sizes for contiguous huge page sizes")
Reported-by: Eric Auger <eric.auger@redhat.com>
Signed-off-by: Gavin Shan <gshan@redhat.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20201103003009.32955-1-gshan@redhat.com
arch/arm64/kvm/mmu.c