lkml.org 
[lkml]   [2017]   [Nov]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Subject[PATCH 4/5] Unroll the INIT_SIGNALS and INIT_SIGHAND macros
    From
    Date
    There doesn't seem to be any need to have the INIT_SIGNALS and INIT_SIGHAND
    macros, so unroll them in their single places of use.

    Signed-off-by: David Howells <dhowells@redhat.com>
    ---

    include/linux/init_task.h | 43 ++++---------------------------------------
    init/init_task.c | 30 ++++++++++++++++++++++++++++--
    2 files changed, 32 insertions(+), 41 deletions(-)

    diff --git a/include/linux/init_task.h b/include/linux/init_task.h
    index b1385e1dca63..5b5f41328115 100644
    --- a/include/linux/init_task.h
    +++ b/include/linux/init_task.h
    @@ -23,6 +23,9 @@

    extern struct files_struct init_files;
    extern struct fs_struct init_fs;
    +extern struct nsproxy init_nsproxy;
    +extern struct group_info init_groups;
    +extern struct cred init_cred;

    #ifndef CONFIG_VIRT_CPU_ACCOUNTING_NATIVE
    #define INIT_PREV_CPUTIME(x) .prev_cputime = { \
    @@ -33,52 +36,16 @@ extern struct fs_struct init_fs;
    #endif

    #ifdef CONFIG_POSIX_TIMERS
    -#define INIT_POSIX_TIMERS(s) \
    - .posix_timers = LIST_HEAD_INIT(s.posix_timers),
    #define INIT_CPU_TIMERS(s) \
    .cpu_timers = { \
    LIST_HEAD_INIT(s.cpu_timers[0]), \
    LIST_HEAD_INIT(s.cpu_timers[1]), \
    - LIST_HEAD_INIT(s.cpu_timers[2]), \
    - },
    -#define INIT_CPUTIMER(s) \
    - .cputimer = { \
    - .cputime_atomic = INIT_CPUTIME_ATOMIC, \
    - .running = false, \
    - .checking_timer = false, \
    + LIST_HEAD_INIT(s.cpu_timers[2]), \
    },
    #else
    -#define INIT_POSIX_TIMERS(s)
    #define INIT_CPU_TIMERS(s)
    -#define INIT_CPUTIMER(s)
    #endif

    -#define INIT_SIGNALS(sig) { \
    - .nr_threads = 1, \
    - .thread_head = LIST_HEAD_INIT(init_task.thread_node), \
    - .wait_chldexit = __WAIT_QUEUE_HEAD_INITIALIZER(sig.wait_chldexit),\
    - .shared_pending = { \
    - .list = LIST_HEAD_INIT(sig.shared_pending.list), \
    - .signal = {{0}}}, \
    - INIT_POSIX_TIMERS(sig) \
    - INIT_CPU_TIMERS(sig) \
    - .rlim = INIT_RLIMITS, \
    - INIT_CPUTIMER(sig) \
    - INIT_PREV_CPUTIME(sig) \
    - .cred_guard_mutex = \
    - __MUTEX_INITIALIZER(sig.cred_guard_mutex), \
    -}
    -
    -extern struct nsproxy init_nsproxy;
    -
    -#define INIT_SIGHAND(sighand) { \
    - .count = ATOMIC_INIT(1), \
    - .action = { { { .sa_handler = SIG_DFL, } }, }, \
    - .siglock = __SPIN_LOCK_UNLOCKED(sighand.siglock), \
    - .signalfd_wqh = __WAIT_QUEUE_HEAD_INITIALIZER(sighand.signalfd_wqh), \
    -}
    -
    -extern struct group_info init_groups;

    #define INIT_STRUCT_PID { \
    .count = ATOMIC_INIT(1), \
    @@ -103,8 +70,6 @@ extern struct group_info init_groups;
    .pid = &init_struct_pid, \
    }

    -extern struct cred init_cred;
    -
    #define INIT_TASK_COMM "swapper"

    /* Attach to the init_task data structure for proper alignment */
    diff --git a/init/init_task.c b/init/init_task.c
    index aa4030a939e5..3ac6e754cf64 100644
    --- a/init/init_task.c
    +++ b/init/init_task.c
    @@ -13,8 +13,34 @@
    #include <asm/pgtable.h>
    #include <linux/uaccess.h>

    -static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
    -static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
    +static struct signal_struct init_signals = {
    + .nr_threads = 1,
    + .thread_head = LIST_HEAD_INIT(init_task.thread_node),
    + .wait_chldexit = __WAIT_QUEUE_HEAD_INITIALIZER(init_signals.wait_chldexit),
    + .shared_pending = {
    + .list = LIST_HEAD_INIT(init_signals.shared_pending.list),
    + .signal = {{0}}
    + },
    + .rlim = INIT_RLIMITS,
    + .cred_guard_mutex = __MUTEX_INITIALIZER(init_signals.cred_guard_mutex),
    +#ifdef CONFIG_POSIX_TIMERS
    + .posix_timers = LIST_HEAD_INIT(init_signals.posix_timers),
    + .cputimer = {
    + .cputime_atomic = INIT_CPUTIME_ATOMIC,
    + .running = false,
    + .checking_timer = false,
    + },
    +#endif
    + INIT_CPU_TIMERS(init_signals)
    + INIT_PREV_CPUTIME(init_signals)
    +};
    +
    +static struct sighand_struct init_sighand = {
    + .count = ATOMIC_INIT(1),
    + .action = { { { .sa_handler = SIG_DFL, } }, },
    + .siglock = __SPIN_LOCK_UNLOCKED(init_sighand.siglock),
    + .signalfd_wqh = __WAIT_QUEUE_HEAD_INITIALIZER(init_sighand.signalfd_wqh),
    +};

    /*
    * Set up the first task table, touch at your own risk!. Base=0,
    \
     
     \ /
      Last update: 2017-11-24 16:33    [W:2.298 / U:0.548 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site