Bluetooth: hci_ll: Use new hci_uart_unregister_device() function
authorIan Molton <ian@mnementh.co.uk>
Sat, 8 Jul 2017 16:37:43 +0000 (17:37 +0100)
committerMarcel Holtmann <marcel@holtmann.org>
Thu, 20 Jul 2017 09:18:36 +0000 (11:18 +0200)
Convert hci_ll to use hci_uart_unregister_device().

This simplifies the _remove() handler as well as fixes a
potential race condition on unload.

Signed-off-by: Ian Molton <ian@mnementh.co.uk>
Reviewed-by: Sebastian Reichel <sebastian.reichel@collabor.co.uk>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
drivers/bluetooth/hci_ll.c

index c982943..1b89844 100644 (file)
@@ -742,14 +742,8 @@ static int hci_ti_probe(struct serdev_device *serdev)
 static void hci_ti_remove(struct serdev_device *serdev)
 {
        struct ll_device *lldev = serdev_device_get_drvdata(serdev);
-       struct hci_uart *hu = &lldev->hu;
-       struct hci_dev *hdev = hu->hdev;
 
-       cancel_work_sync(&hu->write_work);
-
-       hci_unregister_dev(hdev);
-       hci_free_dev(hdev);
-       hu->proto->close(hu);
+       hci_uart_unregister_device(&lldev->hu);
 }
 
 static const struct of_device_id hci_ti_of_match[] = {