summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam Ravnborg <sam@ravnborg.org>2008-01-22 04:25:37 +0300
committerDavid S. Miller <davem@davemloft.net>2008-01-22 09:34:31 +0300
commit2ad913babd5d597f9d9d71d9e93dd589d55e66cd (patch)
treec70c6d4f86f66eb3acb2ee5ecec95747c13ab78c
parenta1f35ba374bc421ab33e40163be2b57995b09962 (diff)
downloadlinux-2ad913babd5d597f9d9d71d9e93dd589d55e66cd.tar.xz
[SPARC64]: Fix section error in sparcspkr
With a sparc64 defconfig modified to set CONFIG_HOTPLUG=n the following error happened during link of vmlinux: local symbol 0: discarded in section `.devexit.text' from drivers/built-in.o local symbol 1: discarded in section `.devexit.text' from drivers/built-in.o (The error message above is from kbuild.git but it happens in mainline too) The error happens becase there is a reference from .text/.data to a function marked __devexit. With CONFIG_HOTPLUG=n all code marked __devexit are discarded and the linker complains. It was tracked down to sparcspkr.c which were missing __devexit_p() around the function pointers. Unfortunately modpost did not catch this since modpost do not warn about references from .data to .devexit from variables named *_driver. Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/input/misc/sparcspkr.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/input/misc/sparcspkr.c b/drivers/input/misc/sparcspkr.c
index a3637d870880..fed3c375ccf3 100644
--- a/drivers/input/misc/sparcspkr.c
+++ b/drivers/input/misc/sparcspkr.c
@@ -195,7 +195,7 @@ static struct of_platform_driver ebus_beep_driver = {
.name = "beep",
.match_table = ebus_beep_match,
.probe = ebus_beep_probe,
- .remove = sparcspkr_remove,
+ .remove = __devexit_p(sparcspkr_remove),
.shutdown = sparcspkr_shutdown,
};
@@ -236,7 +236,7 @@ static struct of_platform_driver isa_beep_driver = {
.name = "beep",
.match_table = isa_beep_match,
.probe = isa_beep_probe,
- .remove = sparcspkr_remove,
+ .remove = __devexit_p(sparcspkr_remove),
.shutdown = sparcspkr_shutdown,
};