aboutsummaryrefslogtreecommitdiffstats
path: root/net/bluetooth
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2007-05-04 18:36:03 -0400
committerMarcel Holtmann <marcel@holtmann.org>2007-05-04 18:36:03 -0400
commit53c1d4b0b22243c093ded25aaa01c8ff8ab6e6b3 (patch)
treef24b89dd53b3dfb7c0b7633b96fcfb335b983471 /net/bluetooth
parent0878b6667f28772aa7d6b735abff53efc7bf6d91 (diff)
[Bluetooth] Attach host adapters to the Bluetooth bus
The Bluetooth host adapters are attached to the Bluetooth class and the low-level connections are children of these class devices. Having class devices as parent of bus devices breaks a lot of reasonable assumptions about sysfs. The host adapters should be attached to the Bluetooth bus to simplify the dependency resolving. For compatibility an additional symlink from the Bluetooth class will be used. Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'net/bluetooth')
-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