diff options
Diffstat (limited to 'kernel/kernel/sched')
-rw-r--r-- | kernel/kernel/sched/core.c | 8 | ||||
-rw-r--r-- | kernel/kernel/sched/work-simple.c | 1 |
2 files changed, 9 insertions, 0 deletions
diff --git a/kernel/kernel/sched/core.c b/kernel/kernel/sched/core.c index 392aad4ec..799b75b27 100644 --- a/kernel/kernel/sched/core.c +++ b/kernel/kernel/sched/core.c @@ -5672,6 +5672,14 @@ static int sched_cpu_active(struct notifier_block *nfb, case CPU_STARTING: set_cpu_rq_start_time(); return NOTIFY_OK; + case CPU_ONLINE: + /* + * At this point a starting CPU has marked itself as online via + * set_cpu_online(). But it might not yet have marked itself + * as active, which is essential from here on. + * + * Thus, fall-through and help the starting CPU along. + */ case CPU_DOWN_FAILED: set_cpu_active((long)hcpu, true); return NOTIFY_OK; diff --git a/kernel/kernel/sched/work-simple.c b/kernel/kernel/sched/work-simple.c index c996f755d..e57a05225 100644 --- a/kernel/kernel/sched/work-simple.c +++ b/kernel/kernel/sched/work-simple.c @@ -10,6 +10,7 @@ #include <linux/kthread.h> #include <linux/slab.h> #include <linux/spinlock.h> +#include <linux/export.h> #define SWORK_EVENT_PENDING (1 << 0) |