diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2015-08-31 23:55:23 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-08-31 23:55:23 -0400 |
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, | |||
5488 | case CPU_STARTING: | 5488 | case CPU_STARTING: |
5489 | set_cpu_rq_start_time(); | 5489 | set_cpu_rq_start_time(); |
5490 | return NOTIFY_OK; | 5490 | return NOTIFY_OK; |
5491 | case CPU_ONLINE: | ||
5492 | /* | ||
5493 | * At this point a starting CPU has marked itself as online via | ||
5494 | * set_cpu_online(). But it might not yet have marked itself | ||
5495 | * as active, which is essential from here on. | ||
5496 | * | ||
5497 | * Thus, fall-through and help the starting CPU along. | ||
5498 | */ | ||
5491 | case CPU_DOWN_FAILED: | 5499 | case CPU_DOWN_FAILED: |
5492 | set_cpu_active((long)hcpu, true); | 5500 | set_cpu_active((long)hcpu, true); |
5493 | return NOTIFY_OK; | 5501 | return NOTIFY_OK; |