2007-02-20 16:15:55

by Russell King

[permalink] [raw]
Subject: [PATCH] Fix USB Mon breakage

Never call __exit code from __init code - it causes errors such as:

arm-linux-ld: `mon_bin_exit' referenced in section `.init.text' of drivers/built-in.o: defined in discarded section `.exit.text' of drivers/built-in.o
arm-linux-ld: `mon_text_exit' referenced in section `.init.text' of drivers/built-in.o: defined in discarded section `.exit.text' of drivers/built-in.o

Signed-off-by: Russell King <[email protected]>
---
drivers/usb/mon/mon_bin.c | 2 +-
drivers/usb/mon/mon_text.c | 2 +-
drivers/usb/mon/usb_mon.h | 4 ++--
3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/usb/mon/mon_bin.c b/drivers/usb/mon/mon_bin.c
index c01dfe6..b2bedd9 100644
--- a/drivers/usb/mon/mon_bin.c
+++ b/drivers/usb/mon/mon_bin.c
@@ -1165,7 +1165,7 @@ err_dev:
return rc;
}

-void __exit mon_bin_exit(void)
+void mon_bin_exit(void)
{
cdev_del(&mon_bin_cdev);
unregister_chrdev_region(mon_bin_dev0, MON_BIN_MAX_MINOR);
diff --git a/drivers/usb/mon/mon_text.c b/drivers/usb/mon/mon_text.c
index d38a127..494ee3b 100644
--- a/drivers/usb/mon/mon_text.c
+++ b/drivers/usb/mon/mon_text.c
@@ -520,7 +520,7 @@ int __init mon_text_init(void)
return 0;
}

-void __exit mon_text_exit(void)
+void mon_text_exit(void)
{
debugfs_remove(mon_dir);
}
diff --git a/drivers/usb/mon/usb_mon.h b/drivers/usb/mon/usb_mon.h
index 4f949ce..efdfd89 100644
--- a/drivers/usb/mon/usb_mon.h
+++ b/drivers/usb/mon/usb_mon.h
@@ -57,9 +57,9 @@ void mon_text_del(struct mon_bus *mbus);
// void mon_bin_add(struct mon_bus *);

int __init mon_text_init(void);
-void __exit mon_text_exit(void);
+void mon_text_exit(void);
int __init mon_bin_init(void);
-void __exit mon_bin_exit(void);
+void mon_bin_exit(void);

/*
* DMA interface.


--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of:


2007-02-20 19:04:50

by Pete Zaitcev

[permalink] [raw]
Subject: Re: [PATCH] Fix USB Mon breakage

On Tue, 20 Feb 2007 16:15:41 +0000, Russell King <[email protected]> wrote:

> Never call __exit code from __init code - it causes errors such as:

Oh heh, just saw this now.

> Signed-off-by: Russell King <[email protected]>

I ack this. Greg, please either apply Dobriyan's patch, or this one,
they are the same.

-- Pete