|
@@ -2080,7 +2080,7 @@ static CLASS_ATTR(rfcomm_dlc, S_IRUGO, rfcomm_dlc_sysfs_show, NULL);
|
|
|
/* ---- Initialization ---- */
|
|
|
static int __init rfcomm_init(void)
|
|
|
{
|
|
|
- int ret;
|
|
|
+ int err;
|
|
|
|
|
|
l2cap_load();
|
|
|
|
|
@@ -2088,33 +2088,35 @@ static int __init rfcomm_init(void)
|
|
|
|
|
|
rfcomm_thread = kthread_run(rfcomm_run, NULL, "krfcommd");
|
|
|
if (IS_ERR(rfcomm_thread)) {
|
|
|
- ret = PTR_ERR(rfcomm_thread);
|
|
|
- goto out_thread;
|
|
|
+ err = PTR_ERR(rfcomm_thread);
|
|
|
+ goto unregister;
|
|
|
}
|
|
|
|
|
|
if (class_create_file(bt_class, &class_attr_rfcomm_dlc) < 0)
|
|
|
BT_ERR("Failed to create RFCOMM info file");
|
|
|
|
|
|
- ret = rfcomm_init_ttys();
|
|
|
- if (ret)
|
|
|
- goto out_tty;
|
|
|
+ err = rfcomm_init_ttys();
|
|
|
+ if (err < 0)
|
|
|
+ goto stop;
|
|
|
|
|
|
- ret = rfcomm_init_sockets();
|
|
|
- if (ret)
|
|
|
- goto out_sock;
|
|
|
+ err = rfcomm_init_sockets();
|
|
|
+ if (err < 0)
|
|
|
+ goto cleanup;
|
|
|
|
|
|
BT_INFO("RFCOMM ver %s", VERSION);
|
|
|
|
|
|
return 0;
|
|
|
|
|
|
-out_sock:
|
|
|
+cleanup:
|
|
|
rfcomm_cleanup_ttys();
|
|
|
-out_tty:
|
|
|
+
|
|
|
+stop:
|
|
|
kthread_stop(rfcomm_thread);
|
|
|
-out_thread:
|
|
|
+
|
|
|
+unregister:
|
|
|
hci_unregister_cb(&rfcomm_cb);
|
|
|
|
|
|
- return ret;
|
|
|
+ return err;
|
|
|
}
|
|
|
|
|
|
static void __exit rfcomm_exit(void)
|