Messages in this thread | | | Date | Sat, 23 Sep 2006 21:54:35 +0100 | From | Al Viro <> | Subject | Re: [PATCH] missing includes from infiniband merge |
| |
On Sat, Sep 23, 2006 at 09:36:05PM +0100, Al Viro wrote: > On Sat, Sep 23, 2006 at 10:29:12PM +0200, Sam Ravnborg wrote: > > On Sat, Sep 23, 2006 at 04:44:16PM +0100, Al Viro wrote: > > > indirect chains of includes are arch-specific and can't > > > be relied upon... (hell, even attempt to build it for > > > itanic would trigger vmalloc.h ones; err.h triggers > > > on e.g. alpha). > > > > > > Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> > > > --- > > > drivers/infiniband/core/mad_priv.h | 1 + > > > drivers/infiniband/hw/amso1100/c2_provider.c | 1 + > > > drivers/infiniband/hw/amso1100/c2_rnic.c | 1 + > > > drivers/infiniband/hw/ipath/ipath_diag.c | 1 + > > > 4 files changed, 4 insertions(+), 0 deletions(-) > > A better fix would be to avoid the arch dependency in the non-arch .h > > files so that in most cases it just works?? > > What "it"? Use of vmalloc() without including vmalloc.h since on i386 > it just happens to be pulled via the > linux/pci.h -> linux/dmapool.h -> asm-i386/io.h -> linux/vmalloc.h > chain?
BTW, to do what you suggest we would mean the following:
let H(arch,foo) = {bar | asm-arch/foo.h pulls asm-arch/bar.h via chain that doesn't include linux/*} let M(arch,foo) = {baz | asm-arch/bar.h includes linux/baz.h for some bar in H(arch,foo)} let L(foo) = union of M(arch,foo) by all arch. make sure that for each arch and for each bar in L(foo) we have asm-arch/foo.h pulling linux/bar.h
Have fun doing that and maintaining the results. Note that addition of include between asm-weird-crap/foo.h and asm-weird-crap/bar.h will require changes all over the place in asm-*/* - not only for asm-*/foo.h.
It won't be pretty, it will be hell to even try to clean dependencies _and_ it will break all the time due to ordering requirements. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |