Re: [PATCH 1/3] msi vector targeting abstractions
From: Jun'ichi Nomura <hidden>
Date: 2006-03-21 16:28:08
Also in:
lkml
Hi Mark, Mark Maule wrote:
quoted hunk ↗ jump to hunk
Index: linux-2.6.16/include/asm-ia64/msi.h ===================================================================--- linux-2.6.16.orig/include/asm-ia64/msi.h 2006-03-19 23:53:29.000000000 -0600 +++ linux-2.6.16/include/asm-ia64/msi.h 2006-03-20 14:50:53.331368084 -0600@@ -14,4 +14,16 @@ #define ack_APIC_irq ia64_eoi #define MSI_TARGET_CPU_SHIFT 4 +extern struct msi_ops msi_apic_ops; + +static inline int msi_arch_init(void) +{ + if (platform_msi_init) + return platform_msi_init(); + + /* default ops for most ia64 platforms */ + msi_register(&msi_apic_ops); + return 0; +} + #endif /* ASM_MSI_H */
It turned out that the above code breaks configs other
than CONFIG_IA64_SN and CONFIG_IA64_GENERIC.
e.g. CONFIG_IA64_DIG.
In file included from /build/16.msi/drivers/pci/msi.h:71,
from /build/16.msi/drivers/pci/msi.c:24:
include2/asm/msi.h: In function `msi_arch_init':
include2/asm/msi.h:22: error: called object is not a function
make[3]: *** [drivers/pci/msi.o] Error 1
Something like below might fix this problem:
if (platform_msi_init) {
ia64_mv_msi_init_t *fn = platform_msi_init;
return (*fn)();
}
Thanks,
--
Jun'ichi Nomura, NEC Solutions (America), Inc.