Hi,
Was wondering if I did not frame my question appropriately? Or it there a
better place to discuss this?
Thanks,
Rajat
>
> This is regarding the following code in kernel/irq/handle.c. Consider
> the case of a shared IRQ line, where two handlers are registered such
> that first handler does not specify IRQF_DISABLED, but the second one
> does. But it seems both the handlers will be called IRQs ENABLED
> (which is certainly not what the second handler expects).
>
> I also checked but could not find anything that stops me from
> registering two shared ISRs - one with IRQF_DISABLED & another
> without this flag. Am I missing something here?
>
> irqreturn_t handle_IRQ_event(unsigned int irq, struct irqaction
> *action) {
> irqreturn_t ret, retval = IRQ_NONE;
> unsigned int status = 0;
>
> handle_dynamic_tick(action);
>
> if (!(action->flags & IRQF_DISABLED))
> local_irq_enable_in_hardirq();
>
> do {
> ret = action->handler(irq, action->dev_id);
> if (ret == IRQ_HANDLED)
> status |= action->flags;
> retval |= ret;
> action = action->next;
> } while (action);
>
> if (status & IRQF_SAMPLE_RANDOM)
> add_interrupt_randomness(irq);
> local_irq_disable();
>
> return retval;
> }
>
> Thanks,
>
> Rajat
-
To unsubscribe from this list: send the line "unsubscribe linux-newbie" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.linux-learn.org/faqs