aboutsummaryrefslogtreecommitdiffstats
path: root/net/bluetooth/hci_sysfs.c
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2008-07-14 14:13:51 -0400
committerMarcel Holtmann <marcel@holtmann.org>2008-07-14 14:13:51 -0400
commit7d0db0a373195385a2e0b19d1f5e4b186fdcffac (patch)
tree4e82fafd39eb0a32bfb0a340302dd0baf15410e0 /net/bluetooth/hci_sysfs.c
parent43cbeee9f9b26300275e4e2d55ed1607f8c5f760 (diff)
[Bluetooth] Use a more unique bus name for connections
When attaching Bluetooth low-level connections to the bus, the bus name is constructed from the remote address since at that time the connection handle is not assigned yet. This has worked so far, but also caused a lot of troubles. It is better to postpone the creation of the sysfs entry to the time when the connection actually has been established and then use its connection handle as unique identifier. This also fixes the case where two different adapters try to connect to the same remote device. Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'net/bluetooth/hci_sysfs.c')
-rw-r--r--net/bluetooth/hci_sysfs.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/net/bluetooth/hci_sysfs.c b/net/bluetooth/hci_sysfs.c
index a18871e01582..844ca5f1b2d4 100644
--- a/net/bluetooth/hci_sysfs.c
+++ b/net/bluetooth/hci_sysfs.c
@@ -311,7 +311,6 @@ static void add_conn(struct work_struct *work)
311void hci_conn_add_sysfs(struct hci_conn *conn) 311void hci_conn_add_sysfs(struct hci_conn *conn)
312{ 312{
313 struct hci_dev *hdev = conn->hdev; 313 struct hci_dev *hdev = conn->hdev;
314 bdaddr_t *ba = &conn->dst;
315 314
316 BT_DBG("conn %p", conn); 315 BT_DBG("conn %p", conn);
317 316
@@ -320,11 +319,8 @@ void hci_conn_add_sysfs(struct hci_conn *conn)
320 319
321 conn->dev.release = bt_release; 320 conn->dev.release = bt_release;
322 321
323 snprintf(conn->dev.bus_id, BUS_ID_SIZE, 322 snprintf(conn->dev.bus_id, BUS_ID_SIZE, "%s:%d",
324 "%s%2.2X%2.2X%2.2X%2.2X%2.2X%2.2X", 323 hdev->name, conn->handle);
325 conn->type == ACL_LINK ? "acl" : "sco",
326 ba->b[5], ba->b[4], ba->b[3],
327 ba->b[2], ba->b[1], ba->b[0]);
328 324
329 dev_set_drvdata(&conn->dev, conn); 325 dev_set_drvdata(&conn->dev, conn);
330 326