OSDN Git Service

mdss: mdp: Fix fudge factor overflow check
authorAnimesh Kishore <animeshk@codeaurora.org>
Tue, 27 Mar 2018 19:23:31 +0000 (00:53 +0530)
committerGerrit - the friendly Code Review server <code-review@localhost>
Tue, 25 Sep 2018 04:30:51 +0000 (21:30 -0700)
Fudge adjustment is always 64 bit operation
irrespective of underlying architecture is
32/64 bit. Fix max value to compare overflow
against. Add warning if adjustments can't go
through without overflow.

Change-Id: I9c15ea8c1754c9ddb997546dc476bb6d45198524
Signed-off-by: Animesh Kishore <animeshk@codeaurora.org>
drivers/video/fbdev/msm/mdss_mdp_ctl.c

index ec56bcf..8cbe329 100644 (file)
@@ -77,13 +77,15 @@ static inline u64 fudge_factor(u64 val, u32 numer, u32 denom)
        u64 result = val;
 
        if (val) {
-               u64 temp = -1UL;
+               u64 temp = U64_MAX;
 
                do_div(temp, val);
                if (temp > numer) {
                        /* no overflow, so we can do the operation*/
                        result = (val * (u64)numer);
                        do_div(result, denom);
+               } else {
+                       pr_warn("Overflow, skip fudge factor\n");
                }
        }
        return result;