Re: [patch]race condition in btusb disconnect() handling

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Am Dienstag 19 August 2008 14:43:01 schrieb Marcel Holtmann:
> 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.

The patch disables the main interface. Just disabling SCO means that
btusb_data.isoc could no longer be treated as constant and locking for it
would be necessary. This seems extravagant for a minor use case.

> > - it releases the data interface before unregistering the iso interface
> 
> How does this happen? It doesn't do it that way.

>From your version:
	if (data->isoc)
		usb_driver_release_interface(&btusb_driver, data->isoc);

	usb_set_intfdata(intf, NULL);

	hci_unregister_dev(hdev);

First you release the interface, then you unregister the hci.

> 
> > - 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().

OK, I'll modify the patch.

	Regards
		Oliver
--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux