aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Hurley <peter@hurleysoftware.com>2011-08-05 10:51:50 -0400
committerJaikumar Ganesh <jaikumar@google.com>2011-08-11 18:42:27 -0700
commite5e416a4151ee182a05bb3cbbbda8f4d54e83400 (patch)
tree392d575a9772fa9419f2628d2cf3db31dcf97300
parent6b7f77eb6a2bb8197813d69952fee89d91a073b4 (diff)
downloadkernel_samsung_aries-e5e416a4151ee182a05bb3cbbbda8f4d54e83400.zip
kernel_samsung_aries-e5e416a4151ee182a05bb3cbbbda8f4d54e83400.tar.gz
kernel_samsung_aries-e5e416a4151ee182a05bb3cbbbda8f4d54e83400.tar.bz2
Bluetooth: hidp: Only free input device if failed register
When an hidp connection is added for a boot protocol input device, only free the allocated device if device registration fails. Subsequent failures should only unregister the device (the input device api documents that unregister will also free the allocated device). Signed-off-by: Peter Hurley <peter@hurleysoftware.com> Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
-rw-r--r--net/bluetooth/hidp/core.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/bluetooth/hidp/core.c b/net/bluetooth/hidp/core.c
index 26f0d10..a859f90 100644
--- a/net/bluetooth/hidp/core.c
+++ b/net/bluetooth/hidp/core.c
@@ -842,6 +842,8 @@ static int hidp_setup_input(struct hidp_session *session,
err = input_register_device(input);
if (err < 0) {
+ input_free_device(input);
+ session->input = NULL;
hci_conn_put_device(session->conn);
return err;
}
@@ -1089,7 +1091,6 @@ purge:
failed:
up_write(&hidp_session_sem);
- input_free_device(session->input);
kfree(session);
return err;
}