diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2009-08-22 17:15:53 -0400 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2009-08-22 17:15:53 -0400 |
commit | 364f63519d94442ed373ac7da79033c8282df46a (patch) | |
tree | af17fa090f2525e562396dbb2916199635ca1197 /net/bluetooth | |
parent | 290ba200815fdecb4d40dc942499c4ea6d0c4624 (diff) |
Bluetooth: Disconnect HIDRAW devices on disconnect
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>
Diffstat (limited to 'net/bluetooth')
-rw-r--r-- | net/bluetooth/hidp/core.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/net/bluetooth/hidp/core.c b/net/bluetooth/hidp/core.c index a9f7afb6ee35..f912d6537180 100644 --- a/net/bluetooth/hidp/core.c +++ b/net/bluetooth/hidp/core.c | |||
@@ -40,6 +40,7 @@ | |||
40 | 40 | ||
41 | #include <linux/input.h> | 41 | #include <linux/input.h> |
42 | #include <linux/hid.h> | 42 | #include <linux/hid.h> |
43 | #include <linux/hidraw.h> | ||
43 | 44 | ||
44 | #include <net/bluetooth/bluetooth.h> | 45 | #include <net/bluetooth/bluetooth.h> |
45 | #include <net/bluetooth/hci_core.h> | 46 | #include <net/bluetooth/hci_core.h> |
@@ -574,6 +575,8 @@ static int hidp_session(void *arg) | |||
574 | if (session->hid) { | 575 | if (session->hid) { |
575 | if (session->hid->claimed & HID_CLAIMED_INPUT) | 576 | if (session->hid->claimed & HID_CLAIMED_INPUT) |
576 | hidinput_disconnect(session->hid); | 577 | hidinput_disconnect(session->hid); |
578 | if (session->hid->claimed & HID_CLAIMED_HIDRAW) | ||
579 | hidraw_disconnect(session->hid); | ||
577 | hid_destroy_device(session->hid); | 580 | hid_destroy_device(session->hid); |
578 | } | 581 | } |
579 | 582 | ||