[PATCH] KVM: x86/mmu: Avoid modulo operator on 64-bit value to fix i386 build

From: Sean Christopherson
Date: Fri Oct 23 2020 - 23:12:09 EST


Replace a modulo operator with the more common pattern for computing the
gfn "offset" of a huge page to fix an i386 build error.

arch/x86/kvm/mmu/tdp_mmu.c:212: undefined reference to `__umoddi3'

Fixes: 2f2fad0897cb ("kvm: x86/mmu: Add functions to handle changed TDP SPTEs")
Reported-by: Daniel Díaz <daniel.diaz@xxxxxxxxxx>
Signed-off-by: Sean Christopherson <sean.j.christopherson@xxxxxxxxx>
---

Linus, do you want to take this directly so that it's in rc1? I don't
know whether Paolo will be checking mail before then.

arch/x86/kvm/mmu/tdp_mmu.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/kvm/mmu/tdp_mmu.c b/arch/x86/kvm/mmu/tdp_mmu.c
index e246d71b8ea2..27e381c9da6c 100644
--- a/arch/x86/kvm/mmu/tdp_mmu.c
+++ b/arch/x86/kvm/mmu/tdp_mmu.c
@@ -209,7 +209,7 @@ static void __handle_changed_spte(struct kvm *kvm, int as_id, gfn_t gfn,

WARN_ON(level > PT64_ROOT_MAX_LEVEL);
WARN_ON(level < PG_LEVEL_4K);
- WARN_ON(gfn % KVM_PAGES_PER_HPAGE(level));
+ WARN_ON(gfn & (KVM_PAGES_PER_HPAGE(level) - 1));

/*
* If this warning were to trigger it would indicate that there was a
--
2.28.0