From: Jan Kiszka <jan.kis...@siemens.com> We only reach lostage_task_signal for a kthread if xnthread_signal has sent us. So move the check to the caller, making debugging easier.
Signed-off-by: Jan Kiszka <jan.kis...@siemens.com> --- kernel/cobalt/thread.c | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) diff --git a/kernel/cobalt/thread.c b/kernel/cobalt/thread.c index d3a827eaa..6a3e3fa18 100644 --- a/kernel/cobalt/thread.c +++ b/kernel/cobalt/thread.c @@ -2089,19 +2089,9 @@ struct lostage_signal { int signo, sigval; }; -static inline void do_kthread_signal(struct task_struct *p, - struct xnthread *thread, - struct lostage_signal *rq) -{ - printk(XENO_WARNING - "kernel shadow %s received unhandled signal %d (action=0x%x)\n", - thread->name, rq->signo, rq->sigval); -} - static void lostage_task_signal(struct pipeline_inband_work *inband_work) { struct lostage_signal *rq; - struct xnthread *thread; struct task_struct *p; kernel_siginfo_t si; int signo; @@ -2109,12 +2099,6 @@ static void lostage_task_signal(struct pipeline_inband_work *inband_work) rq = container_of(inband_work, struct lostage_signal, inband_work); p = rq->task; - thread = xnthread_from_task(p); - if (thread && !xnthread_test_state(thread, XNUSER)) { - do_kthread_signal(p, thread, rq); - return; - } - signo = rq->signo; trace_cobalt_lostage_signal(p, signo); @@ -2298,6 +2282,9 @@ void xnthread_signal(struct xnthread *thread, int sig, int arg) .sigval = sig == SIGDEBUG ? arg | sigdebug_marker : arg, }; + if (XENO_WARN_ON(COBALT, !xnthread_test_state(thread, XNUSER))) + return; + trace_cobalt_lostage_request("signal", sigwork.task); pipeline_post_inband_work(&sigwork); -- 2.26.2