Re: [PATCH] Free setup_irq() interrupt V2

From: Magnus Damm
Date: Tue Mar 10 2009 - 22:33:49 EST


On Wed, Mar 11, 2009 at 12:33 AM, Ingo Molnar <mingo@xxxxxxx> wrote:
>> On Tue, 10 Mar 2009, Ingo Molnar wrote:
>> > * Thomas Gleixner <tglx@xxxxxxxxxxxxx> wrote:
>> > > On Tue, 10 Mar 2009, Magnus Damm wrote:
>> > > > From: Magnus Damm <damm@xxxxxxxxxx>
>> > > > This patch adds a __free_irq() function for releasing
>> > > > interrupts requested with setup_irq().
>> > >
>> > > I think there is a simpler solution than adding yet another
>> > > function for the confusion of driver writers. See below.
>> >
>> > Uhm, i asked for that solution ;-)
>>
>> Uhm, I missed that :)

Thomas, your suggestion is quite similar to V1. =)

>> I can live with the two functions as well, but then please let us use
>> a function name which is more intuitive than __free_irq().
>>
>> setup_irq()   -> remove_irq()
>> request_irq() -> free_irq()
>
> Sure, that's fine with me.
>
> I almost suggested shutdown_irq() to Magnus originally, then
> went for __free_irq().

How about this change for V2:

Keep __free_irq() but make it static. Let free_irq() and a new
remove_irq() function call __free_irq(). This makes the free functions
similar to setup_irq(), __setup_irq() and request_irq(). The new
remove_irq() function takes interrupt number and a struct irqaction
pointer as arguments - this to match setup_irq().

Sounds ok? If so I'll fix up and repost a V3 against the tip tree.

While at it, what about exporting the setup_irq() and remove_irq() symbols?

You probably dislike it since it may confuse people. I'd like to
export these functions since I have timer code that needs to use
setup_irq() early on (too early for request_irq()), and the same code
can also be compiled as a module. The solution so far has been using
setup_irq()/remove_irq(), but you may have some better suggestions?

Thanks for your help!

Cheers,

/ magnus
--
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/