Re: [PATCH 1/2] irqdomain: fix irq_domain_xlate_onetwocell()

From: Thomas Gleixner
Date: Thu Aug 04 2016 - 06:30:40 EST


On Tue, 2 Aug 2016, Sebastian Frias wrote:

> Use IRQ_TYPE_SENSE_MASK on irq_domain_xlate_onetwocell()
>
> According to the xlate() callback definition, the 'out_type' parameter
> needs to be the "linux irq type". A mask for such bits exists,
> IRQ_TYPE_SENSE_MASK, and as a matter of fact it is used in
> irq_domain_xlate_twocell(), use it for irq_domain_xlate_onetwocell() as
> well.
>
> Fixes: 16b2e6e2f31d ("irq_domain: Create common xlate functions that device
> drivers can use")

You seem to be obsessed by adding "Fixes" tags and 'Fix' to the $subject, but
your changelog just babbles about making the code the same as in
irq_domain_xlate_twocell() and avoids carefully to explain what is broken,
what consequences that has and what the fix is.

Now if you look at the call site which uses the xlate functions then you'll
notice that we have a sanity check there already:

if (irq_domain_translate(domain, fwspec, &hwirq, &type))
return 0;
/*
* WARN if the irqchip returns a type with bits
* outside the sense mask set and clear these bits.
*/
if (WARN_ON(type & ~IRQ_TYPE_SENSE_MASK))
type &= IRQ_TYPE_SENSE_MASK;

So we better remove the masking in the xlate functions completely and let all
the offending device trees trip over the warning so they get eventually fixed.

Thanks,

tglx