|
|
|
@ -1033,8 +1033,17 @@ int __init rfcomm_init_sockets(void) |
|
|
|
|
return err; |
|
|
|
|
|
|
|
|
|
err = bt_sock_register(BTPROTO_RFCOMM, &rfcomm_sock_family_ops); |
|
|
|
|
if (err < 0) |
|
|
|
|
if (err < 0) { |
|
|
|
|
BT_ERR("RFCOMM socket layer registration failed"); |
|
|
|
|
goto error; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
err = bt_procfs_init(THIS_MODULE, &init_net, "rfcomm", &rfcomm_sk_list, NULL); |
|
|
|
|
if (err < 0) { |
|
|
|
|
BT_ERR("Failed to create RFCOMM proc file"); |
|
|
|
|
bt_sock_unregister(BTPROTO_RFCOMM); |
|
|
|
|
goto error; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (bt_debugfs) { |
|
|
|
|
rfcomm_sock_debugfs = debugfs_create_file("rfcomm", 0444, |
|
|
|
@ -1048,13 +1057,14 @@ int __init rfcomm_init_sockets(void) |
|
|
|
|
return 0; |
|
|
|
|
|
|
|
|
|
error: |
|
|
|
|
BT_ERR("RFCOMM socket layer registration failed"); |
|
|
|
|
proto_unregister(&rfcomm_proto); |
|
|
|
|
return err; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void __exit rfcomm_cleanup_sockets(void) |
|
|
|
|
{ |
|
|
|
|
bt_procfs_cleanup(&init_net, "rfcomm"); |
|
|
|
|
|
|
|
|
|
debugfs_remove(rfcomm_sock_debugfs); |
|
|
|
|
|
|
|
|
|
if (bt_sock_unregister(BTPROTO_RFCOMM) < 0) |
|
|
|
|