Loading drivers/misc/qseecom.c +8 −3 Original line number Diff line number Diff line Loading @@ -1239,8 +1239,6 @@ static int qseecom_register_listener(struct qseecom_dev_handle *data, rcvd_lstnr.sb_size)) return -EFAULT; data->listener.id = rcvd_lstnr.listener_id; ptr_svc = __qseecom_find_svc(rcvd_lstnr.listener_id); if (ptr_svc) { if (ptr_svc->unregister_pending == false) { Loading Loading @@ -1288,6 +1286,7 @@ static int qseecom_register_listener(struct qseecom_dev_handle *data, new_entry->listener_in_use = false; list_add_tail(&new_entry->list, &qseecom.registered_listener_list_head); data->listener.id = rcvd_lstnr.listener_id; pr_debug("Service %d is registered\n", rcvd_lstnr.listener_id); return ret; } Loading Loading @@ -1356,6 +1355,11 @@ static int qseecom_unregister_listener(struct qseecom_dev_handle *data) struct qseecom_registered_listener_list *ptr_svc = NULL; struct qseecom_unregister_pending_list *entry = NULL; if (data->released) { pr_err("Don't unregister lsnr %d\n", data->listener.id); return -EINVAL; } ptr_svc = __qseecom_find_svc(data->listener.id); if (!ptr_svc) { pr_err("Unregiser invalid listener ID %d\n", data->listener.id); Loading Loading @@ -8073,9 +8077,10 @@ static int qseecom_release(struct inode *inode, struct file *file) switch (data->type) { case QSEECOM_LISTENER_SERVICE: pr_debug("release lsnr svc %d\n", data->listener.id); free_private_data = false; mutex_lock(&listener_access_lock); ret = qseecom_unregister_listener(data); if (!ret) free_private_data = false; data->listener.release_called = true; mutex_unlock(&listener_access_lock); __wakeup_unregister_listener_kthread(); Loading Loading
drivers/misc/qseecom.c +8 −3 Original line number Diff line number Diff line Loading @@ -1239,8 +1239,6 @@ static int qseecom_register_listener(struct qseecom_dev_handle *data, rcvd_lstnr.sb_size)) return -EFAULT; data->listener.id = rcvd_lstnr.listener_id; ptr_svc = __qseecom_find_svc(rcvd_lstnr.listener_id); if (ptr_svc) { if (ptr_svc->unregister_pending == false) { Loading Loading @@ -1288,6 +1286,7 @@ static int qseecom_register_listener(struct qseecom_dev_handle *data, new_entry->listener_in_use = false; list_add_tail(&new_entry->list, &qseecom.registered_listener_list_head); data->listener.id = rcvd_lstnr.listener_id; pr_debug("Service %d is registered\n", rcvd_lstnr.listener_id); return ret; } Loading Loading @@ -1356,6 +1355,11 @@ static int qseecom_unregister_listener(struct qseecom_dev_handle *data) struct qseecom_registered_listener_list *ptr_svc = NULL; struct qseecom_unregister_pending_list *entry = NULL; if (data->released) { pr_err("Don't unregister lsnr %d\n", data->listener.id); return -EINVAL; } ptr_svc = __qseecom_find_svc(data->listener.id); if (!ptr_svc) { pr_err("Unregiser invalid listener ID %d\n", data->listener.id); Loading Loading @@ -8073,9 +8077,10 @@ static int qseecom_release(struct inode *inode, struct file *file) switch (data->type) { case QSEECOM_LISTENER_SERVICE: pr_debug("release lsnr svc %d\n", data->listener.id); free_private_data = false; mutex_lock(&listener_access_lock); ret = qseecom_unregister_listener(data); if (!ret) free_private_data = false; data->listener.release_called = true; mutex_unlock(&listener_access_lock); __wakeup_unregister_listener_kthread(); Loading