----- On May 14, 2020, at 12:39 PM, Borislav Petkov [email protected] wrote:

> On Thu, May 14, 2020 at 12:03:30PM -0400, Mathieu Desnoyers wrote:
>> - #MC triggered, queuing task work,
>> - unrelated signal happens to be delivered to task,
>> - exit to usermode loop handles do_signal first,
>> - then it runs task work.
> 
> How can that even happen?
> 
> exit_to_usermode_loop->do_signal->get_signal and that does:
> 
>        if (unlikely(current->task_works))
>                task_work_run();
> 
> at the top.
> 
> So the task work will always run before the signal handler.

OK yes, nevermind. I focused on its invocation from tracehook_notify_resume
and missed this invocation in do_signal. My bad.

Thanks,

Mathieu


-- 
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com

Reply via email to