Hi Zeng Tao,

On Wed, Jan 3, 2018 at 8:30 PM, Zeng Tao <[email protected]> wrote:
> when the current process is doing a rpc call from optee, and if there
> is a signal pending on the process, it will enter dead loop if the
> tee-supplicant is working correctly, fix the problem by breaking out
> the loop when the rpc job is finished.
>
> Signed-off-by: Zeng Tao <[email protected]>
> ---
>  drivers/tee/optee/supp.c | 7 +++++++
>  1 file changed, 7 insertions(+)
>
> diff --git a/drivers/tee/optee/supp.c b/drivers/tee/optee/supp.c
> index b4ea067..170dedb 100644
> --- a/drivers/tee/optee/supp.c
> +++ b/drivers/tee/optee/supp.c
> @@ -107,6 +107,13 @@ u32 optee_supp_thrd_req(struct tee_context *ctx, u32 
> func, size_t num_params,
>                 mutex_unlock(&supp->ctx_mutex);
>                 if (interruptable)
>                         break;
> +
> +               /*
> +                * if there is signal pending, and the supplicant has finished
> +                * the rpc job, we need to break out the loop
> +                */
> +               if (try_wait_for_completion(&supp->data_from_supp))
> +                       break;
>         }
>
>         ret = supp->ret;
> --
> 2.7.4
>

Since this patch was posted there has been changes (during the merge
window) to this part of the code. Please rebase, test and post again.

Thanks,
Jens

Reply via email to