Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 136722
b: refs/heads/master
c: 3445a8f
h: refs/heads/master
v: v3
  • Loading branch information
Jeremy Fitzhardinge authored and Ingo Molnar committed Feb 9, 2009
1 parent bbd399c commit 611d728
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 21 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: d77bbd4db475e2edc78edb7f94a258159c140b54
refs/heads/master: 3445a8fd7c6868bd9db0d1bea7d6e89004552122
29 changes: 9 additions & 20 deletions trunk/drivers/xen/events.c
Original file line number Diff line number Diff line change
Expand Up @@ -595,25 +595,6 @@ irqreturn_t xen_debug_interrupt(int irq, void *dev_id)
return IRQ_HANDLED;
}


static void xen_do_irq(unsigned irq, struct pt_regs *regs)
{
struct pt_regs *old_regs = set_irq_regs(regs);

if (WARN_ON(irq == -1))
return;

exit_idle();
irq_enter();

//printk("cpu %d handling irq %d\n", smp_processor_id(), info->irq);
handle_irq(irq, regs);

irq_exit();

set_irq_regs(old_regs);
}

/*
* Search the CPUs pending events bitmasks. For each one found, map
* the event number to an irq, and feed it into do_IRQ() for
Expand All @@ -626,11 +607,15 @@ static void xen_do_irq(unsigned irq, struct pt_regs *regs)
void xen_evtchn_do_upcall(struct pt_regs *regs)
{
int cpu = get_cpu();
struct pt_regs *old_regs = set_irq_regs(regs);
struct shared_info *s = HYPERVISOR_shared_info;
struct vcpu_info *vcpu_info = __get_cpu_var(xen_vcpu);
static DEFINE_PER_CPU(unsigned, nesting_count);
unsigned count;

exit_idle();
irq_enter();

do {
unsigned long pending_words;

Expand All @@ -654,7 +639,8 @@ void xen_evtchn_do_upcall(struct pt_regs *regs)
int port = (word_idx * BITS_PER_LONG) + bit_idx;
int irq = evtchn_to_irq[port];

xen_do_irq(irq, regs);
if (irq != -1)
handle_irq(irq, regs);
}
}

Expand All @@ -665,6 +651,9 @@ void xen_evtchn_do_upcall(struct pt_regs *regs)
} while(count != 1);

out:
irq_exit();
set_irq_regs(old_regs);

put_cpu();
}

Expand Down

0 comments on commit 611d728

Please sign in to comment.