Re: [PATCH v3 2/4] genirq: Inform handler about line sharing state

From: Jan Kiszka
Date: Tue Dec 14 2010 - 18:01:26 EST


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