diff options
author | Juergen Gross <jgross@suse.com> | 2014-08-28 08:44:09 +0400 |
---|---|---|
committer | Stefano Stabellini <stefano.stabellini@eu.citrix.com> | 2014-09-23 17:36:19 +0400 |
commit | 854072dd0f73b8e4238c88bdf0dd2a8db0239c1c (patch) | |
tree | 8921c6aef3aee4b9b024f527b711b4003b5621ca | |
parent | 46e3626adb86be2ff1321d26107cb75df07a7f4e (diff) | |
download | linux-854072dd0f73b8e4238c88bdf0dd2a8db0239c1c.tar.xz |
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.c | 5 | ||||
-rw-r--r-- | include/xen/events.h | 2 |
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) return irq; } -static int bind_interdomain_evtchn_to_irq(unsigned int remote_domain, - unsigned int remote_port) +int bind_interdomain_evtchn_to_irq(unsigned int remote_domain, + unsigned int remote_port) { struct evtchn_bind_interdomain bind_interdomain; int err; @@ -914,6 +914,7 @@ static int bind_interdomain_evtchn_to_irq(unsigned int remote_domain, return err ? : bind_evtchn_to_irq(bind_interdomain.local_port); } +EXPORT_SYMBOL_GPL(bind_interdomain_evtchn_to_irq); static int find_virq(unsigned int virq, unsigned int cpu) { 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, unsigned long irqflags, const char *devname, void *dev_id); +int bind_interdomain_evtchn_to_irq(unsigned int remote_domain, + unsigned int remote_port); int bind_interdomain_evtchn_to_irqhandler(unsigned int remote_domain, unsigned int remote_port, irq_handler_t handler, |