Merge branch 'linux-linaro-lsk-v4.4' into linux-linaro-lsk-v4.4-android
[firefly-linux-kernel-4.4.55.git] / kernel / sched / sched.h
index 0b1bd6e8e1c8dc5a349b7b9efbf70f91302aa036..2f2b959ad24485ca8eaf2907b2fc66d58e04bc33 100644 (file)
@@ -1577,9 +1577,10 @@ static inline unsigned long __cpu_util(int cpu, int delta)
        unsigned long capacity = capacity_orig_of(cpu);
 
 #ifdef CONFIG_SCHED_WALT
-       if (!walt_disabled && sysctl_sched_use_walt_cpu_util)
-               util = (cpu_rq(cpu)->prev_runnable_sum << SCHED_LOAD_SHIFT) /
-                       walt_ravg_window;
+       if (!walt_disabled && sysctl_sched_use_walt_cpu_util) {
+               util = cpu_rq(cpu)->prev_runnable_sum << SCHED_LOAD_SHIFT;
+               do_div(util, walt_ravg_window);
+       }
 #endif
        delta += util;
        if (delta < 0)
@@ -1832,7 +1833,8 @@ static inline int double_lock_balance(struct rq *this_rq, struct rq *busiest)
 static inline void double_unlock_balance(struct rq *this_rq, struct rq *busiest)
        __releases(busiest->lock)
 {
-       raw_spin_unlock(&busiest->lock);
+       if (this_rq != busiest)
+               raw_spin_unlock(&busiest->lock);
        lock_set_subclass(&this_rq->lock.dep_map, 0, _RET_IP_);
 }