]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
kvm tools: Fix 'kvm run' on 32-bit machines with >2 GB of RAM
authorPekka Enberg <penberg@kernel.org>
Thu, 16 Jun 2011 14:04:31 +0000 (17:04 +0300)
committerPekka Enberg <penberg@kernel.org>
Thu, 16 Jun 2011 14:04:31 +0000 (17:04 +0300)
This patch fixes the following nasty 'kvm run' startup problem that's caused by
'long' and 'u64' mixup in the code:

  $ ./kvm run
    Fatal: out of memory

Signed-off-by: Pekka Enberg <penberg@kernel.org>
tools/kvm/include/kvm/kvm.h
tools/kvm/kvm-run.c
tools/kvm/kvm.c

index 4eeed87f27879135789c00ec4fe908d1e79f21c1..7d90d356e3e0367c96aedc4eea452cd8eeb53f08 100644 (file)
@@ -43,7 +43,7 @@ struct kvm {
        int                     nr_disks;
 };
 
-struct kvm *kvm__init(const char *kvm_dev, unsigned long ram_size);
+struct kvm *kvm__init(const char *kvm_dev, u64 ram_size);
 int kvm__max_cpus(struct kvm *kvm);
 void kvm__init_ram(struct kvm *kvm);
 void kvm__delete(struct kvm *kvm);
index f121a2b81756f5c9236845418427ee393a506051..6ad55aa1d83c7f6b45c7110dde18bf1cfcd31aff 100644 (file)
@@ -324,8 +324,8 @@ static u64 host_ram_size(void)
 
 static u64 get_ram_size(int nr_cpus)
 {
-       long available;
-       long ram_size;
+       u64 available;
+       u64 ram_size;
 
        ram_size        = 64 * (nr_cpus + 3);
 
index 2c56a792803399b7da75814e5f3a2f22e30c093e..8874cf9192b8b381353a463664745e7c3513cf56 100644 (file)
@@ -236,7 +236,7 @@ int kvm__max_cpus(struct kvm *kvm)
        return ret;
 }
 
-struct kvm *kvm__init(const char *kvm_dev, unsigned long ram_size)
+struct kvm *kvm__init(const char *kvm_dev, u64 ram_size)
 {
        struct kvm_pit_config pit_config = { .flags = 0, };
        struct kvm *kvm;