aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorPeter Hurley <peter@hurleysoftware.com>2011-08-05 10:51:50 -0400
committerGustavo F. Padovan <padovan@profusion.mobi>2011-08-11 18:50:28 -0400
commit615aedd6e5add8104f031b0d547285652d04d330 (patch)
tree9c35724c899a9e468538b03e3dfffbe8ecfd63dc /net
parent1c97e94c0b7c56319754ee6f9ccd2e93fe1ee2b3 (diff)
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>
Diffstat (limited to 'net')
-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 26f0d109ff41..a859f9078df6 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,
842 842
843 err = input_register_device(input); 843 err = input_register_device(input);
844 if (err < 0) { 844 if (err < 0) {
845 input_free_device(input);
846 session->input = NULL;
845 hci_conn_put_device(session->conn); 847 hci_conn_put_device(session->conn);
846 return err; 848 return err;
847 } 849 }
@@ -1089,7 +1091,6 @@ purge:
1089failed: 1091failed:
1090 up_write(&hidp_session_sem); 1092 up_write(&hidp_session_sem);
1091 1093
1092 input_free_device(session->input);
1093 kfree(session); 1094 kfree(session);
1094 return err; 1095 return err;
1095} 1096}