--- x/kernel/vhost_task.c +++ y/kernel/vhost_task.c @@ -34,8 +34,10 @@ static int vhost_task_fn(void *data) if (signal_pending(current)) { struct ksignal ksig; - if (get_signal(&ksig)) + if (get_signal(&ksig)) { + vtsk->fn(vtsk->data); break; + } } /* mb paired w/ vhost_task_stop */