在 2024/8/1 22:06, Oleg Nesterov 写道:
> 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.
Oleg. Did i overlook some thing obvious here?
>
> But let me read this patch more carefully and reply on weekend,
> I am a bit busy right now.
Sure, thanks.
>
> Thanks,
>
> Oleg.
>
>
--
BR
Liao, Chang