[4/12] unregister driver if probing fails in sb_card.c

From: William Lee Irwin III
Date: Sun Jun 13 2004 - 19:41:32 EST


* Unregister driver if probing fails in sound/oss/sb_card.c
This fixes Debian BTS #218845.
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=218845

From: Robin Gerard <robin.jag@xxxxxxx>
To: submit@xxxxxxxxxxxxxxx
Subject: no sound with kernel-image-2.6.0-test9-1-386
Message-ID: <20031103004939.GA2071@mauritius>

I downlaoded the kernel-image-2.6.0-test9-1-386_2.6.0-test9-1_i386.deb
and I installed it successfully. Everything works fine, except the sound.
(I run also the kernel-image-2.4.20 and the sound is ok with this kernel)
My sound card is a sb.

First I launched modconf but no module was displayed.

I did: modprobe sb=20
and I got:

sb: Init: Done
sb: Init: Starting Probe...
kobject_register failed for OSS SndBlstr (-17)
Call Trace:
[<c0191cda>] kobject_register+0x3a/0x40
[<c01d9bcc>] bus_add_driver+0x30/0x64
[<c01d9e51>] driver_register+0x2d/0x34
[<c011a24a>] preempt_schedule+0x2a/0x48
[<c01b6f84>] pnp_register_driver+0x28/0x58
[<c01b6c5e>] pnp_register_card_driver+0x5e/0x98
[<c488f063>] sb_init+0x63/0xb5 [sb]
[<c0130bf4>] sys_init_module+0xe8/0x1f0
[<c010b577>] syscall_call+0x7/0xb


Index: linux-2.5/sound/oss/sb_card.c
===================================================================
--- linux-2.5.orig/sound/oss/sb_card.c 2004-06-13 11:57:56.000000000 -0700
+++ linux-2.5/sound/oss/sb_card.c 2004-06-13 12:08:55.000000000 -0700
@@ -309,7 +309,13 @@

/* If either PnP or Legacy registered a card then return
* success */
- return (pres > 0 || lres > 0) ? 0 : -ENODEV;
+ if (pres <= 0 && lres <= 0) {
+#ifdef CONFIG_PNP
+ pnp_unregister_card_driver(&sb_pnp_driver);
+#endif
+ return -ENODEV;
+ }
+ return 0;
}

static void __exit sb_exit(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/