[2.4 patch] cmpci oops on rmmod + fix

From: Adrian Bunk
Date: Sat Jul 17 2004 - 15:08:19 EST


Below is a patch originally sent against 2.6 by
Krzysztof Rusocki <kszysiu@xxxxxxxxxxxxxxxxxxxx> (and already included
in 2.6.8-rc1).

His explanation of the patch was:

<-- snip -->

The cmpci driver included in Linux 2.6.7 causes an oops on rmmod,
I believe cm_remove should be marked __devexit rather than __devinit.

<-- snip -->


This is an obvious bug, and below is my backport of his fix to 2.4 .
While I was editing struct cm_driver, I've also converted it to C99
initializers (as already done in 2.6).


Signed-off-by: Adrian Bunk <bunk@xxxxxxxxx>

--- linux-2.4.27-rc3-full/drivers/sound/cmpci.c.old 2004-07-17 21:56:28.000000000 +0200
+++ linux-2.4.27-rc3-full/drivers/sound/cmpci.c 2004-07-17 21:57:22.000000000 +0200
@@ -3595,7 +3595,7 @@
MODULE_DESCRIPTION("CM8x38 Audio Driver");
MODULE_LICENSE("GPL");

-static void __devinit cm_remove(struct pci_dev *dev)
+static void __devexit cm_remove(struct pci_dev *dev)
{
struct cm_state *s = pci_get_drvdata(dev);

@@ -3643,10 +3643,10 @@
MODULE_DEVICE_TABLE(pci, id_table);

static struct pci_driver cm_driver = {
- name: "cmpci",
- id_table: id_table,
- probe: cm_probe,
- remove: cm_remove
+ .name = "cmpci",
+ .id_table = id_table,
+ .probe = cm_probe,
+ .remove = __devexit_p(cm_remove)
};

static int __init init_cmpci(void)

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/