diff --git a/include/linux/sched.h b/include/linux/sched.h index 888e5cc2fb6a2651b574fe4f9df18f2ad7d10366..fbd0f947643cc1db56758030cdce06873c6c17ed 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -1416,7 +1416,12 @@ struct task_struct { KABI_RESERVE(4) KABI_RESERVE(5) #endif +#ifdef CONFIG_BPF_SCHED + /* Used to pad the tag of a task */ + KABI_USE(6, long tag) +#else KABI_RESERVE(6) +#endif KABI_RESERVE(7) KABI_RESERVE(8) KABI_RESERVE(9) diff --git a/init/init_task.c b/init/init_task.c index 891007de2eef4f5a1fa3f00d2d84fc97c989cd49..49418809de269f59944026ac70aad654da40af2e 100644 --- a/init/init_task.c +++ b/init/init_task.c @@ -216,6 +216,9 @@ struct task_struct init_task #endif #ifdef CONFIG_SECCOMP_FILTER .seccomp = { .filter_count = ATOMIC_INIT(0) }, +#endif +#ifdef CONFIG_BPF_SCHED + .tag = 0, #endif ._resvd = &init_task_struct_resvd, }; diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 61b89cf6997679abbeeebff0adc64b92c250476b..2c30aceed1e9981c33b2d7ee6f46c356adade42f 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -3477,6 +3477,9 @@ static void __sched_fork(unsigned long clone_flags, struct task_struct *p) #ifdef CONFIG_SMP p->wake_entry.u_flags = CSD_TYPE_TTWU; #endif +#ifdef CONFIG_BPF_SCHED + p->tag = 0; +#endif } DEFINE_STATIC_KEY_FALSE(sched_numa_balancing);