aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/sched.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/sched.c')
-rw-r--r--kernel/sched.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/kernel/sched.c b/kernel/sched.c
index 82cc839c9210..4c7e2bcdfa89 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -6877,15 +6877,17 @@ cpu_attach_domain(struct sched_domain *sd, struct root_domain *rd, int cpu)
6877 struct sched_domain *tmp; 6877 struct sched_domain *tmp;
6878 6878
6879 /* Remove the sched domains which do not contribute to scheduling. */ 6879 /* Remove the sched domains which do not contribute to scheduling. */
6880 for (tmp = sd; tmp; tmp = tmp->parent) { 6880 for (tmp = sd; tmp; ) {
6881 struct sched_domain *parent = tmp->parent; 6881 struct sched_domain *parent = tmp->parent;
6882 if (!parent) 6882 if (!parent)
6883 break; 6883 break;
6884
6884 if (sd_parent_degenerate(tmp, parent)) { 6885 if (sd_parent_degenerate(tmp, parent)) {
6885 tmp->parent = parent->parent; 6886 tmp->parent = parent->parent;
6886 if (parent->parent) 6887 if (parent->parent)
6887 parent->parent->child = tmp; 6888 parent->parent->child = tmp;
6888 } 6889 } else
6890 tmp = tmp->parent;
6889 } 6891 }
6890 6892
6891 if (sd && sd_degenerate(sd)) { 6893 if (sd && sd_degenerate(sd)) {