lkml.org 
[lkml]   [2021]   [Oct]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH V4 4/8] fork: Add KERNEL_WORKER flag to ignore signals
    Date
    From: Christian Brauner <christian.brauner@ubuntu.com>

    Since this is mirroring kthread's sig ignore api introduced in

    commit 10ab825bdef8 ("change kernel threads to ignore signals instead of
    blocking them")

    this patch adds an option flag, KERNEL_WORKER_SIG_IGN, handled in
    copy_process() after copy_sighand() and copy_signals() to ease the
    transition from kthreads to this new api.

    Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
    Signed-off-by: Mike Christie <michael.christie@oracle.com>
    ---
    include/linux/sched/task.h | 1 +
    kernel/fork.c | 3 +++
    2 files changed, 4 insertions(+)

    diff --git a/include/linux/sched/task.h b/include/linux/sched/task.h
    index 1153f9e5d10e..5f3928fe0544 100644
    --- a/include/linux/sched/task.h
    +++ b/include/linux/sched/task.h
    @@ -21,6 +21,7 @@ struct css_set;
    #define KERN_WORKER_IO BIT(0)
    #define KERN_WORKER_USER BIT(1)
    #define KERN_WORKER_NO_FILES BIT(2)
    +#define KERN_WORKER_SIG_IGN BIT(3)

    struct kernel_clone_args {
    u64 flags;
    diff --git a/kernel/fork.c b/kernel/fork.c
    index 3161edac1236..07f9e410fb64 100644
    --- a/kernel/fork.c
    +++ b/kernel/fork.c
    @@ -2213,6 +2213,9 @@ static __latent_entropy struct task_struct *copy_process(
    if (retval)
    goto bad_fork_cleanup_io;

    + if (args->worker_flags & KERN_WORKER_SIG_IGN)
    + ignore_signals(p);
    +
    stackleak_task_init(p);

    if (pid != &init_struct_pid) {
    --
    2.25.1
    \
     
     \ /
      Last update: 2021-10-07 23:47    [W:3.501 / U:0.028 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site