Bug 499
Summary: | error linking kernel, cs4232_pnp_remove | ||
---|---|---|---|
Product: | Drivers | Reporter: | Burton Windle (bwindle-kbt) |
Component: | Sound(ALSA) | Assignee: | Bugme Janitors Team (bugme-janitors) |
Status: | CLOSED CODE_FIX | ||
Severity: | low | ||
Priority: | P2 | ||
Hardware: | i386 | ||
OS: | Linux | ||
Kernel Version: | 2.5.66-bk1 | Subsystem: | |
Regression: | --- | Bisected commit-id: |
Description
Burton Windle
2003-03-25 08:02:34 UTC
razor:/giant/linux# ./reference_discarded.pl Finding objects, 655 objects, ignoring 0 module(s) Finding conglomerates, ignoring 78 conglomerate(s) Scanning objects Error: ./sound/oss/cs4232.o .text refers to 00000113 R_386_PC32 .exit.text Done Date: Tue, 25 Mar 2003 23:11:32 +0100 From: Daniel Ritz <daniel.ritz@gmx.ch> To: Linus Torvalds <torvalds@transmeta.com> Cc: linux-kernel <linux-kernel@vger.kernel.org>, bwindle-kbt@fint.org Subject: [PATCH 2.5] fix OSS cs4232 linking when compiled-in hi this patch fixes the linking of sound/oss/cs4232.c. unload_cs4232 can't be __exit since it's called from cs_4232_pnp_remove which isn't __exit. against 2.5.66-bk. please apply. [fixes bugzilla.kernel.org #499] rgds -daniel ===== sound/oss/cs4232.c 1.10 vs edited ===== --- 1.10/sound/oss/cs4232.c Wed Feb 26 11:52:04 2003 +++ edited/sound/oss/cs4232.c Tue Mar 25 22:55:07 2003 @@ -313,7 +313,7 @@ } } -static void __exit unload_cs4232(struct address_info *hw_config) +static void unload_cs4232(struct address_info *hw_config) { int base = hw_config->io_base, irq = hw_config->irq; int dma1 = hw_config->dma, dma2 = hw_config->dma2; Alternatively, we could also do this. Any objections? Thanks, Adam --- a/sound/oss/cs4232.c 2003-03-24 22:00:48.000000000 +0000 +++ b/sound/oss/cs4232.c 2003-04-08 19:44:57.000000000 +0000 @@ -406,7 +406,7 @@ MODULE_DEVICE_TABLE(pnp, cs4232_pnp_table); -static int cs4232_pnp_probe(struct pnp_dev *dev, const struct pnp_device_id *dev_id) +static int __init cs4232_pnp_probe(struct pnp_dev *dev, const struct pnp_device_id *dev_id) { struct address_info *isapnpcfg; @@ -428,7 +428,7 @@ return 0; } -static void cs4232_pnp_remove(struct pnp_dev *dev) +static void __exit cs4232_pnp_remove(struct pnp_dev *dev) { struct address_info *cfg = pnp_get_drvdata(dev); if (cfg) { @@ -441,7 +441,7 @@ .name = "cs4232", .id_table = cs4232_pnp_table, .probe = cs4232_pnp_probe, - .remove = cs4232_pnp_remove, + .remove = __exit_p(cs4232_pnp_remove), }; static int __init init_cs4232(void) Fixed as of 2.5.67-bk2 (Thanks Alan Cox! :) ) |