diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-03-16 19:29:25 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-03-16 19:29:25 -0400 |
commit | 7a6362800cb7d1d618a697a650c7aaed3eb39320 (patch) | |
tree | 087f9bc6c13ef1fad4b392c5cf9325cd28fa8523 /drivers/xen/events.c | |
parent | 6445ced8670f37cfc2c5e24a9de9b413dbfc788d (diff) | |
parent | ceda86a108671294052cbf51660097b6534672f5 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1480 commits)
bonding: enable netpoll without checking link status
xfrm: Refcount destination entry on xfrm_lookup
net: introduce rx_handler results and logic around that
bonding: get rid of IFF_SLAVE_INACTIVE netdev->priv_flag
bonding: wrap slave state work
net: get rid of multiple bond-related netdevice->priv_flags
bonding: register slave pointer for rx_handler
be2net: Bump up the version number
be2net: Copyright notice change. Update to Emulex instead of ServerEngines
e1000e: fix kconfig for crc32 dependency
netfilter ebtables: fix xt_AUDIT to work with ebtables
xen network backend driver
bonding: Improve syslog message at device creation time
bonding: Call netif_carrier_off after register_netdevice
bonding: Incorrect TX queue offset
net_sched: fix ip_tos2prio
xfrm: fix __xfrm_route_forward()
be2net: Fix UDP packet detected status in RX compl
Phonet: fix aligned-mode pipe socket buffer header reserve
netxen: support for GbE port settings
...
Fix up conflicts in drivers/staging/brcm80211/brcmsmac/wl_mac80211.c
with the staging updates.
Diffstat (limited to 'drivers/xen/events.c')
-rw-r--r-- | drivers/xen/events.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/drivers/xen/events.c b/drivers/xen/events.c index 0ad1699a1b3e..65f5068afd84 100644 --- a/drivers/xen/events.c +++ b/drivers/xen/events.c | |||
@@ -794,6 +794,21 @@ static int bind_ipi_to_irq(unsigned int ipi, unsigned int cpu) | |||
794 | return irq; | 794 | return irq; |
795 | } | 795 | } |
796 | 796 | ||
797 | static int bind_interdomain_evtchn_to_irq(unsigned int remote_domain, | ||
798 | unsigned int remote_port) | ||
799 | { | ||
800 | struct evtchn_bind_interdomain bind_interdomain; | ||
801 | int err; | ||
802 | |||
803 | bind_interdomain.remote_dom = remote_domain; | ||
804 | bind_interdomain.remote_port = remote_port; | ||
805 | |||
806 | err = HYPERVISOR_event_channel_op(EVTCHNOP_bind_interdomain, | ||
807 | &bind_interdomain); | ||
808 | |||
809 | return err ? : bind_evtchn_to_irq(bind_interdomain.local_port); | ||
810 | } | ||
811 | |||
797 | 812 | ||
798 | int bind_virq_to_irq(unsigned int virq, unsigned int cpu) | 813 | int bind_virq_to_irq(unsigned int virq, unsigned int cpu) |
799 | { | 814 | { |
@@ -889,6 +904,29 @@ int bind_evtchn_to_irqhandler(unsigned int evtchn, | |||
889 | } | 904 | } |
890 | EXPORT_SYMBOL_GPL(bind_evtchn_to_irqhandler); | 905 | EXPORT_SYMBOL_GPL(bind_evtchn_to_irqhandler); |
891 | 906 | ||
907 | int bind_interdomain_evtchn_to_irqhandler(unsigned int remote_domain, | ||
908 | unsigned int remote_port, | ||
909 | irq_handler_t handler, | ||
910 | unsigned long irqflags, | ||
911 | const char *devname, | ||
912 | void *dev_id) | ||
913 | { | ||
914 | int irq, retval; | ||
915 | |||
916 | irq = bind_interdomain_evtchn_to_irq(remote_domain, remote_port); | ||
917 | if (irq < 0) | ||
918 | return irq; | ||
919 | |||
920 | retval = request_irq(irq, handler, irqflags, devname, dev_id); | ||
921 | if (retval != 0) { | ||
922 | unbind_from_irq(irq); | ||
923 | return retval; | ||
924 | } | ||
925 | |||
926 | return irq; | ||
927 | } | ||
928 | EXPORT_SYMBOL_GPL(bind_interdomain_evtchn_to_irqhandler); | ||
929 | |||
892 | int bind_virq_to_irqhandler(unsigned int virq, unsigned int cpu, | 930 | int bind_virq_to_irqhandler(unsigned int virq, unsigned int cpu, |
893 | irq_handler_t handler, | 931 | irq_handler_t handler, |
894 | unsigned long irqflags, const char *devname, void *dev_id) | 932 | unsigned long irqflags, const char *devname, void *dev_id) |