Hi Oliver,
btusb has some races in disconnect()
- it doesn't deal with only the iso interface disconnected
It see the point here, but then we have to release the main interface
cleanly or just disable SCO. I would prefer to just disable SCO.
- it releases the data interface before unregistering the iso interface
How does this happen? It doesn't do it that way.
- it isn't carefull to kill all URBs in case of soft disconnect
The hci_unregister_dev will be calling the close() callback. Check
hci_core.c and hci_dev_do_close().
Regards
Marcel