Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit df5c37ea authored by Marcel Holtmann's avatar Marcel Holtmann Committed by David S. Miller
Browse files

[Bluetooth] Handle return values from driver core functions



Some return values of the driver core register and create functions
are not handled and so might cause unexpected problems.

Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
parent e9c5702e
Loading
Loading
Loading
Loading
+8 −3
Original line number Diff line number Diff line
@@ -242,10 +242,14 @@ static void add_conn(void *data)
	struct hci_conn *conn = data;
	int i;

	device_register(&conn->dev);
	if (device_register(&conn->dev) < 0) {
		BT_ERR("Failed to register connection device");
		return;
	}

	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)
@@ -312,7 +316,8 @@ int hci_register_sysfs(struct hci_dev *hdev)
		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;
}
+2 −1
Original line number Diff line number Diff line
@@ -2216,7 +2216,8 @@ static int __init l2cap_init(void)
		goto error;
	}

	class_create_file(bt_class, &class_attr_l2cap);
	if (class_create_file(bt_class, &class_attr_l2cap) < 0)
		BT_ERR("Failed to create L2CAP info file");

	BT_INFO("L2CAP ver %s", VERSION);
	BT_INFO("L2CAP socket layer initialized");
+2 −1
Original line number Diff line number Diff line
@@ -2058,7 +2058,8 @@ static int __init rfcomm_init(void)

	kernel_thread(rfcomm_run, NULL, CLONE_KERNEL);

	class_create_file(bt_class, &class_attr_rfcomm_dlc);
	if (class_create_file(bt_class, &class_attr_rfcomm_dlc) < 0)
		BT_ERR("Failed to create RFCOMM info file");

	rfcomm_init_sockets();

+2 −1
Original line number Diff line number Diff line
@@ -944,7 +944,8 @@ int __init rfcomm_init_sockets(void)
	if (err < 0)
		goto error;

	class_create_file(bt_class, &class_attr_rfcomm);
	if (class_create_file(bt_class, &class_attr_rfcomm) < 0)
		BT_ERR("Failed to create RFCOMM info file");

	BT_INFO("RFCOMM socket layer initialized");

+2 −1
Original line number Diff line number Diff line
@@ -967,7 +967,8 @@ static int __init sco_init(void)
		goto error;
	}

	class_create_file(bt_class, &class_attr_sco);
	if (class_create_file(bt_class, &class_attr_sco) < 0)
		BT_ERR("Failed to create SCO info file");

	BT_INFO("SCO (Voice Link) ver %s", VERSION);
	BT_INFO("SCO socket layer initialized");