[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] hvm: local_events_need_delivery() must take into account VLAPIC/PIC status.
# 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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |