Commit b2d83cfa authored by Aurelien Jarno's avatar Aurelien Jarno Committed by Avi Kivity

KVM: fix LAPIC timer period overflow

Don't overflow when computing the 64-bit period from 32-bit registers.

Fixes sourceforge bug #2826486.
Signed-off-by: default avatarAurelien Jarno <aurelien@aurel32.net>
Cc: stable@kernel.org
Signed-off-by: default avatarMarcelo Tosatti <mtosatti@redhat.com>
parent 8feda6f7
...@@ -664,7 +664,7 @@ static void start_apic_timer(struct kvm_lapic *apic) ...@@ -664,7 +664,7 @@ static void start_apic_timer(struct kvm_lapic *apic)
{ {
ktime_t now = apic->lapic_timer.timer.base->get_time(); ktime_t now = apic->lapic_timer.timer.base->get_time();
apic->lapic_timer.period = apic_get_reg(apic, APIC_TMICT) * apic->lapic_timer.period = (u64)apic_get_reg(apic, APIC_TMICT) *
APIC_BUS_CYCLE_NS * apic->divide_count; APIC_BUS_CYCLE_NS * apic->divide_count;
atomic_set(&apic->lapic_timer.pending, 0); atomic_set(&apic->lapic_timer.pending, 0);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment