]> bbs.cooldavid.org Git - net-next-2.6.git/commitdiff
Bluetooth: Disconnect HIDRAW devices on disconnect
authorMarcel Holtmann <marcel@holtmann.org>
Sat, 22 Aug 2009 21:15:53 +0000 (14:15 -0700)
committerMarcel Holtmann <marcel@holtmann.org>
Sat, 22 Aug 2009 21:15:53 +0000 (14:15 -0700)
Currently the HID subsystem will create HIDRAW devices for the transport
driver, but it will not disconnect them. Until the HID subsytem gets
fixed, ensure that HIDRAW and HIDDEV devices are disconnected when the
Bluetooth HID device gets removed.

Based on a patch from Brian Rogers <brian@xyzw.org>

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
net/bluetooth/hidp/core.c

index a9f7afb6ee3501041661f37818df054bd37931fb..f912d6537180b184f048b18178b08a9e877fa122 100644 (file)
@@ -40,6 +40,7 @@
 
 #include <linux/input.h>
 #include <linux/hid.h>
+#include <linux/hidraw.h>
 
 #include <net/bluetooth/bluetooth.h>
 #include <net/bluetooth/hci_core.h>
@@ -574,6 +575,8 @@ static int hidp_session(void *arg)
        if (session->hid) {
                if (session->hid->claimed & HID_CLAIMED_INPUT)
                        hidinput_disconnect(session->hid);
+               if (session->hid->claimed & HID_CLAIMED_HIDRAW)
+                       hidraw_disconnect(session->hid);
                hid_destroy_device(session->hid);
        }