summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorJulien Grall <julien.grall@citrix.com>2015-07-28 10:10:42 +0100
committerDavid Vrabel <david.vrabel@citrix.com>2015-08-20 12:24:15 +0100
commit4a5b69464e51f4a8dd432e8c2a1468630df1a53c (patch)
tree31e4fcf70dc4488f3e5860e3825cb9fe7694adbd /include
parent907c3eb18e0bd86ca12a9de80befe8e3647bac3e (diff)
downloadlinux-stable-4a5b69464e51f4a8dd432e8c2a1468630df1a53c.tar.gz
linux-stable-4a5b69464e51f4a8dd432e8c2a1468630df1a53c.tar.bz2
linux-stable-4a5b69464e51f4a8dd432e8c2a1468630df1a53c.zip
xen/events: Support event channel rebind on ARM
Currently, the event channel rebind code is gated with the presence of the vector callback. The virtual interrupt controller on ARM has the concept of per-CPU interrupt (PPI) which allow us to support per-VCPU event channel. Therefore there is no need of vector callback for ARM. Xen is already using a free PPI to notify the guest VCPU of an event. Furthermore, the xen code initialization in Linux (see arch/arm/xen/enlighten.c) is requesting correctly a per-CPU IRQ. Introduce new helper xen_support_evtchn_rebind to allow architecture decide whether rebind an event is support or not. It will always return true on ARM and keep the same behavior on x86. This is also allow us to drop the usage of xen_have_vector_callback entirely in the ARM code. Signed-off-by: Julien Grall <julien.grall@citrix.com> Signed-off-by: David Vrabel <david.vrabel@citrix.com>
Diffstat (limited to 'include')
-rw-r--r--include/xen/events.h1
1 files changed, 0 insertions, 1 deletions
diff --git a/include/xen/events.h b/include/xen/events.h
index 7d95fdf9cf3e..88da2abaf535 100644
--- a/include/xen/events.h
+++ b/include/xen/events.h
@@ -92,7 +92,6 @@ void xen_hvm_callback_vector(void);
#ifdef CONFIG_TRACING
#define trace_xen_hvm_callback_vector xen_hvm_callback_vector
#endif
-extern int xen_have_vector_callback;
int xen_set_callback_via(uint64_t via);
void xen_evtchn_do_upcall(struct pt_regs *regs);
void xen_hvm_evtchn_do_upcall(void);