Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1230451 > unrolled thread

[PATCH V2] PM / OPP: of_property_count_u32_elems() can return errors

Started byViresh Kumar <viresh.kumar@linaro.org>
First post2015-09-22 18:40 +0200
Last post2015-09-25 23:20 +0200
Articles 3 — 3 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH V2] PM / OPP: of_property_count_u32_elems() can return errors Viresh Kumar <viresh.kumar@linaro.org> - 2015-09-22 18:40 +0200
    Re: [PATCH V2] PM / OPP: of_property_count_u32_elems() can return  errors Stephen Boyd <sboyd@codeaurora.org> - 2015-09-22 19:00 +0200
      Re: [PATCH V2] PM / OPP: of_property_count_u32_elems() can return errors "Rafael J. Wysocki" <rjw@rjwysocki.net> - 2015-09-25 23:20 +0200

#1230451 — [PATCH V2] PM / OPP: of_property_count_u32_elems() can return errors

FromViresh Kumar <viresh.kumar@linaro.org>
Date2015-09-22 18:40 +0200
Subject[PATCH V2] PM / OPP: of_property_count_u32_elems() can return errors
Message-ID<qbyLM-2nO-29@gated-at.bofh.it>
of_property_count_u32_elems() will never return 0, but a -ve error value
of a positive count. And so the current !count check is wrong.

Also, a missing "opp-microvolt" property isn't a problem and so we need
to do of_find_property() separately to confirm that.

Fixes: 274659029c9d ("PM / OPP: Add support to parse "operating-points-v2" bindings")
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
---
V1->V2:
- Dropped 'prop' variable.

 drivers/base/power/opp.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/drivers/base/power/opp.c b/drivers/base/power/opp.c
index 28cd75c535b0..1194669c2bb5 100644
--- a/drivers/base/power/opp.c
+++ b/drivers/base/power/opp.c
@@ -892,10 +892,17 @@ static int opp_get_microvolt(struct dev_pm_opp *opp, struct device *dev)
 	u32 microvolt[3] = {0};
 	int count, ret;
 
-	count = of_property_count_u32_elems(opp->np, "opp-microvolt");
-	if (!count)
+	/* Missing property isn't a problem, but an invalid entry is */
+	if (!of_find_property(opp->np, "opp-microvolt", NULL))
 		return 0;
 
+	count = of_property_count_u32_elems(opp->np, "opp-microvolt");
+	if (count < 0) {
+		dev_err(dev, "%s: Invalid opp-microvolt property (%d)\n",
+			__func__, count);
+		return count;
+	}
+
 	/* There can be one or three elements here */
 	if (count != 1 && count != 3) {
 		dev_err(dev, "%s: Invalid number of elements in opp-microvolt property (%d)\n",
-- 
2.4.0

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [next] | [standalone]


#1230465 — Re: [PATCH V2] PM / OPP: of_property_count_u32_elems() can return errors

FromStephen Boyd <sboyd@codeaurora.org>
Date2015-09-22 19:00 +0200
SubjectRe: [PATCH V2] PM / OPP: of_property_count_u32_elems() can return errors
Message-ID<qbz58-2KT-5@gated-at.bofh.it>
In reply to#1230451
On 09/22, Viresh Kumar wrote:
> of_property_count_u32_elems() will never return 0, but a -ve error value
> of a positive count. And so the current !count check is wrong.
> 
> Also, a missing "opp-microvolt" property isn't a problem and so we need
> to do of_find_property() separately to confirm that.
> 
> Fixes: 274659029c9d ("PM / OPP: Add support to parse "operating-points-v2" bindings")
> Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
> ---

Reviewed-by: Stephen Boyd <sboyd@codeaurora.org>

-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1233069

From"Rafael J. Wysocki" <rjw@rjwysocki.net>
Date2015-09-25 23:20 +0200
Message-ID<qcIzo-4Ol-5@gated-at.bofh.it>
In reply to#1230465
On Tuesday, September 22, 2015 09:51:27 AM Stephen Boyd wrote:
> On 09/22, Viresh Kumar wrote:
> > of_property_count_u32_elems() will never return 0, but a -ve error value
> > of a positive count. And so the current !count check is wrong.
> > 
> > Also, a missing "opp-microvolt" property isn't a problem and so we need
> > to do of_find_property() separately to confirm that.
> > 
> > Fixes: 274659029c9d ("PM / OPP: Add support to parse "operating-points-v2" bindings")
> > Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
> > ---
> 
> Reviewed-by: Stephen Boyd <sboyd@codeaurora.org>

Applied, thanks!

Rafael

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web