]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Fix a bug in the HPET emulation where a timer interrupt could be lost when the
authorneel <neel@FreeBSD.org>
Fri, 3 Jan 2014 19:25:52 +0000 (19:25 +0000)
committerneel <neel@FreeBSD.org>
Fri, 3 Jan 2014 19:25:52 +0000 (19:25 +0000)
commit141215c4ae896c9a5d9d559c9df8be8077b0b667
tree339725b129d4881926aebcafc4a40e52db6cb951
parent8e1d7be31e296f665fdd2f296e636b0f48df92b9
Fix a bug in the HPET emulation where a timer interrupt could be lost when the
guest disables the HPET.

The HPET timer interrupt is triggered from the callout handler associated with
the timer. It is possible for the callout handler to be delayed before it gets
a chance to execute. If the guest disables the HPET during this window then the
handler never gets a chance to execute and the timer interrupt is lost.

This is now fixed by injecting a timer interrupt into the guest if the callout
time is detected to be in the past when the HPET is disabled.
sys/amd64/vmm/io/vhpet.c