aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/bluetooth/hci_sysfs.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/net/bluetooth/hci_sysfs.c b/net/bluetooth/hci_sysfs.c
index 801d687ea4ef..359e3440cf29 100644
--- a/net/bluetooth/hci_sysfs.c
+++ b/net/bluetooth/hci_sysfs.c
@@ -305,7 +305,7 @@ int hci_register_sysfs(struct hci_dev *hdev)
305 305
306 BT_DBG("%p name %s type %d", hdev, hdev->name, hdev->type); 306 BT_DBG("%p name %s type %d", hdev, hdev->name, hdev->type);
307 307
308 dev->class = bt_class; 308 dev->bus = &bt_bus;
309 dev->parent = hdev->parent; 309 dev->parent = hdev->parent;
310 310
311 strlcpy(dev->bus_id, hdev->name, BUS_ID_SIZE); 311 strlcpy(dev->bus_id, hdev->name, BUS_ID_SIZE);
@@ -322,6 +322,10 @@ int hci_register_sysfs(struct hci_dev *hdev)
322 if (device_create_file(dev, bt_attrs[i]) < 0) 322 if (device_create_file(dev, bt_attrs[i]) < 0)
323 BT_ERR("Failed to create device attribute"); 323 BT_ERR("Failed to create device attribute");
324 324
325 if (sysfs_create_link(&bt_class->subsys.kset.kobj,
326 &dev->kobj, kobject_name(&dev->kobj)) < 0)
327 BT_ERR("Failed to create class symlink");
328
325 return 0; 329 return 0;
326} 330}
327 331
@@ -329,6 +333,9 @@ void hci_unregister_sysfs(struct hci_dev *hdev)
329{ 333{
330 BT_DBG("%p name %s type %d", hdev, hdev->name, hdev->type); 334 BT_DBG("%p name %s type %d", hdev, hdev->name, hdev->type);
331 335
336 sysfs_remove_link(&bt_class->subsys.kset.kobj,
337 kobject_name(&hdev->dev.kobj));
338
332 device_del(&hdev->dev); 339 device_del(&hdev->dev);
333} 340}
334 341