|
@@ -842,6 +842,8 @@ static int hidp_setup_input(struct hidp_session *session,
|
|
|
|
|
|
err = input_register_device(input);
|
|
err = input_register_device(input);
|
|
if (err < 0) {
|
|
if (err < 0) {
|
|
|
|
+ input_free_device(input);
|
|
|
|
+ session->input = NULL;
|
|
hci_conn_put_device(session->conn);
|
|
hci_conn_put_device(session->conn);
|
|
return err;
|
|
return err;
|
|
}
|
|
}
|
|
@@ -1089,7 +1091,6 @@ purge:
|
|
failed:
|
|
failed:
|
|
up_write(&hidp_session_sem);
|
|
up_write(&hidp_session_sem);
|
|
|
|
|
|
- input_free_device(session->input);
|
|
|
|
kfree(session);
|
|
kfree(session);
|
|
return err;
|
|
return err;
|
|
}
|
|
}
|