aboutsummaryrefslogtreecommitdiffstats
path: root/xen/common/domain.c
diff options
context:
space:
mode:
authorIan Campbell <ian.campbell@citrix.com>2013-07-19 12:51:11 +0100
committerIan Campbell <ian.campbell@citrix.com>2013-08-20 15:41:30 +0100
commit33daac3995d49d07fec245ea22f2c093fb11bec2 (patch)
tree4eea955d9d0607e14db71d3dcd99332a9d5fe24a /xen/common/domain.c
parentacf2d315202587e81bb7f3b6841dcfce2814415e (diff)
downloadxen-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/common/domain.c')
-rw-r--r--xen/common/domain.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 6c264a5a02..9390a22a6d 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -921,7 +921,9 @@ int map_vcpu_info(struct vcpu *v, unsigned long gfn, unsigned offset)
if ( v->vcpu_info == &dummy_vcpu_info )
{
memset(new_info, 0, sizeof(*new_info));
+#ifdef XEN_HAVE_PV_UPCALL_MASK
__vcpu_info(v, new_info, evtchn_upcall_mask) = 1;
+#endif
}
else
{