[PATCH] usbaudio: prevent oops & dead keyboard on usb unplugging while the device...
authorKarsten Wiese <annabellesgarden@yahoo.de>
Tue, 14 Jun 2005 16:54:55 +0000 (09:54 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Tue, 14 Jun 2005 18:05:13 +0000 (11:05 -0700)
Without this patch, some usb kobjects, which are parents to the usx2y's
kobjects can be freed before the usx2y's.  This led to an oops in
get_kobj_path_length() and a dead keyboard, when the usx2y's kobjects
were freed.  The patch ensures the correct sequence.  Tested ok on
kernel 2.6.12-rc2.

Present in ALSA cvs

Signed-off-by: Karsten Wiese <annabellesgarden@yahoo.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Chris Wright <chrisw@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
sound/usb/usbaudio.c

index 84b0bbddbd226f8716a06459aa9fa67892da6b6e..aae66144d411ce579eee7185b8e3cca84e730d9e 100644 (file)
@@ -3289,7 +3289,7 @@ static void snd_usb_audio_disconnect(struct usb_device *dev, void *ptr)
                }
                usb_chip[chip->index] = NULL;
                up(&register_mutex);
-               snd_card_free_in_thread(card);
+               snd_card_free(card);
        } else {
                up(&register_mutex);
        }