[PATCH] (-mm) drivers/pci/msi: explicit declaration of msi_register
From: Jun'ichi Nomura
Date: Tue Mar 14 2006 - 15:56:50 EST
Hello,
In 2.6.16-rc6-mm1, I've seen tons of compiler warnings on ia64:
include2/asm/msi.h: In function `ia64_msi_init':
include2/asm/msi.h:23: warning: implicit declaration of function `msi_register'
In file included from include2/asm/machvec.h:408,
from include2/asm/io.h:70,
from include2/asm/smp.h:20,
from /build/rc6/source/include/linux/smp.h:22,
The problem is that msi_register() is used in ia64_msi_init()
without declaration.
Since ia64_msi_init() is a part of machine vector, most of files
hit this warning and may hide other important messages.
Other than ia64, i386 and x86_64 have similar msi.h.
But they are not affected since include/asm/msi.h isn't
included without drivers/pci/pci.h where msi_register() is
declared.
The attached patch fixes this specific problem.
Proper fix might be moving the declaration in common header
but including something from machvec.h causes a lot of other
problems, so it would be nice if someone have better idea on this.
Thanks,
--
Jun'ichi Nomura, NEC Solutions (America), Inc.
Declare msi_register() in msi.h.
The patch is especially necessary for ia64 on which most of files
emit compiler warnings like below:
include2/asm/msi.h: In function `ia64_msi_init':
include2/asm/msi.h:23: warning: implicit declaration of function `msi_register'
In file included from include2/asm/machvec.h:408,
from include2/asm/io.h:70,
from include2/asm/smp.h:20,
from /build/rc6/source/include/linux/smp.h:22,
Signed-off-by: Jun'ichi Nomura <j-nomura@xxxxxxxxxxxxx>
--- linux-2.6.16-rc6-mm1.orig/include/asm-ia64/msi.h 2006-03-14 13:54:11.000000000 -0500
+++ linux-2.6.16-rc6-mm1/include/asm-ia64/msi.h 2006-03-14 14:05:26.000000000 -0500
@@ -15,6 +15,7 @@ static inline void set_intr_gate (int nr
#define MSI_TARGET_CPU_SHIFT 4
extern struct msi_ops msi_apic_ops;
+extern int msi_register(struct msi_ops *);
/* default ia64 msi init routine */
static inline int ia64_msi_init(void)