|
@@ -304,7 +304,7 @@ static int btsdio_probe(struct sdio_func *func,
|
|
|
tuple = tuple->next;
|
|
|
}
|
|
|
|
|
|
- data = kzalloc(sizeof(*data), GFP_KERNEL);
|
|
|
+ data = devm_kzalloc(&func->dev, sizeof(*data), GFP_KERNEL);
|
|
|
if (!data)
|
|
|
return -ENOMEM;
|
|
|
|
|
@@ -315,10 +315,8 @@ static int btsdio_probe(struct sdio_func *func,
|
|
|
skb_queue_head_init(&data->txq);
|
|
|
|
|
|
hdev = hci_alloc_dev();
|
|
|
- if (!hdev) {
|
|
|
- kfree(data);
|
|
|
+ if (!hdev)
|
|
|
return -ENOMEM;
|
|
|
- }
|
|
|
|
|
|
hdev->bus = HCI_SDIO;
|
|
|
hci_set_drvdata(hdev, data);
|
|
@@ -340,7 +338,6 @@ static int btsdio_probe(struct sdio_func *func,
|
|
|
err = hci_register_dev(hdev);
|
|
|
if (err < 0) {
|
|
|
hci_free_dev(hdev);
|
|
|
- kfree(data);
|
|
|
return err;
|
|
|
}
|
|
|
|
|
@@ -366,7 +363,6 @@ static void btsdio_remove(struct sdio_func *func)
|
|
|
hci_unregister_dev(hdev);
|
|
|
|
|
|
hci_free_dev(hdev);
|
|
|
- kfree(data);
|
|
|
}
|
|
|
|
|
|
static struct sdio_driver btsdio_driver = {
|