On 11/19, Oleg Nesterov wrote:
>
> At least, don't we also need the patch below?
>
> --- a/kernel/utrace.c
> +++ b/kernel/utrace.c
> @@ -2002,7 +2002,7 @@ int utrace_get_signal(struct task_struct
>                       spin_unlock_irq(&task->sighand->siglock);
>               }
>  
> -             if (resume > UTRACE_REPORT) {
> +             if (resume > UTRACE_REPORT && utrace < UTRACE_RESUME) {
>                       /*
>                        * We only got here to process utrace->resume.
>                        * Despite no callbacks, this report is not spurious.

No, this is wrong. Please see below.

Oleg.

--- a/kernel/utrace.c
+++ b/kernel/utrace.c
@@ -2007,9 +2007,11 @@ int utrace_get_signal(struct task_struct
                         * We only got here to process utrace->resume.
                         * Despite no callbacks, this report is not spurious.
                         */
-                       report.action = resume;
-                       report.spurious = false;
-                       finish_resume_report(task, utrace, &report);
+                       if (resume != UTRACE_RESUME) {
+                               report.action = resume;
+                               report.spurious = false;
+                               finish_resume_report(task, utrace, &report);
+                       }
                        return -1;
                } else if (!(task->utrace_flags & UTRACE_EVENT(QUIESCE))) {
                        /*

Reply via email to