diff --git a/kernel/sched_fair.c b/kernel/sched_fair.c
index 31aa1b9fa7623e15c51dab79b8eee0a1b34c110f..f2cc59080efa4f9ae1e12aa30afe2e3fe08a86f9 100644
--- a/kernel/sched_fair.c
+++ b/kernel/sched_fair.c
@@ -283,12 +283,8 @@ static u64 __sched_period(unsigned long nr_running)
  */
 static u64 sched_slice(struct cfs_rq *cfs_rq, struct sched_entity *se)
 {
-	u64 slice = __sched_period(cfs_rq->nr_running);
-
-	slice *= se->load.weight;
-	do_div(slice, cfs_rq->load.weight);
-
-	return slice;
+	return calc_delta_mine(__sched_period(cfs_rq->nr_running),
+			       se->load.weight, &cfs_rq->load);
 }
 
 /*