aboutsummaryrefslogtreecommitdiff
path: root/kernel/sched/core.c
diff options
context:
space:
mode:
authorAlex Shi <alex.shi@linaro.org>2018-03-20 02:25:07 +0000
committerAlex Shi <alex.shi@linaro.org>2018-03-20 02:25:07 +0000
commit031f431679b03ba7e791dd051fc13f51f806fcd7 (patch)
tree9018f8a4a6c04feaf0180cae915dfe804913ce34 /kernel/sched/core.c
parentf7901365aa48b20b25f8402e0fd1eea4ac6c55e7 (diff)
parent91db57e54eb9be1560454d6a370d67847b05735f (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.c13
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));