提交 efa93dbe 编写于 作者: K Karsten Wiese 提交者: Linus Torvalds

[PATCH] usbaudio: prevent oops & dead keyboard on usb unplugging while the device is being used

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: NKarsten Wiese <annabellesgarden@yahoo.de>
Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: NChris Wright <chrisw@osdl.org>
Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
上级 9a476969
...@@ -3289,7 +3289,7 @@ static void snd_usb_audio_disconnect(struct usb_device *dev, void *ptr) ...@@ -3289,7 +3289,7 @@ static void snd_usb_audio_disconnect(struct usb_device *dev, void *ptr)
} }
usb_chip[chip->index] = NULL; usb_chip[chip->index] = NULL;
up(&register_mutex); up(&register_mutex);
snd_card_free_in_thread(card); snd_card_free(card);
} else { } else {
up(&register_mutex); up(&register_mutex);
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册