Skip to content

Commit

Permalink
xen: make sure retriggered events are set pending
Browse files Browse the repository at this point in the history
retrigger_dynirq() was incomplete, and didn't properly set the event
to be pending again.  It doesn't seem to actually get used.

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
  • Loading branch information
Jeremy Fitzhardinge authored and Ingo Molnar committed Apr 24, 2008
1 parent ee523ca commit ee8fa1c
Showing 1 changed file with 7 additions and 1 deletion.
8 changes: 7 additions & 1 deletion arch/x86/xen/events.c
Original file line number Diff line number Diff line change
Expand Up @@ -601,10 +601,16 @@ static void ack_dynirq(unsigned int irq)
static int retrigger_dynirq(unsigned int irq)
{
int evtchn = evtchn_from_irq(irq);
struct shared_info *sh = HYPERVISOR_shared_info;
int ret = 0;

if (VALID_EVTCHN(evtchn)) {
set_evtchn(evtchn);
int masked;

masked = sync_test_and_set_bit(evtchn, sh->evtchn_mask);
sync_set_bit(evtchn, sh->evtchn_pending);
if (!masked)
unmask_evtchn(evtchn);
ret = 1;
}

Expand Down

0 comments on commit ee8fa1c

Please sign in to comment.