Am 14.12.2010 22:46, Thomas Gleixner wrote: > On Mon, 13 Dec 2010, Jan Kiszka wrote: >> From: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> >> chip_bus_lock(desc); >> retval = __setup_irq(irq, desc, action); >> chip_bus_sync_unlock(desc); >> >> - if (retval) >> + if (retval) { >> + if (desc->action && !desc->action->next) >> + desc->irq_data.drv_status &= ~IRQS_SHARED; > > This is redundant. IRQS_SHARED gets set in a code path where all > checks are done already. Nope, it's also set before entry of __setup_irq in case we call an IRQF_ADAPTIVE handler. We need to set it that early as we may race with IRQ events for the already registered handler happening between the sharing notification and the actual registration of the second handler. Jan
Attachment:
signature.asc
Description: OpenPGP digital signature