Colin Fletcher wrote:
> I hope this is the right place for this sort of bug report: if
> there's a better place, please do point me there.
Anything related to the snd-usb-audio driver should go to alsa-devel,
but this bug seems to be in the EHCI driver.
> [2.] I have an Edirol UA-1000 USB 2.0 Audio Capture unit. When
> disconnected (or powered down), it repeatably causes a kernel panic,
> in (I think) linux/drivers/usb/host/ehci-q.c, start_unlink_async(),
You didn't mention that the device was currently playing/recording, so
I assume it wasn't. In this case, the oops apparently happens when the
MIDI URBs are canceled (the MIDI input URBs are active as long as the
driver is loaded). Please try the attached patch; it adds two printk()s
around the snd_usbmidi_disconnect() function. If my theory is correct,
the oops should happen immediately after the "killing MIDI URBs..."
message.
BTW: I never had the opportunity to test my code for the UA-1000.
Does playback/capture/MIDI work?
Regards,
Clemens
--- linux/sound/usb/usbmidi.c 27 May 2005 12:10:53 -0000 1.49
+++ linux/sound/usb/usbmidi.c 23 Jun 2005 11:32:57 -0000
@@ -917,6 +917,7 @@
snd_usb_midi_t* umidi;
int i;
+ snd_printk("killing MIDI URBs...\n");
umidi = list_entry(p, snd_usb_midi_t, list);
for (i = 0; i < MIDI_MAX_ENDPOINTS; ++i) {
snd_usb_midi_endpoint_t* ep = &umidi->endpoints[i];
@@ -928,6 +929,7 @@
if (ep->in && ep->in->urb)
usb_kill_urb(ep->in->urb);
}
+ snd_printk("...done\n");
}
static void snd_usbmidi_rawmidi_free(snd_rawmidi_t* rmidi)