KVM: x86: handle idiv overflow at kvm_write_tsc
authorMarcelo Tosatti <mtosatti@redhat.com>
Wed, 12 Jun 2013 02:31:12 +0000 (23:31 -0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 5 Oct 2014 21:54:11 +0000 (14:54 -0700)
commitbdbdc4076c10ae9d3a83b37c79fc74827e776bf9
treec35c7c0af145fa496c05baeb04ff8bb0ddbf41dd
parent070fdd7aac3d8cf53f130f3fc6d02e2cc00549b0
KVM: x86: handle idiv overflow at kvm_write_tsc

commit 8915aa27d5efbb9185357175b0acf884325565f9 upstream.

Its possible that idivl overflows (due to large delta stored in usdiff,
valid scenario).

Create an exception handler to catch the overflow exception (division by zero
is protected by vcpu->arch.virtual_tsc_khz check), and interpret it accordingly
(delta is larger than USEC_PER_SEC).

Fixes https://bugzilla.redhat.com/show_bug.cgi?id=969644

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Gleb Natapov <gleb@redhat.com>
Signed-off-by: Philipp Hahn <hahn@univention.de>
Tested-by: Philipp Hahn <hahn@univention.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/x86/kvm/x86.c