Messages in this thread | | | Date | Wed, 15 Dec 2010 09:05:04 +0100 (CET) | From | Thomas Gleixner <> | Subject | Re: [PATCH v3 2/4] genirq: Inform handler about line sharing state |
| |
On Wed, 15 Dec 2010, Jan Kiszka wrote:
> Am 14.12.2010 22:46, Thomas Gleixner wrote: > > On Mon, 13 Dec 2010, Jan Kiszka wrote: > >> From: Jan Kiszka <jan.kiszka@siemens.com> > >> 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.
Hmm, ok. Though the MAKE_SHAREABLE flag should be sufficient to do the notification.
Thanks,
tglx
| |