static int try_one_irq(int irq, struct irq_desc *desc)
{
struct irqaction *action;
- int ok = 0;
- int work = 0; /* Did we do work for a real IRQ */
+ int ok = 0, work = 0;
spin_lock(&desc->lock);
/* Already running on another processor */
static int misrouted_irq(int irq)
{
- int i;
- int ok = 0;
+ struct irq_desc *desc;
+ int i, ok = 0;
- for (i = 1; i < NR_IRQS; i++) {
- struct irq_desc *desc = irq_desc + i;
+ for_each_irq_desc(i, desc) {
+ if (!i)
+ continue;
if (i == irq) /* Already tried */
continue;
static void poll_spurious_irqs(unsigned long dummy)
{
+ struct irq_desc *desc;
int i;
- for (i = 1; i < NR_IRQS; i++) {
- struct irq_desc *desc = irq_desc + i;
+
+ for_each_irq_desc(i, desc) {
unsigned int status;
+ if (!i)
+ continue;
+
/* Racy but it doesn't matter */
status = desc->status;
barrier();
try_one_irq(i, desc);
}
- mod_timer(&poll_spurious_irq_timer, jiffies + POLL_SPURIOUS_IRQ_INTERVAL);
+ mod_timer(&poll_spurious_irq_timer,
+ jiffies + POLL_SPURIOUS_IRQ_INTERVAL);
}
/*
}
}
-static inline int try_misrouted_irq(unsigned int irq, struct irq_desc *desc, irqreturn_t action_ret)
+static inline int
+try_misrouted_irq(unsigned int irq, struct irq_desc *desc,
+ irqreturn_t action_ret)
{
struct irqaction *action;
desc->depth++;
desc->chip->disable(irq);
- mod_timer(&poll_spurious_irq_timer, jiffies + POLL_SPURIOUS_IRQ_INTERVAL);
+ mod_timer(&poll_spurious_irq_timer,
+ jiffies + POLL_SPURIOUS_IRQ_INTERVAL);
}
desc->irqs_unhandled = 0;
}
__setup("irqfixup", irqfixup_setup);
module_param(irqfixup, int, 0644);
-MODULE_PARM_DESC("irqfixup", "0: No fixup, 1: irqfixup mode 2: irqpoll mode");
+MODULE_PARM_DESC("irqfixup", "0: No fixup, 1: irqfixup mode, 2: irqpoll mode");
static int __init irqpoll_setup(char *str)
{