On Wed, Jun 16, 2021, Maxim Levitsky wrote: > Now that kvm->stat.nx_lpage_splits is 64 bit, use DIV_ROUND_UP_ULL > when doing division. I went the "cast to an unsigned long" route. I prefer the cast approach because to_zap is also an unsigned long, i.e. using DIV_ROUND_UP_ULL() could look like a truncation bug. In practice, nx_lpage_splits can't be more than an unsigned long so it's largely a moot point, I just like the more explicit "this is doing something odd". https://lkml.kernel.org/r/20210615162905.2132937-1-seanjc@xxxxxxxxxx > Fixes: 7ee093d4f3f5 ("KVM: switch per-VM stats to u64") > Signed-off-by: Maxim Levitsky <mlevitsk@xxxxxxxxxx> > --- > arch/x86/kvm/mmu/mmu.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/x86/kvm/mmu/mmu.c b/arch/x86/kvm/mmu/mmu.c > index 720ceb0a1f5c..97372225f183 100644 > --- a/arch/x86/kvm/mmu/mmu.c > +++ b/arch/x86/kvm/mmu/mmu.c > @@ -6054,7 +6054,7 @@ static void kvm_recover_nx_lpages(struct kvm *kvm) > write_lock(&kvm->mmu_lock); > > ratio = READ_ONCE(nx_huge_pages_recovery_ratio); > - to_zap = ratio ? DIV_ROUND_UP(kvm->stat.nx_lpage_splits, ratio) : 0; > + to_zap = ratio ? DIV_ROUND_UP_ULL(kvm->stat.nx_lpage_splits, ratio) : 0; > for ( ; to_zap; --to_zap) { > if (list_empty(&kvm->arch.lpage_disallowed_mmu_pages)) > break; > -- > 2.26.3 >