summaryrefslogtreecommitdiff
path: root/kernel/sched
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2016-10-03 10:35:02 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2016-10-03 10:35:02 -0700
commitf02700dfc6b61275b8ab000e4cff3f1439b085d8 (patch)
treeeb063dcaceaa35b004f03e00b6511b4c8000802a /kernel/sched
parent73bc67e1ea6c69f640f55a0096698a8206c00a40 (diff)
parent84589336cdd5db269f95dfb8a07bdb8bb13d1dd9 (diff)
Merge "sched: Fix CPU selection when all online CPUs are isolated"
Diffstat (limited to 'kernel/sched')
-rw-r--r--kernel/sched/core.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 612cda15a8b0..4b5b0c3cef7a 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -1590,7 +1590,7 @@ static int select_fallback_rq(int cpu, struct task_struct *p, bool allow_iso)
{
int nid = cpu_to_node(cpu);
const struct cpumask *nodemask = NULL;
- enum { cpuset, possible, fail } state = cpuset;
+ enum { cpuset, possible, fail, bug } state = cpuset;
int dest_cpu;
int isolated_candidate = -1;
@@ -1650,6 +1650,11 @@ static int select_fallback_rq(int cpu, struct task_struct *p, bool allow_iso)
break;
case fail:
+ allow_iso = true;
+ state = bug;
+ break;
+
+ case bug:
BUG();
break;
}