2020-10-24 10:56:55

by Sean Christopherson

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

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 <[email protected]>
Signed-off-by: Sean Christopherson <[email protected]>
---

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


2020-10-24 11:37:43

by Paolo Bonzini

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

On 24/10/20 05:11, Sean Christopherson wrote:
> 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 <[email protected]>
> Signed-off-by: Sean Christopherson <[email protected]>
> ---
>
> 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

Yes, I am. I also have another bugfix, I was going to wait a couple
days for any -rc1 issues to pop up but they came up faster than that.

Paolo