mirror of https://gitee.com/openkylin/linux.git
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:
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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue