There is a basic problem in the way snd/core is handling the removal of devices. If I unplug a USB audio device snd/core will end up in: snd_card_free_when_closed. This isn't good because some desktop app (don't know which one) keeps the sound device open until it exits. This is not a good state to be in, the hardware is gone but the device is still around.
Now if I plug the USB audio device back in, I get a sysfs error for registering duplicate devices. Because snd_card_free_when_closed. is waiting for the old device to be closed it is never freeing the sysfs device. More looks to be messed up inside of snd/core when in this state, but this is the obvious symptom. Things do work properly if I restart gnome (killing whoever has the card open) after I unplug the device and before I plug it back in again. I added a few printk to snd/core/init.c -- I unplug my USB sound device usb 2-1: USB disconnect, address 2 -- Inside sound core, I go into snd_card_free_when_closed snd_card_free_when_closed -- If I plug the snd device back in , the kernel will complain about a device being registered twice. That because gnome (or something in the desktop) is still holding the device open. --- Now I restart gnome which closes whatever had the card open snd_card_file_remove snd_card_do_free -- device finishes getting unregistered unregistering device using 2.6.20-rc3 -- Jon Smirl [EMAIL PROTECTED] - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/