Message ID | 20110409112124.GA15296@elte.hu (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Sat, 9 Apr 2011, Ingo Molnar wrote: > Make the MIN_RAM_SIZE_MB constant 64-bit on 32-bit systems as well, otherwise > we get this build failure: > > kvm-run.c: In function ‘kvm_cmd_run’: > kvm-run.c:119: error: format ‘%lu’ expects type ‘long unsigned int’, but argument 2 has type ‘u64’ > > Also adjust affected printf format string - this necessiates the use of > the sane Linux definition of u64 instead of the brain-dead int64_t > variant. > > That also allows (and necessiates) the removal of the ugly PRIu64 format > string hackery. Friends don't let friends use PRI* hackeries! :-) Yeah, we definitely should do a tree-wide sweep of s/uint64_t/u64/, etc., and PRI* removal. > Signed-off-by: Ingo Molnar <mingo@elte.hu> Applied, thanks! Pekka
diff --git a/tools/kvm/include/linux/types.h b/tools/kvm/include/linux/types.h index b989d2a..8b608e7 100644 --- a/tools/kvm/include/linux/types.h +++ b/tools/kvm/include/linux/types.h @@ -12,8 +12,8 @@ #define __s32 int32_t #define __u32 uint32_t -#define __s64 int64_t -#define __u64 uint64_t +#define __s64 long long +#define __u64 unsigned long long typedef __u64 u64; typedef __s64 s64; diff --git a/tools/kvm/kvm-run.c b/tools/kvm/kvm-run.c index 9b0786a..5697d82 100644 --- a/tools/kvm/kvm-run.c +++ b/tools/kvm/kvm-run.c @@ -25,7 +25,7 @@ #define DEFAULT_KVM_DEV "/dev/kvm" #define MB_SHIFT (20) -#define MIN_RAM_SIZE_MB (64UL) +#define MIN_RAM_SIZE_MB (64ULL) #define MIN_RAM_SIZE_BYTE (MIN_RAM_SIZE_MB << MB_SHIFT) static struct kvm *kvm; @@ -114,10 +114,9 @@ int kvm_cmd_run(int argc, const char **argv, const char *prefix) } - if (ram_size < MIN_RAM_SIZE_MB) { - die("Not enough memory specified: %luMB (min %luMB)", ram_size, - MIN_RAM_SIZE_MB); - } + if (ram_size < MIN_RAM_SIZE_MB) + die("Not enough memory specified: %lluMB (min %lluMB)", ram_size, MIN_RAM_SIZE_MB); + ram_size <<= MB_SHIFT; if (!kvm_dev) @@ -230,7 +229,7 @@ panic_kvm: kvm->kvm_run->exit_reason, kvm_exit_reasons[kvm->kvm_run->exit_reason]); if (kvm->kvm_run->exit_reason == KVM_EXIT_UNKNOWN) - fprintf(stderr, "KVM exit code: 0x%" PRIu64 "\n", + fprintf(stderr, "KVM exit code: 0x%Lu\n", kvm->kvm_run->hw.hardware_exit_reason); disk_image__close(kvm->disk_image); kvm__show_registers(kvm);
Make the MIN_RAM_SIZE_MB constant 64-bit on 32-bit systems as well, otherwise we get this build failure: kvm-run.c: In function ‘kvm_cmd_run’: kvm-run.c:119: error: format ‘%lu’ expects type ‘long unsigned int’, but argument 2 has type ‘u64’ Also adjust affected printf format string - this necessiates the use of the sane Linux definition of u64 instead of the brain-dead int64_t variant. That also allows (and necessiates) the removal of the ugly PRIu64 format string hackery. Friends don't let friends use PRI* hackeries! :-) Signed-off-by: Ingo Molnar <mingo@elte.hu> --- tools/kvm/include/linux/types.h | 4 ++-- tools/kvm/kvm-run.c | 11 +++++------ 2 files changed, 7 insertions(+), 8 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html