OSDN Git Service

clk: ti: Use int to check return value from of_property_count_elems_of_size()
authorStephen Boyd <sboyd@kernel.org>
Tue, 25 Jun 2019 01:06:15 +0000 (18:06 -0700)
committerStephen Boyd <sboyd@kernel.org>
Tue, 25 Jun 2019 01:11:41 +0000 (18:11 -0700)
This function can return a negative number when it fails, but res->sets
is at most a u16 which can't hold that negative number. Let's store the
result into an int, ret, and then assign that to res->sets when it works
to avoid this logical impossibility.

Signed-off-by: Stephen Boyd <sboyd@kernel.org>
drivers/firmware/ti_sci.c

index b417cef..7696c69 100644 (file)
@@ -2402,12 +2402,13 @@ devm_ti_sci_get_of_resource(const struct ti_sci_handle *handle,
        if (!res)
                return ERR_PTR(-ENOMEM);
 
-       res->sets = of_property_count_elems_of_size(dev_of_node(dev), of_prop,
-                                                   sizeof(u32));
-       if (res->sets < 0) {
+       ret = of_property_count_elems_of_size(dev_of_node(dev), of_prop,
+                                             sizeof(u32));
+       if (ret < 0) {
                dev_err(dev, "%s resource type ids not available\n", of_prop);
-               return ERR_PTR(res->sets);
+               return ERR_PTR(ret);
        }
+       res->sets = ret;
 
        res->desc = devm_kcalloc(dev, res->sets, sizeof(*res->desc),
                                 GFP_KERNEL);