aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJuergen Gross <jgross@suse.com>2014-08-28 00:44:09 -0400
committerStefano Stabellini <stefano.stabellini@eu.citrix.com>2014-09-23 09:36:19 -0400
commit854072dd0f73b8e4238c88bdf0dd2a8db0239c1c (patch)
tree8921c6aef3aee4b9b024f527b711b4003b5621ca
parent46e3626adb86be2ff1321d26107cb75df07a7f4e (diff)
xen/events: support threaded irqs for interdomain event channels
Export bind_interdomain_evtchn_to_irq() so drivers can use threaded interrupt handlers with: irq = bind_interdomain_evtchn_to_irq(remote_dom, remote_port); if (irq < 0) /* error */ ret = request_threaded_irq(...); Signed-off-by: Juergen Gross <jgross@suse.com> Acked-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> Signed-off-by: David Vrabel <david.vrabel@citrix.com>
-rw-r--r--drivers/xen/events/events_base.c5
-rw-r--r--include/xen/events.h2
2 files changed, 5 insertions, 2 deletions
diff --git a/drivers/xen/events/events_base.c b/drivers/xen/events/events_base.c
index 5b5c5ff273fd..b4bca2d4a7e5 100644
--- a/drivers/xen/events/events_base.c
+++ b/drivers/xen/events/events_base.c
@@ -900,8 +900,8 @@ static int bind_ipi_to_irq(unsigned int ipi, unsigned int cpu)
900 return irq; 900 return irq;
901} 901}
902 902
903static int bind_interdomain_evtchn_to_irq(unsigned int remote_domain, 903int bind_interdomain_evtchn_to_irq(unsigned int remote_domain,
904 unsigned int remote_port) 904 unsigned int remote_port)
905{ 905{
906 struct evtchn_bind_interdomain bind_interdomain; 906 struct evtchn_bind_interdomain bind_interdomain;
907 int err; 907 int err;
@@ -914,6 +914,7 @@ static int bind_interdomain_evtchn_to_irq(unsigned int remote_domain,
914 914
915 return err ? : bind_evtchn_to_irq(bind_interdomain.local_port); 915 return err ? : bind_evtchn_to_irq(bind_interdomain.local_port);
916} 916}
917EXPORT_SYMBOL_GPL(bind_interdomain_evtchn_to_irq);
917 918
918static int find_virq(unsigned int virq, unsigned int cpu) 919static int find_virq(unsigned int virq, unsigned int cpu)
919{ 920{
diff --git a/include/xen/events.h b/include/xen/events.h
index 8bee7a75e850..5321cd9636e6 100644
--- a/include/xen/events.h
+++ b/include/xen/events.h
@@ -28,6 +28,8 @@ int bind_ipi_to_irqhandler(enum ipi_vector ipi,
28 unsigned long irqflags, 28 unsigned long irqflags,
29 const char *devname, 29 const char *devname,
30 void *dev_id); 30 void *dev_id);
31int bind_interdomain_evtchn_to_irq(unsigned int remote_domain,
32 unsigned int remote_port);
31int bind_interdomain_evtchn_to_irqhandler(unsigned int remote_domain, 33int bind_interdomain_evtchn_to_irqhandler(unsigned int remote_domain,
32 unsigned int remote_port, 34 unsigned int remote_port,
33 irq_handler_t handler, 35 irq_handler_t handler,