diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/bluetooth/hci_sysfs.c | 9 |
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 | ||