diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2013-10-17 17:24:17 -0700 |
---|---|---|
committer | Johan Hedberg <johan.hedberg@intel.com> | 2013-10-18 10:45:45 +0300 |
commit | 0153e2ecab657be17aaecca234b29c1154a98202 (patch) | |
tree | 40b5ea1fabd7ff59a7708060f54cbc8179cf0136 | |
parent | 1120e4bfa5f9c28cb55d815ab3c6bed81dfc595c (diff) |
Bluetooth: Create HCI device debugfs directory in hci_register_dev
Create the debugfs directory for each HCI device directly in
hci_register_dev function and remove it during hci_unregister_dev.
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
-rw-r--r-- | net/bluetooth/hci_core.c | 5 | ||||
-rw-r--r-- | net/bluetooth/hci_sysfs.c | 16 |
2 files changed, 6 insertions, 15 deletions
diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c index 0fb9f6d1f60f..f7ba81885b42 100644 --- a/net/bluetooth/hci_core.c +++ b/net/bluetooth/hci_core.c @@ -2479,6 +2479,9 @@ int hci_register_dev(struct hci_dev *hdev) goto err; } + if (!IS_ERR_OR_NULL(bt_debugfs)) + hdev->debugfs = debugfs_create_dir(hdev->name, bt_debugfs); + error = hci_add_sysfs(hdev); if (error < 0) goto err_wqueue; @@ -2569,6 +2572,8 @@ void hci_unregister_dev(struct hci_dev *hdev) hci_del_sysfs(hdev); + debugfs_remove_recursive(hdev->debugfs); + destroy_workqueue(hdev->workqueue); destroy_workqueue(hdev->req_workqueue); diff --git a/net/bluetooth/hci_sysfs.c b/net/bluetooth/hci_sysfs.c index 077037e7f912..0e71318b0c82 100644 --- a/net/bluetooth/hci_sysfs.c +++ b/net/bluetooth/hci_sysfs.c @@ -409,32 +409,18 @@ void hci_init_sysfs(struct hci_dev *hdev) int hci_add_sysfs(struct hci_dev *hdev) { struct device *dev = &hdev->dev; - int err; BT_DBG("%p name %s bus %d", hdev, hdev->name, hdev->bus); dev_set_name(dev, "%s", hdev->name); - err = device_add(dev); - if (err < 0) - return err; - - if (!bt_debugfs) - return 0; - - hdev->debugfs = debugfs_create_dir(hdev->name, bt_debugfs); - if (!hdev->debugfs) - return 0; - - return 0; + return device_add(dev); } void hci_del_sysfs(struct hci_dev *hdev) { BT_DBG("%p name %s bus %d", hdev, hdev->name, hdev->bus); - debugfs_remove_recursive(hdev->debugfs); - device_del(&hdev->dev); } |