We get regular portability bugs when somebody decides to include
linux/irq.h into a driver instead of asm/irq.h. It's almost always a
wrong thing to do and, in fact, causes immediate breakage on e.g. arm.
Here's what I'm going to do:
* check current includes of linux/irq.h; e.g. in arch/x86_64 all but two
had been 100% useless, one should've been asm/irq.h and one - asm/irq.h +
asm/hw_irq.h. The only legitimate user of linux/irq.h on amd64 was
asm/hardirq.h.
Situation elsewhere in arch/* is similar - most of includes are not needed
at all.
* remove bogus includes, arch by arch for architectures that live in main
tree. Switch ones that should've been asm/irq.h to that form.
* put the current contents of linux/irq.h to asm-generic/hardirq.h (which
is what it really is - declarations for hardirq code, relevant on many but
not all platforms).
* switch remaining users of linux/irq.h to asm-generic/hardirq.h (again, for
architectures that live in main tree)
* replace contents of linux/irq.h with #warning and
#include <asm-generic/hardirq.h>.
* after 2.6.14 kill linux/irq.h completely.
Objections? That variant leaves out-of-tree folks with window until
2.6.15 to convert and that's really more than enough...
On Fri, 9 Sep 2005 [email protected] wrote:
> We get regular portability bugs when somebody decides to include
> linux/irq.h into a driver instead of asm/irq.h. It's almost always a
> wrong thing to do and, in fact, causes immediate breakage on e.g. arm.
Wouldn't it be more logical to make linux/irq.h the preferred include?
Usually the linux/* versions are preferred over the asm/* versions.
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
On Sun, Sep 11, 2005 at 09:50:38AM +0200, Geert Uytterhoeven wrote:
> On Fri, 9 Sep 2005 [email protected] wrote:
> > We get regular portability bugs when somebody decides to include
> > linux/irq.h into a driver instead of asm/irq.h. It's almost always a
> > wrong thing to do and, in fact, causes immediate breakage on e.g. arm.
>
> Wouldn't it be more logical to make linux/irq.h the preferred include?
> Usually the linux/* versions are preferred over the asm/* versions.
There's almost no reason to want <*/irq.h> in the first place. Almost
all drivers really want <linux/interrupt.h>
On Thu, Sep 15, 2005 at 10:34:55AM -0600, Matthew Wilcox wrote:
> On Sun, Sep 11, 2005 at 09:50:38AM +0200, Geert Uytterhoeven wrote:
> > On Fri, 9 Sep 2005 [email protected] wrote:
> > > We get regular portability bugs when somebody decides to include
> > > linux/irq.h into a driver instead of asm/irq.h. It's almost always a
> > > wrong thing to do and, in fact, causes immediate breakage on e.g. arm.
> >
> > Wouldn't it be more logical to make linux/irq.h the preferred include?
> > Usually the linux/* versions are preferred over the asm/* versions.
>
> There's almost no reason to want <*/irq.h> in the first place. Almost
> all drivers really want <linux/interrupt.h>
The only exception I can think of is for ARM where we supplement the
Linux interrupt API to deal with our configurable interrupt sources
(high level/low level/rising edge/falling edge triggers) on
certain platform groups.
--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of: 2.6 Serial core
On Thu, Sep 15, 2005 at 10:34:55AM -0600, Matthew Wilcox wrote:
> On Sun, Sep 11, 2005 at 09:50:38AM +0200, Geert Uytterhoeven wrote:
> > On Fri, 9 Sep 2005 [email protected] wrote:
> > > We get regular portability bugs when somebody decides to include
> > > linux/irq.h into a driver instead of asm/irq.h. It's almost always a
> > > wrong thing to do and, in fact, causes immediate breakage on e.g. arm.
> >
> > Wouldn't it be more logical to make linux/irq.h the preferred include?
> > Usually the linux/* versions are preferred over the asm/* versions.
>
> There's almost no reason to want <*/irq.h> in the first place. Almost
> all drivers really want <linux/interrupt.h>
Umm, no. <linux/interrupt.h> doesn't include <asm/irq.h> and variours
achitectures have important prototypes in there.