diff options
author | Linus Torvalds | 2015-08-31 20:55:23 -0700 |
---|---|---|
committer | Linus Torvalds | 2015-08-31 20:55:23 -0700 |
commit | 418c2e1f67658460533e4aaa7a0bcc64290ec951 (patch) | |
tree | 3ac2d1c0741297dd591efc4eab0918ad4ed5f530 | |
parent | a1d8561172f369ba56d636df49a6b4d6d77e2123 (diff) | |
parent | dd9d3843755da95f63dd3a376f62b3e45c011210 (diff) |
Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull scheduler fix from Ingo Molnar:
"This is a leftover scheduler fix from the v4.2 cycle"
* 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
sched: Fix cpu_active_mask/cpu_online_mask race
-rw-r--r-- | kernel/sched/core.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/kernel/sched/core.c b/kernel/sched/core.c index a585c7b2ccf0..7819725e9da8 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -5488,6 +5488,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; |