On 08/01, Liao Chang wrote:
>
> @@ -2276,22 +2277,25 @@ static void handle_singlestep(struct uprobe_task 
> *utask, struct pt_regs *regs)
>       int err = 0;
>  
>       uprobe = utask->active_uprobe;
> -     if (utask->state == UTASK_SSTEP_ACK)
> +     switch (utask->state) {
> +     case UTASK_SSTEP_ACK:
>               err = arch_uprobe_post_xol(&uprobe->arch, regs);
> -     else if (utask->state == UTASK_SSTEP_TRAPPED)
> +             break;
> +     case UTASK_SSTEP_TRAPPED:
>               arch_uprobe_abort_xol(&uprobe->arch, regs);
> -     else
> +             fallthrough;
> +     case UTASK_SSTEP_DENY_SIGNAL:
> +             set_tsk_thread_flag(current, TIF_SIGPENDING);
> +             break;
> +     default:
>               WARN_ON_ONCE(1);
> +     }

Liao, at first glance this change looks "obviously wrong" to me.

But let me read this patch more carefully and reply on weekend,
I am a bit busy right now.

Thanks,

Oleg.


Reply via email to