Messages in this thread Patch in this message | | | Date | Wed, 04 Dec 2002 19:34:52 -0500 | From | Jeff Garzik <> | Subject | [BK PATCH] add __exit_p to complement __devexit_p |
| |
Full GNU patch attached after description for easy review Linus, please do a
bk pull bk://kernel.bkbits.net/jgarzik/exitp-2.5
This will update the following files:
drivers/net/tulip/de2104x.c | 3 +-- include/linux/init.h | 13 ++++++++++++- 2 files changed, 13 insertions(+), 3 deletions(-)
through these ChangeSets:
<wli@holomorphy.com> (02/12/02 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 <linux/init.h> (2) add the unused attributed to __exit routines for non-modules (3) use __exit_p() to refer to de_remove_one()
# -------------------------------------------- # 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 <linux/init.h> # (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 */ | |