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>
			
			
This commit is contained in:
		
							parent
							
								
									46e3626adb
								
							
						
					
					
						commit
						854072dd0f
					
				| @ -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) | ||||
| { | ||||
|  | ||||
| @ -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, | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user