Re: [patch 15/18] PNP: support optional IRQ resources

Rene Herman
2008-06-16T16:26:34Z

On 16-06-08 17:41, Bjorn Helgaas wrote:

>>> @@ -176,33 +184,10 @@ static void quirk_ad1815_mpu_resources(s
>>> if (!irq || irq->next)
>>> return;
>>>
>>> - res = dev->dependent;
>>> - if (!res)
>>> - return;
>>> -
>>> - while (1) {
>>> - struct pnp_irq *copy;
>>> -
>>> - copy = pnp_alloc(sizeof *copy);
>>> - if (!copy)
>>> - break;
>>> -
>>> - bitmap_copy(copy->map.bits, irq->map.bits, PNP_IRQ_NR);
>>> - copy->flags = irq->flags;
>>> -
>>> - copy->next = res->irq; /* Yes, this is NULL */
>>> - res->irq = copy;
>>> -
>>> - if (!res->next)
>>> - break;
>>> - res = res->next;
>>> - }
>>> - kfree(irq);
>>> + irq->flags |= IORESOURCE_IRQ_OPTIONAL;
>>> + dev_info(&dev->dev, "made independent IRQ optional\n");
>>>
>>> res->next = quirk_isapnp_mpu_options(dev);
>>
>> ... this line should just go.
>
> You mean I should delete the "res->next = quirk_isapnp_mpu_options(dev)"
> line?

Yes. With the optional flag, ad1815 doesn't need the cloning and due to
the below it's actively wrong at this point in the series.

>> Previously "res" ended up as the last dependent set through the while
>> loop but now it's the independendent set which in this previous setup of
>> things shouldn't even have a ->next. Just deleting this line makes this
>> patch fine and
>>
>> Acked-by: Rene Herman <rene.herman@gmail.com>
>
> OK. This will mean replacing patches 15 and 18 in this series. If
> I repost those two, is that easy for you to deal with, Andrew?
>
> If I replace these, I'll also update patch 18 to fix the
> pnp_independent_option() comment Rene made.

Rene.