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
Unified · Split
| @@ -3289,7 +3289,7 @@ static void snd_usb_audio_disconnect(struct usb_device *dev, void *ptr) · 3288 unmodified lines | |||
| 3289 | } | 3289 | } |
| 3290 | usb_chip[chip->index] = NULL; | 3290 | usb_chip[chip->index] = NULL; |
| 3291 | up(®ister_mutex); | 3291 | up(®ister_mutex); |
| 3292 | snd_card_free_in_thread(card); | 3292 | snd_card_free(card); |
| 3293 | } else { | 3293 | } else { |
| 3294 | up(®ister_mutex); | 3294 | up(®ister_mutex); |
| 3295 | } | 3295 | } |