spurious.c (6954b75b488dd740950573f244ddd66fd28620aa) | spurious.c (009b4c3b8ad584b3462734127a5bec680d5d6af4) |
---|---|
1/* 2 * linux/kernel/irq/spurious.c 3 * 4 * Copyright (C) 1992, 1998-2004 Linus Torvalds, Ingo Molnar 5 * 6 * This file contains spurious interrupt handling. 7 */ 8 --- 31 unchanged lines hidden (view full) --- 40 if (WARN_ONCE(irq_poll_cpu == smp_processor_id(), 41 "irq poll in progress on cpu %d for irq %d\n", 42 smp_processor_id(), desc->irq_data.irq)) 43 return false; 44 45#ifdef CONFIG_SMP 46 do { 47 raw_spin_unlock(&desc->lock); | 1/* 2 * linux/kernel/irq/spurious.c 3 * 4 * Copyright (C) 1992, 1998-2004 Linus Torvalds, Ingo Molnar 5 * 6 * This file contains spurious interrupt handling. 7 */ 8 --- 31 unchanged lines hidden (view full) --- 40 if (WARN_ONCE(irq_poll_cpu == smp_processor_id(), 41 "irq poll in progress on cpu %d for irq %d\n", 42 smp_processor_id(), desc->irq_data.irq)) 43 return false; 44 45#ifdef CONFIG_SMP 46 do { 47 raw_spin_unlock(&desc->lock); |
48 while (desc->status & IRQ_INPROGRESS) | 48 while (desc->istate & IRQS_INPROGRESS) |
49 cpu_relax(); 50 raw_spin_lock(&desc->lock); | 49 cpu_relax(); 50 raw_spin_lock(&desc->lock); |
51 } while (desc->status & IRQ_INPROGRESS); | 51 } while (desc->istate & IRQS_INPROGRESS); |
52 /* Might have been disabled in meantime */ 53 return !(desc->status & IRQ_DISABLED) && desc->action; 54#else 55 return false; 56#endif 57} 58 59 --- 23 unchanged lines hidden (view full) --- 83 * first. Check for action->next as well. 84 */ 85 action = desc->action; 86 if (!action || !(action->flags & IRQF_SHARED) || 87 (action->flags & __IRQF_TIMER) || !action->next) 88 goto out; 89 90 /* Already running on another processor */ | 52 /* Might have been disabled in meantime */ 53 return !(desc->status & IRQ_DISABLED) && desc->action; 54#else 55 return false; 56#endif 57} 58 59 --- 23 unchanged lines hidden (view full) --- 83 * first. Check for action->next as well. 84 */ 85 action = desc->action; 86 if (!action || !(action->flags & IRQF_SHARED) || 87 (action->flags & __IRQF_TIMER) || !action->next) 88 goto out; 89 90 /* Already running on another processor */ |
91 if (desc->status & IRQ_INPROGRESS) { | 91 if (desc->istate & IRQS_INPROGRESS) { |
92 /* 93 * Already running: If it is shared get the other 94 * CPU to go looking for our mystery interrupt too 95 */ 96 desc->status |= IRQ_PENDING; 97 goto out; 98 } 99 --- 248 unchanged lines hidden --- | 92 /* 93 * Already running: If it is shared get the other 94 * CPU to go looking for our mystery interrupt too 95 */ 96 desc->status |= IRQ_PENDING; 97 goto out; 98 } 99 --- 248 unchanged lines hidden --- |