s2io_rem_nic() is marked __exit and is being referred to from .data. Signed-off-by: Andrew Morton --- 25-akpm/drivers/net/s2io.c | 4 ++-- 25-akpm/drivers/net/s2io.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff -puN drivers/net/s2io.c~s2io-section-fix drivers/net/s2io.c --- 25/drivers/net/s2io.c~s2io-section-fix 2004-05-31 00:40:22.198341688 -0700 +++ 25-akpm/drivers/net/s2io.c 2004-05-31 00:45:22.190735912 -0700 @@ -238,7 +238,7 @@ static struct pci_driver s2io_driver = { name:"S2IO", id_table:s2io_tbl, probe:s2io_init_nic, - remove:s2io_rem_nic, + remove:__devexit_p(s2io_rem_nic), }; /* @@ -4355,7 +4355,7 @@ s2io_init_nic(struct pci_dev *pdev, cons * and free up all resource held up by the device. This could be in response * to a Hot plug event or when the driver is to be removed from memory. */ -static void __exit s2io_rem_nic(struct pci_dev *pdev) +static void __devexit s2io_rem_nic(struct pci_dev *pdev) { struct net_device *dev = (struct net_device *) pci_get_drvdata(pdev); diff -puN drivers/net/s2io.h~s2io-section-fix drivers/net/s2io.h --- 25/drivers/net/s2io.h~s2io-section-fix 2004-05-31 00:46:23.826365872 -0700 +++ 25-akpm/drivers/net/s2io.h 2004-05-31 00:46:34.786699648 -0700 @@ -825,7 +825,7 @@ static inline void writeq(u64 val, void */ static int __devinit s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre); -static void __exit s2io_rem_nic(struct pci_dev *pdev); +static void __devexit s2io_rem_nic(struct pci_dev *pdev); static int initSharedMem(struct s2io_nic *sp); static void freeSharedMem(struct s2io_nic *sp); static int initNic(struct s2io_nic *nic); _