[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 2/3] target-i386: avoid overflow in the tsc-frequency
From: |
Eduardo Habkost |
Subject: |
[Qemu-devel] [PULL 2/3] target-i386: avoid overflow in the tsc-frequency property |
Date: |
Fri, 3 Jul 2015 17:47:38 -0300 |
From: Paolo Bonzini <address@hidden>
The TSC frequency fits comfortably in an int when expressed in kHz,
but it may overflow when converted to Hz. In this case,
tsc-frequency returns a negative value because x86_cpuid_get_tsc_freq
does a 32-bit multiplication before assigning to int64_t.
For simplicity just make tsc_khz a 64-bit value.
Spotted by Coverity.
Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Eduardo Habkost <address@hidden>
Signed-off-by: Eduardo Habkost <address@hidden>
---
target-i386/cpu.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/target-i386/cpu.h b/target-i386/cpu.h
index d2eaea8..bbeef22 100644
--- a/target-i386/cpu.h
+++ b/target-i386/cpu.h
@@ -961,7 +961,7 @@ typedef struct CPUX86State {
uint8_t has_error_code;
uint32_t sipi_vector;
bool tsc_valid;
- int tsc_khz;
+ int64_t tsc_khz;
void *kvm_xsave_buf;
uint64_t mcg_cap;
--
2.1.0
- [Qemu-devel] [PULL 0/3] X86 queue, 2015-07-03, Eduardo Habkost, 2015/07/03
- [Qemu-devel] [PULL 1/3] i386: Introduce ARAT CPU feature, Eduardo Habkost, 2015/07/03
- [Qemu-devel] [PULL 2/3] target-i386: avoid overflow in the tsc-frequency property,
Eduardo Habkost <=
- [Qemu-devel] [PULL 3/3] target-i386: emulate CPUID level of real hardware, Eduardo Habkost, 2015/07/03
- Re: [Qemu-devel] [PULL 0/3] X86 queue, 2015-07-03, Andreas Färber, 2015/07/03
- Re: [Qemu-devel] [PULL 0/3] X86 queue, 2015-07-03, Peter Maydell, 2015/07/05