diff options
author | Alex Shi <alex.shi@linaro.org> | 2018-03-20 02:25:07 +0000 |
---|---|---|
committer | Alex Shi <alex.shi@linaro.org> | 2018-03-20 02:25:07 +0000 |
commit | 031f431679b03ba7e791dd051fc13f51f806fcd7 (patch) | |
tree | 9018f8a4a6c04feaf0180cae915dfe804913ce34 /kernel/sched/core.c | |
parent | f7901365aa48b20b25f8402e0fd1eea4ac6c55e7 (diff) | |
parent | 91db57e54eb9be1560454d6a370d67847b05735f (diff) |
Merge remote-tracking branch 'rt-stable/v4.4-rt' into linux-linaro-lsk-v4.4-rtlsk-v4.4-18.03-rt
Diffstat (limited to 'kernel/sched/core.c')
-rw-r--r-- | kernel/sched/core.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/kernel/sched/core.c b/kernel/sched/core.c index db2d81c8cb72..29535116c824 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -6202,6 +6202,19 @@ static void rq_attach_root(struct rq *rq, struct root_domain *rd) call_rcu_sched(&old_rd->rcu, free_rootdomain); } +void sched_get_rd(struct root_domain *rd) +{ + atomic_inc(&rd->refcount); +} + +void sched_put_rd(struct root_domain *rd) +{ + if (!atomic_dec_and_test(&rd->refcount)) + return; + + call_rcu_sched(&rd->rcu, free_rootdomain); +} + static int init_rootdomain(struct root_domain *rd) { memset(rd, 0, sizeof(*rd)); |