diff options
author | Nathan Chancellor <nathan@kernel.org> | 2023-10-05 10:25:27 -0700 |
---|---|---|
committer | Viresh Kumar <viresh.kumar@linaro.org> | 2023-10-06 12:49:29 +0530 |
commit | 184ff4f721638e37a5a5907bf98962b6d9318ef6 (patch) | |
tree | 35f44bc10cb25c53349425e8a94a79b70963699b /drivers/opp | |
parent | 693bb8a4d1a762058c5dbf42fb95a567931f706e (diff) | |
download | lwn-184ff4f721638e37a5a5907bf98962b6d9318ef6.tar.gz lwn-184ff4f721638e37a5a5907bf98962b6d9318ef6.zip |
OPP: Fix -Wunsequenced in _of_add_opp_table_v1()
Clang warns (or errors with CONFIG_WERROR=y):
drivers/opp/of.c:1081:28: error: multiple unsequenced modifications to 'val' [-Werror,-Wunsequenced]
1081 | .freq = be32_to_cpup(val++) * 1000,
| ^
1082 | .u_volt = be32_to_cpup(val++),
| ~~
1 error generated.
There is no sequence point in a designated initializer. Move back to
separate variables for the creation of the values, so that there are
sequence points between each evaluation and increment of val.
Fixes: 75bbc92c09d8 ("OPP: Add dev_pm_opp_add_dynamic() to allow more flexibility")
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Diffstat (limited to 'drivers/opp')
-rw-r--r-- | drivers/opp/of.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/opp/of.c b/drivers/opp/of.c index ade6d42cae46..ae5c405bbf9a 100644 --- a/drivers/opp/of.c +++ b/drivers/opp/of.c @@ -1077,9 +1077,11 @@ static int _of_add_opp_table_v1(struct device *dev, struct opp_table *opp_table) val = prop->value; while (nr) { + unsigned long freq = be32_to_cpup(val++) * 1000; + unsigned long volt = be32_to_cpup(val++); struct dev_pm_opp_data data = { - .freq = be32_to_cpup(val++) * 1000, - .u_volt = be32_to_cpup(val++), + .freq = freq, + .u_volt = volt, }; ret = _opp_add_v1(opp_table, dev, &data, false); |