[PATCH v2] leds: lp55xx: Remove redundant test for invalid channel number

Michal Vokáč posted 1 patch 1 month, 1 week ago
drivers/leds/leds-lp55xx-common.c | 3 ---
1 file changed, 3 deletions(-)
[PATCH v2] leds: lp55xx: Remove redundant test for invalid channel number
Posted by Michal Vokáč 1 month, 1 week ago
Since commit 92a81562e695 ("leds: lp55xx: Add multicolor framework
support to lp55xx") there are two subsequent tests if the chan_nr
(reg property) is in valid range. One in the lp55xx_init_led()
function and one in the lp55xx_parse_common_child() function that
was added with the mentioned commit.

There are two issues with that.

First is in the lp55xx_parse_common_child() function where the reg
property is tested right after it is read from the device tree.
Test for the upper range is not correct though. Valid reg values are
0 to (max_channel - 1) so it should be >=.

Second issue is that in case the parsed value is out of the range
the probe just fails and no error message is shown as the code never
reaches the second test that prints and error message.

Remove the test form lp55xx_parse_common_child() function completely
and keep the one in lp55xx_init_led() function to deal with it.

Fixes: 92a81562e695 ("leds: lp55xx: Add multicolor framework support to lp55xx")
Cc: <stable@vger.kernel.org>
Signed-off-by: Michal Vokáč <michal.vokac@ysoft.com>
---
v2:
- Complete change of the approach to the problem.

In v1 I removed the test from lp55xx_init_led() but I failed  to test that
solution properly. It could not work. In v2 I removed the test for chan_nr
being out of range from the lp55xx_parse_common_child() function.

- Re-worded the subject and commit message to fit the changes. It was:

 "leds: lp55xx: Fix check for invalid channel number"

 drivers/leds/leds-lp55xx-common.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/drivers/leds/leds-lp55xx-common.c b/drivers/leds/leds-lp55xx-common.c
index 5a2e259679cf..e71456a56ab8 100644
--- a/drivers/leds/leds-lp55xx-common.c
+++ b/drivers/leds/leds-lp55xx-common.c
@@ -1132,9 +1132,6 @@ static int lp55xx_parse_common_child(struct device_node *np,
 	if (ret)
 		return ret;
 
-	if (*chan_nr < 0 || *chan_nr > cfg->max_channel)
-		return -EINVAL;
-
 	return 0;
 }
 
-- 
2.1.4

Re: (subset) [PATCH v2] leds: lp55xx: Remove redundant test for invalid channel number
Posted by Lee Jones 3 weeks, 4 days ago
On Thu, 17 Oct 2024 17:08:12 +0200, Michal Vokáč wrote:
> Since commit 92a81562e695 ("leds: lp55xx: Add multicolor framework
> support to lp55xx") there are two subsequent tests if the chan_nr
> (reg property) is in valid range. One in the lp55xx_init_led()
> function and one in the lp55xx_parse_common_child() function that
> was added with the mentioned commit.
> 
> There are two issues with that.
> 
> [...]

Applied, thanks!

[1/1] leds: lp55xx: Remove redundant test for invalid channel number
      commit: 09b1ef9813a0742674f7efe26104403ca94a1b4a

--
Lee Jones [李琼斯]