mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-04 01:49:36 +00:00
![Thomas Gleixner](/assets/img/avatar_default.png)
Per task/process data of posix CPU timers is all over the place which makes the code hard to follow and requires ifdeffery. Create a container to hold all this information in one place, so data is consolidated and the ifdeffery can be confined to the posix timer header file and removed from places like fork. As a first step, move the cpu_timers list head array into the new struct and clean up the initializers and simplify fork. The remaining #ifdef in fork will be removed later. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Frederic Weisbecker <frederic@kernel.org> Link: https://lkml.kernel.org/r/20190821192920.819418976@linutronix.de
51 lines
1.4 KiB
C
51 lines
1.4 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef _LINUX__INIT_TASK_H
|
|
#define _LINUX__INIT_TASK_H
|
|
|
|
#include <linux/rcupdate.h>
|
|
#include <linux/irqflags.h>
|
|
#include <linux/utsname.h>
|
|
#include <linux/lockdep.h>
|
|
#include <linux/ftrace.h>
|
|
#include <linux/ipc.h>
|
|
#include <linux/pid_namespace.h>
|
|
#include <linux/user_namespace.h>
|
|
#include <linux/securebits.h>
|
|
#include <linux/seqlock.h>
|
|
#include <linux/rbtree.h>
|
|
#include <linux/refcount.h>
|
|
#include <linux/sched/autogroup.h>
|
|
#include <net/net_namespace.h>
|
|
#include <linux/sched/rt.h>
|
|
#include <linux/livepatch.h>
|
|
#include <linux/mm_types.h>
|
|
|
|
#include <asm/thread_info.h>
|
|
|
|
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 = { \
|
|
.lock = __RAW_SPIN_LOCK_UNLOCKED(x.prev_cputime.lock), \
|
|
},
|
|
#else
|
|
#define INIT_PREV_CPUTIME(x)
|
|
#endif
|
|
|
|
#define INIT_TASK_COMM "swapper"
|
|
|
|
/* 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")))
|
|
|
|
#endif
|