projects
/
powerpc.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[AF_IUCV]: Compile fix - adopt to skbuff changes.
[powerpc.git]
/
net
/
bluetooth
/
hci_sysfs.c
diff --git
a/net/bluetooth/hci_sysfs.c
b/net/bluetooth/hci_sysfs.c
index
989b22d
..
801d687
100644
(file)
--- a/
net/bluetooth/hci_sysfs.c
+++ b/
net/bluetooth/hci_sysfs.c
@@
-237,15
+237,19
@@
static void bt_release(struct device *dev)
kfree(data);
}
kfree(data);
}
-static void add_conn(
void *data
)
+static void add_conn(
struct work_struct *work
)
{
{
- struct hci_conn *conn =
data
;
+ struct hci_conn *conn =
container_of(work, struct hci_conn, work)
;
int i;
int i;
- device_register(&conn->dev);
+ if (device_add(&conn->dev) < 0) {
+ BT_ERR("Failed to register connection device");
+ return;
+ }
for (i = 0; conn_attrs[i]; i++)
for (i = 0; conn_attrs[i]; i++)
- device_create_file(&conn->dev, conn_attrs[i]);
+ if (device_create_file(&conn->dev, conn_attrs[i]) < 0)
+ BT_ERR("Failed to create connection attribute");
}
void hci_conn_add_sysfs(struct hci_conn *conn)
}
void hci_conn_add_sysfs(struct hci_conn *conn)
@@
-255,7
+259,9
@@
void hci_conn_add_sysfs(struct hci_conn *conn)
BT_DBG("conn %p", conn);
BT_DBG("conn %p", conn);
- conn->dev.parent = &hdev->dev;
+ conn->dev.bus = &bt_bus;
+ conn->dev.parent = &hdev->dev;
+
conn->dev.release = bt_release;
snprintf(conn->dev.bus_id, BUS_ID_SIZE,
conn->dev.release = bt_release;
snprintf(conn->dev.bus_id, BUS_ID_SIZE,
@@
-266,14
+272,16
@@
void hci_conn_add_sysfs(struct hci_conn *conn)
dev_set_drvdata(&conn->dev, conn);
dev_set_drvdata(&conn->dev, conn);
- INIT_WORK(&conn->work, add_conn, (void *) conn);
+ device_initialize(&conn->dev);
+
+ INIT_WORK(&conn->work, add_conn);
schedule_work(&conn->work);
}
schedule_work(&conn->work);
}
-static void del_conn(
void *data
)
+static void del_conn(
struct work_struct *work
)
{
{
- struct hci_conn *conn =
data
;
+ struct hci_conn *conn =
container_of(work, struct hci_conn, work)
;
device_del(&conn->dev);
}
device_del(&conn->dev);
}
@@
-281,7
+289,10
@@
void hci_conn_del_sysfs(struct hci_conn *conn)
{
BT_DBG("conn %p", conn);
{
BT_DBG("conn %p", conn);
- INIT_WORK(&conn->work, del_conn, (void *) conn);
+ if (!device_is_registered(&conn->dev))
+ return;
+
+ INIT_WORK(&conn->work, del_conn);
schedule_work(&conn->work);
}
schedule_work(&conn->work);
}
@@
-295,11
+306,7
@@
int hci_register_sysfs(struct hci_dev *hdev)
BT_DBG("%p name %s type %d", hdev, hdev->name, hdev->type);
dev->class = bt_class;
BT_DBG("%p name %s type %d", hdev, hdev->name, hdev->type);
dev->class = bt_class;
-
- if (hdev->parent)
- dev->parent = hdev->parent;
- else
- dev->parent = &bt_platform->dev;
+ dev->parent = hdev->parent;
strlcpy(dev->bus_id, hdev->name, BUS_ID_SIZE);
strlcpy(dev->bus_id, hdev->name, BUS_ID_SIZE);
@@
-312,7
+319,8
@@
int hci_register_sysfs(struct hci_dev *hdev)
return err;
for (i = 0; bt_attrs[i]; i++)
return err;
for (i = 0; bt_attrs[i]; i++)
- device_create_file(dev, bt_attrs[i]);
+ if (device_create_file(dev, bt_attrs[i]) < 0)
+ BT_ERR("Failed to create device attribute");
return 0;
}
return 0;
}