aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/xen/events.c
diff options
context:
space:
mode:
authorAndrea Bastoni <bastoni@cs.unc.edu>2010-05-30 19:16:45 -0400
committerAndrea Bastoni <bastoni@cs.unc.edu>2010-05-30 19:16:45 -0400
commitada47b5fe13d89735805b566185f4885f5a3f750 (patch)
tree644b88f8a71896307d71438e9b3af49126ffb22b /drivers/xen/events.c
parent43e98717ad40a4ae64545b5ba047c7b86aa44f4f (diff)
parent3280f21d43ee541f97f8cda5792150d2dbec20d5 (diff)
Merge branch 'wip-2.6.34' into old-private-masterarchived-private-master
Diffstat (limited to 'drivers/xen/events.c')
-rw-r--r--drivers/xen/events.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/xen/events.c b/drivers/xen/events.c
index 2f57276e87a2..db8f506817f0 100644
--- a/drivers/xen/events.c
+++ b/drivers/xen/events.c
@@ -27,6 +27,7 @@
27#include <linux/module.h> 27#include <linux/module.h>
28#include <linux/string.h> 28#include <linux/string.h>
29#include <linux/bootmem.h> 29#include <linux/bootmem.h>
30#include <linux/slab.h>
30 31
31#include <asm/ptrace.h> 32#include <asm/ptrace.h>
32#include <asm/irq.h> 33#include <asm/irq.h>
@@ -474,6 +475,9 @@ static void unbind_from_irq(unsigned int irq)
474 bind_evtchn_to_cpu(evtchn, 0); 475 bind_evtchn_to_cpu(evtchn, 0);
475 476
476 evtchn_to_irq[evtchn] = -1; 477 evtchn_to_irq[evtchn] = -1;
478 }
479
480 if (irq_info[irq].type != IRQT_UNBOUND) {
477 irq_info[irq] = mk_unbound_info(); 481 irq_info[irq] = mk_unbound_info();
478 482
479 dynamic_irq_cleanup(irq); 483 dynamic_irq_cleanup(irq);
@@ -646,9 +650,13 @@ void xen_evtchn_do_upcall(struct pt_regs *regs)
646 int bit_idx = __ffs(pending_bits); 650 int bit_idx = __ffs(pending_bits);
647 int port = (word_idx * BITS_PER_LONG) + bit_idx; 651 int port = (word_idx * BITS_PER_LONG) + bit_idx;
648 int irq = evtchn_to_irq[port]; 652 int irq = evtchn_to_irq[port];
653 struct irq_desc *desc;
649 654
650 if (irq != -1) 655 if (irq != -1) {
651 handle_irq(irq, regs); 656 desc = irq_to_desc(irq);
657 if (desc)
658 generic_handle_irq_desc(irq, desc);
659 }
652 } 660 }
653 } 661 }
654 662