# -------------------------------------------- # 02/12/02 wli@holomorphy.com 1.797.1.172 # Add __exit_p() to match existing __devexit_p(). # # This patch fixes de2104x net driver up by doing the following things: # (1) add __exit_p() to # (2) add the unused attributed to __exit routines for non-modules # (3) use __exit_p() to refer to de_remove_one() # -------------------------------------------- # diff -Nru a/drivers/net/tulip/de2104x.c b/drivers/net/tulip/de2104x.c --- a/drivers/net/tulip/de2104x.c Wed Dec 4 19:31:56 2002 +++ b/drivers/net/tulip/de2104x.c Wed Dec 4 19:31:56 2002 @@ -2217,8 +2217,7 @@ .name = DRV_NAME, .id_table = de_pci_tbl, .probe = de_init_one, -#warning only here to fix build. should be __exit_p not __devexit_p. - .remove = __devexit_p(de_remove_one), + .remove = __exit_p(de_remove_one), #ifdef CONFIG_PM .suspend = de_suspend, .resume = de_resume, diff -Nru a/include/linux/init.h b/include/linux/init.h --- a/include/linux/init.h Wed Dec 4 19:31:56 2002 +++ b/include/linux/init.h Wed Dec 4 19:31:56 2002 @@ -42,10 +42,15 @@ discard it in modules) */ #define __init __attribute__ ((__section__ (".init.text"))) #define __initdata __attribute__ ((__section__ (".init.data"))) -#define __exit __attribute__ ((__section__(".exit.text"))) #define __exitdata __attribute__ ((__section__(".exit.data"))) #define __exit_call __attribute__ ((unused,__section__ (".exitcall.exit"))) +#ifdef MODULE +#define __exit __attribute__ ((__section__(".exit.text"))) +#else +#define __exit __attribute__ ((unused,__section__(".exit.text"))) +#endif + /* For assembly routines */ #define __INIT .section ".init.text","ax" #define __FINIT .previous @@ -183,6 +188,12 @@ #define __devexit_p(x) x #else #define __devexit_p(x) NULL +#endif + +#ifdef MODULE +#define __exit_p(x) x +#else +#define __exit_p(x) NULL #endif #endif /* _LINUX_INIT_H */