From: Peter Hurley Date: Fri, 5 Aug 2011 14:51:50 +0000 (-0400) Subject: Bluetooth: hidp: Only free input device if failed register X-Git-Tag: firefly_0821_release~7613^2~355 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=e5e416a4151ee182a05bb3cbbbda8f4d54e83400;p=firefly-linux-kernel-4.4.55.git 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 Signed-off-by: Gustavo F. Padovan --- 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, 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; }