drm/i915/gvt: Use an "unsigned long" to iterate over memslot gfns
authorSean Christopherson <seanjc@google.com>
Sat, 29 Jul 2023 01:35:15 +0000 (18:35 -0700)
committerPaolo Bonzini <pbonzini@redhat.com>
Thu, 31 Aug 2023 17:48:57 +0000 (13:48 -0400)
Use an "unsigned long" instead of an "int" when iterating over the gfns
in a memslot.  The number of pages in the memslot is tracked as an
"unsigned long", e.g. KVMGT could theoretically break if a KVM memslot
larger than 16TiB were deleted (2^32 * 4KiB).

Reviewed-by: Yan Zhao <yan.y.zhao@intel.com>
Tested-by: Yongwei Ma <yongwei.ma@intel.com>
Reviewed-by: Zhi Wang <zhi.a.wang@intel.com>
Link: https://lore.kernel.org/r/20230729013535.1070024-10-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
drivers/gpu/drm/i915/gvt/kvmgt.c

index 97c6d3c537103e622038f26b6979f4098c95ca84..6f52886c405179b3545442ac4f7c5342a3aed408 100644 (file)
@@ -1620,7 +1620,7 @@ static void kvmgt_page_track_flush_slot(struct kvm *kvm,
                struct kvm_memory_slot *slot,
                struct kvm_page_track_notifier_node *node)
 {
-       int i;
+       unsigned long i;
        gfn_t gfn;
        struct intel_vgpu *info =
                container_of(node, struct intel_vgpu, track_node);