From 06761c76a4a4fe8bbd2df8fa4a7470c655392864 Mon Sep 17 00:00:00 2001 From: Pekka Enberg Date: Thu, 16 Jun 2011 17:04:31 +0300 Subject: [PATCH] kvm tools: Fix 'kvm run' on 32-bit machines with >2 GB of RAM 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 --- include/kvm/kvm.h | 2 +- kvm-run.c | 4 ++-- kvm.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/include/kvm/kvm.h b/include/kvm/kvm.h index 4eeed87..7d90d35 100644 --- a/include/kvm/kvm.h +++ b/include/kvm/kvm.h @@ -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); diff --git a/kvm-run.c b/kvm-run.c index f121a2b..6ad55aa 100644 --- a/kvm-run.c +++ b/kvm-run.c @@ -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); diff --git a/kvm.c b/kvm.c index 2c56a79..8874cf9 100644 --- a/kvm.c +++ b/kvm.c @@ -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;