From: David Herrmann Date: Sat, 7 Jan 2012 14:47:21 +0000 (+0100) Subject: Bluetooth: Correctly acquire module ref X-Git-Tag: v3.4-rc1~177^2~112^2~241 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=46e06531a5ae13c66f774d3cb1ad78385618a5a2;p=karo-tx-linux.git Bluetooth: Correctly acquire module ref We provide a device-object to other subsystems and we provide our own release-function. Therefore, the device-object must own a reference to our module, otherwise the release-function may get deleted before the device-object does. Signed-off-by: David Herrmann Acked-by: Marcel Holtmann Signed-off-by: Johan Hedberg --- diff --git a/net/bluetooth/hci_sysfs.c b/net/bluetooth/hci_sysfs.c index 74b49e330a1d..ec03ee2b301e 100644 --- a/net/bluetooth/hci_sysfs.c +++ b/net/bluetooth/hci_sysfs.c @@ -372,6 +372,7 @@ static void bt_host_release(struct device *dev) { void *data = dev_get_drvdata(dev); kfree(data); + module_put(THIS_MODULE); } static struct device_type bt_host = { @@ -523,6 +524,7 @@ void hci_init_sysfs(struct hci_dev *hdev) dev->type = &bt_host; dev->class = bt_class; + __module_get(THIS_MODULE); dev_set_drvdata(dev, hdev); device_initialize(dev); }