diff options
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/sched.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/kernel/sched.c b/kernel/sched.c index 3de3deab8095..36cc05a76947 100644 --- a/kernel/sched.c +++ b/kernel/sched.c | |||
@@ -9855,13 +9855,15 @@ int alloc_fair_sched_group(struct task_group *tg, struct task_group *parent) | |||
9855 | se = kzalloc_node(sizeof(struct sched_entity), | 9855 | se = kzalloc_node(sizeof(struct sched_entity), |
9856 | GFP_KERNEL, cpu_to_node(i)); | 9856 | GFP_KERNEL, cpu_to_node(i)); |
9857 | if (!se) | 9857 | if (!se) |
9858 | goto err; | 9858 | goto err_free_rq; |
9859 | 9859 | ||
9860 | init_tg_cfs_entry(tg, cfs_rq, se, i, 0, parent->se[i]); | 9860 | init_tg_cfs_entry(tg, cfs_rq, se, i, 0, parent->se[i]); |
9861 | } | 9861 | } |
9862 | 9862 | ||
9863 | return 1; | 9863 | return 1; |
9864 | 9864 | ||
9865 | err_free_rq: | ||
9866 | kfree(cfs_rq); | ||
9865 | err: | 9867 | err: |
9866 | return 0; | 9868 | return 0; |
9867 | } | 9869 | } |
@@ -9943,13 +9945,15 @@ int alloc_rt_sched_group(struct task_group *tg, struct task_group *parent) | |||
9943 | rt_se = kzalloc_node(sizeof(struct sched_rt_entity), | 9945 | rt_se = kzalloc_node(sizeof(struct sched_rt_entity), |
9944 | GFP_KERNEL, cpu_to_node(i)); | 9946 | GFP_KERNEL, cpu_to_node(i)); |
9945 | if (!rt_se) | 9947 | if (!rt_se) |
9946 | goto err; | 9948 | goto err_free_rq; |
9947 | 9949 | ||
9948 | init_tg_rt_entry(tg, rt_rq, rt_se, i, 0, parent->rt_se[i]); | 9950 | init_tg_rt_entry(tg, rt_rq, rt_se, i, 0, parent->rt_se[i]); |
9949 | } | 9951 | } |
9950 | 9952 | ||
9951 | return 1; | 9953 | return 1; |
9952 | 9954 | ||
9955 | err_free_rq: | ||
9956 | kfree(rt_rq); | ||
9953 | err: | 9957 | err: |
9954 | return 0; | 9958 | return 0; |
9955 | } | 9959 | } |