On Tue, Apr 05, 2016 at 01:38:35PM -0400, Chris Metcalf wrote:
> +void task_isolation_interrupt(struct task_struct *task, const char *buf)
> +{
> +     siginfo_t info = {};
> +     int sig;
> +
> +     pr_warn("%s/%d: task_isolation strict mode violated by %s\n",
> +             task->comm, task->pid, buf);
> +

So the function name suggests this is called for interrupts, except its
purpose is to deliver a signal.

Now, in case of exceptions the violation isn't necessarily _by_ the task
itself. You might want to change that to report the exception
type/number instead of the affected task.

> +     /* Get the signal number to use. */
> +     sig = PR_TASK_ISOLATION_GET_SIG(task->task_isolation_flags);
> +     if (sig == 0)
> +             sig = SIGKILL;
> +     info.si_signo = sig;
> +
> +     /*
> +      * Turn off task isolation mode entirely to avoid spamming
> +      * the process with signals.  It can re-enable task isolation
> +      * mode in the signal handler if it wants to.
> +      */
> +     task_isolation_set_flags(task, 0);
> +
> +     send_sig_info(sig, &info, task);
> +}
--
To unsubscribe from this list: send the line "unsubscribe linux-doc" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to