On Feb 2, 2008 1:33 PM, Li Zefan <
lizf@xxxxxxxxxxxxxx> wrote:
> sounds like symbol name's conflict? maybe it happens during linking
> stage..that is a spesific name is assigned to two ELF section. Just a
> raw guess...you've been warned.
>
From what I can read in include/linux/init.h, modpost is responsible for doing the symbol matching......meaning ....__init must call into __init, but if you call into non-__init function from __init, it is allowed (please correct me?), as after initialization the non-__init function will still remained in memory. But not the other way round. And that is what modpost is checking for, correct?
> try to grep inside the C file...did you see something that defines a
> section there?
>
Please try this patch which I just posted to LKML:
---
drivers/net/sis190.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/net/sis190.c b/drivers/net/sis190.c
index b570402..e48e4ad 100644
--- a/drivers/net/sis190.c
+++ b/drivers/net/sis190.c
@@ -326,7 +326,7 @@ static const struct {
{ "SiS 191 PCI Gigabit Ethernet adapter" },
};
-static struct pci_device_id sis190_pci_tbl[] __devinitdata = {
+static const struct pci_device_id sis190_pci_tbl[] __devinitdata = {
{ PCI_DEVICE(PCI_VENDOR_ID_SI, 0x0190), 0, 0, 0 },
{ PCI_DEVICE(PCI_VENDOR_ID_SI, 0x0191), 0, 0, 1 },
{ 0, },
-- 1.5.4.rc3