|
@@ -218,91 +218,12 @@ extern struct cred init_cred;
|
|
|
#define INIT_TASK_SECURITY
|
|
|
#endif
|
|
|
|
|
|
-/*
|
|
|
- * INIT_TASK is used to set up the first task table, touch at
|
|
|
- * your own risk!. Base=0, limit=0x1fffff (=2MB)
|
|
|
- */
|
|
|
-#define INIT_TASK(tsk) \
|
|
|
-{ \
|
|
|
- INIT_TASK_TI(tsk) \
|
|
|
- .state = 0, \
|
|
|
- .stack = init_stack, \
|
|
|
- .usage = ATOMIC_INIT(2), \
|
|
|
- .flags = PF_KTHREAD, \
|
|
|
- .prio = MAX_PRIO-20, \
|
|
|
- .static_prio = MAX_PRIO-20, \
|
|
|
- .normal_prio = MAX_PRIO-20, \
|
|
|
- .policy = SCHED_NORMAL, \
|
|
|
- .cpus_allowed = CPU_MASK_ALL, \
|
|
|
- .nr_cpus_allowed= NR_CPUS, \
|
|
|
- .mm = NULL, \
|
|
|
- .active_mm = &init_mm, \
|
|
|
- .restart_block = { \
|
|
|
- .fn = do_no_restart_syscall, \
|
|
|
- }, \
|
|
|
- .se = { \
|
|
|
- .group_node = LIST_HEAD_INIT(tsk.se.group_node), \
|
|
|
- }, \
|
|
|
- .rt = { \
|
|
|
- .run_list = LIST_HEAD_INIT(tsk.rt.run_list), \
|
|
|
- .time_slice = RR_TIMESLICE, \
|
|
|
- }, \
|
|
|
- .tasks = LIST_HEAD_INIT(tsk.tasks), \
|
|
|
- INIT_PUSHABLE_TASKS(tsk) \
|
|
|
- INIT_CGROUP_SCHED(tsk) \
|
|
|
- .ptraced = LIST_HEAD_INIT(tsk.ptraced), \
|
|
|
- .ptrace_entry = LIST_HEAD_INIT(tsk.ptrace_entry), \
|
|
|
- .real_parent = &tsk, \
|
|
|
- .parent = &tsk, \
|
|
|
- .children = LIST_HEAD_INIT(tsk.children), \
|
|
|
- .sibling = LIST_HEAD_INIT(tsk.sibling), \
|
|
|
- .group_leader = &tsk, \
|
|
|
- RCU_POINTER_INITIALIZER(real_cred, &init_cred), \
|
|
|
- RCU_POINTER_INITIALIZER(cred, &init_cred), \
|
|
|
- .comm = INIT_TASK_COMM, \
|
|
|
- .thread = INIT_THREAD, \
|
|
|
- .fs = &init_fs, \
|
|
|
- .files = &init_files, \
|
|
|
- .signal = &init_signals, \
|
|
|
- .sighand = &init_sighand, \
|
|
|
- .nsproxy = &init_nsproxy, \
|
|
|
- .pending = { \
|
|
|
- .list = LIST_HEAD_INIT(tsk.pending.list), \
|
|
|
- .signal = {{0}}}, \
|
|
|
- .blocked = {{0}}, \
|
|
|
- .alloc_lock = __SPIN_LOCK_UNLOCKED(tsk.alloc_lock), \
|
|
|
- .journal_info = NULL, \
|
|
|
- INIT_CPU_TIMERS(tsk) \
|
|
|
- .pi_lock = __RAW_SPIN_LOCK_UNLOCKED(tsk.pi_lock), \
|
|
|
- .timer_slack_ns = 50000, /* 50 usec default slack */ \
|
|
|
- .pids = { \
|
|
|
- [PIDTYPE_PID] = INIT_PID_LINK(PIDTYPE_PID), \
|
|
|
- [PIDTYPE_PGID] = INIT_PID_LINK(PIDTYPE_PGID), \
|
|
|
- [PIDTYPE_SID] = INIT_PID_LINK(PIDTYPE_SID), \
|
|
|
- }, \
|
|
|
- .thread_group = LIST_HEAD_INIT(tsk.thread_group), \
|
|
|
- .thread_node = LIST_HEAD_INIT(init_signals.thread_head), \
|
|
|
- INIT_IDS \
|
|
|
- INIT_PERF_EVENTS(tsk) \
|
|
|
- INIT_TRACE_IRQFLAGS \
|
|
|
- INIT_LOCKDEP \
|
|
|
- INIT_FTRACE_GRAPH \
|
|
|
- INIT_TRACE_RECURSION \
|
|
|
- INIT_TASK_RCU_PREEMPT(tsk) \
|
|
|
- INIT_TASK_RCU_TASKS(tsk) \
|
|
|
- INIT_CPUSET_SEQ(tsk) \
|
|
|
- INIT_RT_MUTEXES(tsk) \
|
|
|
- INIT_PREV_CPUTIME(tsk) \
|
|
|
- INIT_VTIME(tsk) \
|
|
|
- INIT_NUMA_BALANCING(tsk) \
|
|
|
- INIT_KASAN(tsk) \
|
|
|
- INIT_LIVEPATCH(tsk) \
|
|
|
- INIT_TASK_SECURITY \
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
/* Attach to the init_task data structure for proper alignment */
|
|
|
+#ifdef CONFIG_ARCH_TASK_STRUCT_ON_STACK
|
|
|
#define __init_task_data __attribute__((__section__(".data..init_task")))
|
|
|
+#else
|
|
|
+#define __init_task_data /**/
|
|
|
+#endif
|
|
|
|
|
|
/* Attach to the thread_info data structure for proper alignment */
|
|
|
#define __init_thread_info __attribute__((__section__(".data..init_thread_info")))
|