mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-01-05 22:36:23 -05:00
xen: make sure retriggered events are set pending
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>
This commit is contained in:
committed by
Ingo Molnar
parent
ee523ca1e4
commit
ee8fa1c67f
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user