Re: [PATCH 00/15] Kill off set_irq_flags

Rob Herring
2015-06-09T21:23:34Z

On Tue, Jun 9, 2015 at 3:28 PM, Russell King - ARM Linux
<linux@arm.linux.org.uk> wrote:
> On Tue, Jun 09, 2015 at 01:26:26PM -0500, Rob Herring wrote:
>> This series converts all users of ARM specific set_irq_flags to use
>> common genirq functions. In many cases where irqdomains are used, the
>> set_irq_flags calls were redundant, so I've removed them.
>>
>> This is not intended for 4.2, but if any subsystem maintainers want to
>> pick up their subsystem's change that is fine. All but the last 2
>> patches stand on their own. Any new drivers going into 4.2 may need a
>> similar change, but I'm sure people are told not to use set_irq_flags in
>> reviews. ;)
>
> So what are you doing about the initial state of IRQs on legacy ARM where
> IRQs start off being un-requestable, and need the set_irq_flags() to make
> them requestable. I think you could be introducing a massive regression
> by making this change.

None of that changes. The initial state is set by ARCH_IRQ_INIT_FLAGS
which I've not changed:

#define ARCH_IRQ_INIT_FLAGS (IRQ_NOREQUEST | IRQ_NOPROBE)

> Unless you can prove that this isn't the case, you shouldn't be removing
> this stuff, especially not from legacy platforms.

set_irq_flags() only does a translation from custom ARM IRQF_* flags
to standard flags and then calls irq_modify_status(). This only
removes the translation and users set/clear standard flags directly.
It is a straight-forward removal of a wrapper function.

I *would* like to get rid of ARCH_IRQ_INIT_FLAGS and have the same
defaults across arches, but yes that would likely cause regressions.

Rob