Without this patch, usb-uhci oopses after ALSA 1.0's snd-usb-audio has
asynchronously unlinked its URBs. Apparently, the code for handling
still-active TDs forgets to check whether the TD actually must be
unlinked.
--- linux-2.4.23-rc1/drivers/usb/host/usb-uhci.c.orig Sun Nov 23 00:11:22 2003
+++ linux-2.4.23-rc1/drivers/usb/host/usb-uhci.c Sun Nov 23 01:23:45 2003
@@ -2554,13 +2554,14 @@
if (is_td_active(desc)) {
// means we have completed the last TD, but not the TDs before
desc->hw.td.status &= cpu_to_le32(~TD_CTRL_ACTIVE);
dbg("TD still active (%x)- grrr. paranoia!",
le32_to_cpu(desc->hw.td.status));
ret = -EXDEV;
urb->iso_frame_desc[i].status = ret;
- unlink_td (s, desc, 1);
+ if (mode == PROCESS_ISO_REGULAR)
+ unlink_td (s, desc, 1);
// FIXME: immediate deletion may be dangerous
goto err;
}
if (mode == PROCESS_ISO_REGULAR)
unlink_td (s, desc, 1);
-------------------------------------------------------
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive? Does it
help you create better code? SHARE THE LOVE, and help us help
YOU! Click Here: http://sourceforge.net/donate/
_______________________________________________
Alsa-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-devel