xen/events: support threaded irqs for interdomain event channels
authorJuergen Gross <jgross@suse.com>
Thu, 28 Aug 2014 04:44:09 +0000 (06:44 +0200)
committerStefano Stabellini <stefano.stabellini@eu.citrix.com>
Tue, 23 Sep 2014 13:36:19 +0000 (13:36 +0000)
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>
drivers/xen/events/events_base.c
include/xen/events.h

index 5b5c5ff..b4bca2d 100644 (file)
@@ -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)
 {
index 8bee7a7..5321cd9 100644 (file)
@@ -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,