|
|
|
|
|
|
|
|
|
|
xen-changelog
[Xen-changelog] [xen-unstable] minios: fix and enforce block_domain atom
# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1210248867 -3600
# Node ID fe625fd796f8de4cf09cba6b7bd0c7e8438e2552
# Parent 37cf8747f55bb1e18c01bca4ed6a2bb41c34adb6
minios: fix and enforce block_domain atomicity
To ensure that the timer event is not lost, block_domain requires that
event delivery is disabled. SCHEDOP_block re-enables them, so for
coherency (and fixing a bug actually), we should re-disable them
after. Also, make sure that the caller disabled them.
Signed-off-by: Samuel Thibault <samuel.thibault@xxxxxxxxxxxxx>
---
extras/mini-os/arch/x86/time.c | 2 ++
1 files changed, 2 insertions(+)
diff -r 37cf8747f55b -r fe625fd796f8 extras/mini-os/arch/x86/time.c
--- a/extras/mini-os/arch/x86/time.c Thu May 08 11:55:13 2008 +0100
+++ b/extras/mini-os/arch/x86/time.c Thu May 08 13:14:27 2008 +0100
@@ -201,10 +201,12 @@ void block_domain(s_time_t until)
{
struct timeval tv;
gettimeofday(&tv, NULL);
+ ASSERT(irqs_disabled());
if(monotonic_clock() < until)
{
HYPERVISOR_set_timer_op(until);
HYPERVISOR_sched_op(SCHEDOP_block, 0);
+ local_irq_disable();
}
}
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- [Xen-changelog] [xen-unstable] minios: fix and enforce block_domain atomicity,
Xen patchbot-unstable <=
|
|
|
|
|