OSDN Git Service

android/hid: Shutdown HID L2CAP sockets on unregister
authorAndrei Emeltchenko <andrei.emeltchenko@intel.com>
Thu, 31 Oct 2013 15:30:18 +0000 (17:30 +0200)
committerJohan Hedberg <johan.hedberg@intel.com>
Fri, 1 Nov 2013 07:45:47 +0000 (09:45 +0200)
Fixes address already in use issue if we reenable HID.
...
bluetoothd[2894]: Failed to listen on ctrl channel:
l2cap_bind: Address already in use (98)
...

android/hid.c

index 4075ecb..2bc8c06 100644 (file)
@@ -445,9 +445,15 @@ void bt_hid_unregister(void)
        g_io_channel_unref(notification_io);
        notification_io = NULL;
 
-       g_io_channel_unref(ctrl_io);
-       ctrl_io = NULL;
+       if (ctrl_io) {
+               g_io_channel_shutdown(ctrl_io, TRUE, NULL);
+               g_io_channel_unref(ctrl_io);
+               ctrl_io = NULL;
+       }
 
-       g_io_channel_unref(intr_io);
-       intr_io = NULL;
+       if (intr_io) {
+               g_io_channel_shutdown(intr_io, TRUE, NULL);
+               g_io_channel_unref(intr_io);
+               intr_io = NULL;
+       }
 }