diff options
Diffstat (limited to 'drivers/bluetooth/btsdio.c')
| -rw-r--r-- | drivers/bluetooth/btsdio.c | 8 | 
1 files changed, 2 insertions, 6 deletions
| diff --git a/drivers/bluetooth/btsdio.c b/drivers/bluetooth/btsdio.c index e10ea0347051..4a9909713874 100644 --- a/drivers/bluetooth/btsdio.c +++ b/drivers/bluetooth/btsdio.c @@ -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 = { | 
