KVM: struct kvm_memory_slot.id -> short
Alex Williamson [Mon, 10 Dec 2012 17:33:32 +0000 (10:33 -0700)]
We're currently offering a whopping 32 memory slots to user space, an
int is a bit excessive for storing this.  We would like to increase
our memslots, but SHRT_MAX should be more than enough.

Reviewed-by: Gleb Natapov <gleb@redhat.com>
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>

include/linux/kvm_host.h
virt/kvm/kvm_main.c

index fec6075..32fdc45 100644 (file)
@@ -270,7 +270,7 @@ struct kvm_memory_slot {
        struct kvm_arch_memory_slot arch;
        unsigned long userspace_addr;
        u32 flags;
-       int id;
+       short id;
        bool user_alloc;
 };
 
@@ -330,7 +330,7 @@ struct kvm_memslots {
        u64 generation;
        struct kvm_memory_slot memslots[KVM_MEM_SLOTS_NUM];
        /* The mapping table from slot id to the index in memslots[]. */
-       int id_to_index[KVM_MEM_SLOTS_NUM];
+       short id_to_index[KVM_MEM_SLOTS_NUM];
 };
 
 struct kvm {
index 42c1eb7..bd31096 100644 (file)
@@ -474,6 +474,8 @@ static struct kvm *kvm_create_vm(unsigned long type)
        INIT_HLIST_HEAD(&kvm->irq_ack_notifier_list);
 #endif
 
+       BUILD_BUG_ON(KVM_MEM_SLOTS_NUM > SHRT_MAX);
+
        r = -ENOMEM;
        kvm->memslots = kzalloc(sizeof(struct kvm_memslots), GFP_KERNEL);
        if (!kvm->memslots)