diff options
author | Ian Campbell <ian.campbell@citrix.com> | 2013-07-19 12:51:11 +0100 |
---|---|---|
committer | Ian Campbell <ian.campbell@citrix.com> | 2013-08-20 15:41:30 +0100 |
commit | 33daac3995d49d07fec245ea22f2c093fb11bec2 (patch) | |
tree | 4eea955d9d0607e14db71d3dcd99332a9d5fe24a /xen/include/asm-x86 | |
parent | acf2d315202587e81bb7f3b6841dcfce2814415e (diff) | |
download | xen-33daac3995d49d07fec245ea22f2c093fb11bec2.tar.gz xen-33daac3995d49d07fec245ea22f2c093fb11bec2.tar.bz2 xen-33daac3995d49d07fec245ea22f2c093fb11bec2.zip |
xen: remove evtchn_upcall_mask from interface on ARM
On ARM event-channel upcalls are masked using the hardware's interrupt mask
bit and not by a software bit.
Leaving this field present in the interface has caused some confusion already
and is liable to mean it gets inadvertently used in the future. So arrange for
this field to be turned into a padding field on ARM by introducing a
XEN_HAVE_PV_UPCALL_MASK define.
This bit is also unused for x86 PV-on-HVM guests, but we can't realistically
distinguish those from x86 PV guests in the headers.
Add a per-arch vcpu_event_delivery_is_enabled function to replace an open
coded use of evtchn_upcall_mask in common code (in a debug keyhandler). The
existing local_event_delivery_is_enabled, which operates only on current, was
unimplemented on ARM and unused on x86, so remove it.
ifdef the use of evtchn_upcall_mask when setting up a new vcpu info page.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Acked-by: Keir Fraser <keir@xen.org>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Diffstat (limited to 'xen/include/asm-x86')
-rw-r--r-- | xen/include/asm-x86/config.h | 1 | ||||
-rw-r--r-- | xen/include/asm-x86/event.h | 10 |
2 files changed, 6 insertions, 5 deletions
diff --git a/xen/include/asm-x86/config.h b/xen/include/asm-x86/config.h index 028b696dfa..f387cd68f0 100644 --- a/xen/include/asm-x86/config.h +++ b/xen/include/asm-x86/config.h @@ -266,6 +266,7 @@ extern unsigned char boot_edid_info[128]; #define COMPAT_LEGACY_MAX_VCPUS XEN_LEGACY_MAX_VCPUS #define COMPAT_HAVE_PV_GUEST_ENTRY XEN_HAVE_PV_GUEST_ENTRY +#define COMPAT_HAVE_PV_UPCALL_MASK XEN_HAVE_PV_UPCALL_MASK #endif diff --git a/xen/include/asm-x86/event.h b/xen/include/asm-x86/event.h index 06057c7bea..7edeb5bfef 100644 --- a/xen/include/asm-x86/event.h +++ b/xen/include/asm-x86/event.h @@ -14,6 +14,11 @@ void vcpu_kick(struct vcpu *v); void vcpu_mark_events_pending(struct vcpu *v); +static inline int vcpu_event_delivery_is_enabled(struct vcpu *v) +{ + return !vcpu_info(v, evtchn_upcall_mask); +} + int hvm_local_events_need_delivery(struct vcpu *v); static inline int local_events_need_delivery(void) { @@ -23,11 +28,6 @@ static inline int local_events_need_delivery(void) !vcpu_info(v, evtchn_upcall_mask))); } -static inline int local_event_delivery_is_enabled(void) -{ - return !vcpu_info(current, evtchn_upcall_mask); -} - static inline void local_event_delivery_disable(void) { vcpu_info(current, evtchn_upcall_mask) = 1; |