[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)