thermal: rockchip: fix a impossible condition caused by the warning
authorCaesar Wang <wxt@rock-chips.com>
Sun, 20 Dec 2015 09:06:45 +0000 (17:06 +0800)
committerHuang, Tao <huangtao@rock-chips.com>
Wed, 3 Feb 2016 02:27:49 +0000 (10:27 +0800)
As the Dan report the smatch check the thermal driver warning:
drivers/thermal/rockchip_thermal.c:551 rockchip_configure_from_dt()
warn: impossible condition '(thermal->tshut_temp > ((~0 >> 1))) =>
(s32min-s32max > s32max)'

Although The shut_temp read from DT is u32,the temperature is currently
represented as int not long in the thermal driver.
Let's change to make shut_temp instead of the thermal->tshut_temp for
the condition.

Fixes: commit 437df2172e8d
("thermal: rockchip: consistently use int for temperatures")

Change-Id: I7951bf83baec2ef0ae8fe50d5735f992a7d3ed41
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
drivers/thermal/rockchip_thermal.c

index 039c76bcf509f5d0ac5d744b57782e041e0e9a98..5c58d489eaf8ca950ac4a378c8837e4e23cff117 100644 (file)
@@ -693,15 +693,14 @@ static int rockchip_configure_from_dt(struct device *dev,
                         thermal->chip->tshut_temp);
                thermal->tshut_temp = thermal->chip->tshut_temp;
        } else {
+               if (shut_temp > INT_MAX) {
+                       dev_err(dev, "Invalid tshut temperature specified: %d\n",
+                               shut_temp);
+                       return -ERANGE;
+               }
                thermal->tshut_temp = shut_temp;
        }
 
-       if (thermal->tshut_temp > INT_MAX) {
-               dev_err(dev, "Invalid tshut temperature specified: %d\n",
-                       thermal->tshut_temp);
-               return -ERANGE;
-       }
-
        if (of_property_read_u32(np, "rockchip,hw-tshut-mode", &tshut_mode)) {
                dev_warn(dev,
                         "Missing tshut mode property, using default (%s)\n",