|
|
|
|
|
|
|
|
|
|
xen-changelog
[Xen-changelog] [xen-unstable] hvm: local_events_need_delivery() must ta
# HG changeset patch
# User kfraser@xxxxxxxxxxxxxxxxxxxxx
# Date 1172085136 0
# Node ID 87f31a0db841b3be5be938213adf2bd47acf3080
# Parent 335a8280ab1d9a874f98e293828a04f642185fba
hvm: local_events_need_delivery() must take into account VLAPIC/PIC status.
Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx>
---
xen/include/asm-x86/event.h | 7 ++++---
1 files changed, 4 insertions(+), 3 deletions(-)
diff -r 335a8280ab1d -r 87f31a0db841 xen/include/asm-x86/event.h
--- a/xen/include/asm-x86/event.h Wed Feb 21 18:54:48 2007 +0000
+++ b/xen/include/asm-x86/event.h Wed Feb 21 19:12:16 2007 +0000
@@ -10,6 +10,7 @@
#define __ASM_EVENT_H__
#include <xen/shared.h>
+#include <asm/hvm/irq.h> /* cpu_has_pending_irq() */
static inline void vcpu_kick(struct vcpu *v)
{
@@ -37,9 +38,9 @@ static inline int local_events_need_deli
static inline int local_events_need_delivery(void)
{
struct vcpu *v = current;
- /* Note: Bitwise operations result in fast code with no branches. */
- return (!!vcpu_info(v, evtchn_upcall_pending) &
- !vcpu_info(v, evtchn_upcall_mask));
+ return ((vcpu_info(v, evtchn_upcall_pending) &&
+ !vcpu_info(v, evtchn_upcall_mask)) ||
+ (is_hvm_vcpu(v) && cpu_has_pending_irq(v)));
}
static inline int local_event_delivery_is_enabled(void)
_______________________________________________
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] hvm: local_events_need_delivery() must take into account VLAPIC/PIC status.,
Xen patchbot-unstable <=
|
|
|
|
|