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>
This commit is contained in:
Peter Hurley 2011-08-05 10:51:50 -04:00 committed by Jaikumar Ganesh
parent 6b7f77eb6a
commit e5e416a415

View File

@ -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 @@ int hidp_add_connection(struct hidp_connadd_req *req, struct socket *ctrl_sock,
failed:
up_write(&hidp_session_sem);
input_free_device(session->input);
kfree(session);
return err;
}