Re: [PATCH] net:ethernet:korina.c Removed IRQF_DISABLED

Peter Senna Tschudin
2013-08-09T15:53:30Z

Hi Joe,

On Fri, Aug 9, 2013 at 5:14 PM, Joe Perches <joe@perches.com> wrote:
> On Fri, 2013-08-09 at 15:15 +0200, Peter Senna Tschudin wrote:
>> Coccinelle (http://coccinelle.lip6.fr/) can help you in this task. The
>> semantic patch below takes care of both cases for you:
>
> Hi Peter & Kumar
>
> Coccinelle (aka: spatch) is a good/great way to do this.
>
> (btw Peter, your email was whitespace damaged)
Sorry for that, my fault. I've composed the E-mail using mutt, but
sent it using gmail web interface.

>
> Peter's useful conversion won't find/convert cases where
> IRQF_DISABLED is used in a #define like:
>
>> diff --git a/drivers/net/ethernet/micrel/ks8851_mll.c b/drivers/net/ethernet/micrel/ks8851_mll.c
>> []
>> @@ -915,7 +915,7 @@ static int ks_net_open(struct net_device *netdev)
>> []
>> -#define KS_INT_FLAGS (IRQF_DISABLED|IRQF_TRIGGER_LOW)
>> +#define KS_INT_FLAGS (IRQF_TRIGGER_LOW)

Coccinelle works with macros, the problem in this specific case, is
that the #define is inside a function, and due that it is ignored by
Coccinelle. If you move the #define to outside of the function or try
running spatch on ethernet/smsc/smc91x.h, you see the transformation
on the macro definition.

But, I would prefer to remove this define instead of patching it,
seems to make more sense to me.

Thanks!

--
Peter