Bluetooth: fix crash with quirky dongles doing sound
Quirky dongles sometimes do not use the iso interface which causes a crash with runtime PM Signed-off-by: Oliver Neukum <oneukum@suse.de> Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
This commit is contained in:
Родитель
a7b545f7fe
Коммит
8efdd0cdc5
|
@ -829,7 +829,7 @@ static void btusb_work(struct work_struct *work)
|
||||||
|
|
||||||
if (hdev->conn_hash.sco_num > 0) {
|
if (hdev->conn_hash.sco_num > 0) {
|
||||||
if (!test_bit(BTUSB_DID_ISO_RESUME, &data->flags)) {
|
if (!test_bit(BTUSB_DID_ISO_RESUME, &data->flags)) {
|
||||||
err = usb_autopm_get_interface(data->isoc);
|
err = usb_autopm_get_interface(data->isoc ? data->isoc : data->intf);
|
||||||
if (err < 0) {
|
if (err < 0) {
|
||||||
clear_bit(BTUSB_ISOC_RUNNING, &data->flags);
|
clear_bit(BTUSB_ISOC_RUNNING, &data->flags);
|
||||||
usb_kill_anchored_urbs(&data->isoc_anchor);
|
usb_kill_anchored_urbs(&data->isoc_anchor);
|
||||||
|
@ -858,7 +858,7 @@ static void btusb_work(struct work_struct *work)
|
||||||
|
|
||||||
__set_isoc_interface(hdev, 0);
|
__set_isoc_interface(hdev, 0);
|
||||||
if (test_and_clear_bit(BTUSB_DID_ISO_RESUME, &data->flags))
|
if (test_and_clear_bit(BTUSB_DID_ISO_RESUME, &data->flags))
|
||||||
usb_autopm_put_interface(data->isoc);
|
usb_autopm_put_interface(data->isoc ? data->isoc : data->intf);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче