Re: [PATCH 04/15] x86/dtb: add irq domain abstraction

From: Sebastian Andrzej Siewior
Date: Sun Jan 23 2011 - 08:06:58 EST


* Grant Likely | 2011-01-11 15:03:17 [-0700]:

>> unsigned int irq_create_of_mapping(struct device_node *controller,
>> const u32 *intspec, unsigned int intsize)
>> {
>> - return intspec[0];
>> + struct irq_domain *ih;
>> + u32 virq;
>> + u32 type;
>> + int ret;
>>
>> + ih = get_ih_from_node(controller);
>> + if (!ih)
>> + return -ENODEV;
>
>Return value is an unsigned int. 0 or NO_IRQ is the correct thing to
>return if an IRQ cannot be mapped.
fixed.

>> + ret = ih->xlate(ih, intspec, intsize, &virq, &type);
>> + if (ret)
>> + return ret;
>
>Ditto here. xlate is also supposed to return a virq number, not an
>error code, so the failure condition must be "if (!ret)" or
are you sure on that? The relevant part of powerpc's
irq_create_of_mapping() looks like:

| if (host->ops->xlate(host, controller, intspec, intsize,
| &hwirq, &type))
| return NO_IRQ;

so xlate here returns 0 on success and hwirq via a pointer. I do the
same thing here except I return directly virq instead of
irq_hw_number_t. I add powerpc's irq_create_mapping() including virq <->
hwirq mapping once it is generic. I shouldn't need unless we use
non-ioapics are irq controllers.

>"if (reg == NO_IRQ)". The former is preferred since we're trying to
>eliminate references to NO_IRQ, not add more of them.
Okay. So try to get rid of NO_IRQ in my series.

Sebastian
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/