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)
![]() |