Subject: Re: [PATCH] fix smc911x compilation breakage

From: Russell King <[email-masked]>
Date: Sun, 29 Apr 2007 09:05:12 +0100

On Sat, Apr 28, 2007 at 10:10:57PM +0400, Vitaly Wool wrote:
> Hello Jeff,
> 
> > Vitaly Wool wrote:
> > > Index: linux-2.6/drivers/net/smc911x.c
> > > ===================================================================
> > > --- linux-2.6.orig/drivers/net/smc911x.c
> > > +++ linux-2.6/drivers/net/smc911x.c
> > > @@ -75,9 +75,9 @@ static const char version[] =
> > >  #include <linux/netdevice.h>
> > >  #include <linux/etherdevice.h>
> > >  #include <linux/skbuff.h>
> > > +#include <linux/irq.h>
> > >  
> > >  #include <asm/io.h>
> > > -#include <asm/irq.h>
> > >  
> > >  #include "smc911x.h"
> > 
> > This seems to clash with rmk's comment at the top of linux/irq.h?
> 
> In a way, yes, but I just was fixing the compilation problem, and not
> changing the logic in any way. The driver currently calls set_irq_type
> so it has to include linux/irq.h, just as it had to include asm/irq.h
> before.
> 
> I'd guess that set_irq_type better be called by generic code and either
> just make the driver don't even bother or call a callback set by
> platform part. If you're fine with any of these, and think it's better
> than the initial patch, please let me know and I'll proceed with that.

Drivers should really be using IRQF_TRIGGER_* constants, not set_irq_type()
unless they have a very good reason.  I doubt this driver has such a
reason, and it's just coded for an older version of the ARM IRQ API.

-- 
Russell King
 Linux kernel    2.6 ARM Linux   - http://www.arm.linux.org.uk/
 maintainer of: