[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <13e12c2bf5e5396e3971137e4ab74e15b38d4b78.camel@linaro.org>
Date: Mon, 09 Feb 2026 14:07:35 +0000
From: André Draszik <andre.draszik@...aro.org>
To: Dan Carpenter <dan.carpenter@...aro.org>
Cc: linux-samsung-soc@...r.kernel.org, linux-kernel
<linux-kernel@...r.kernel.org>
Subject: Re: [bug report] regulator: s2mps11: add S2MPG10 regulator
Hi Dan,
On Mon, 2026-02-09 at 12:45 +0300, Dan Carpenter wrote:
> [ Smatch checking is paused while we raise funding. #SadFace
> https://lore.kernel.org/all/aTaiGSbWZ9DJaGo7@stanley.mountain/ -dan ]
>
> Hello André Draszik,
>
> Commit a2b8b9f33ce3 ("regulator: s2mps11: add S2MPG10 regulator")
> from Jan 22, 2026 (linux-next), leads to the following Smatch static
> checker warning:
>
> drivers/regulator/s2mps11.c:483 s2mpg10_of_parse_cb()
> warn: off by one 'ext_control' == ARRAY_SIZE()?
>
> drivers/regulator/s2mps11.c
> 458 if (of_property_read_u32(np, "samsung,ext-control", &ext_control))
> 459 return 0;
> 460
> 461 switch (s2mps11->dev_type) {
> 462 case S2MPG10:
> 463 switch (desc->id) {
> 464 case S2MPG10_BUCK1 ... S2MPG10_BUCK7:
> 465 case S2MPG10_BUCK10:
> 466 case S2MPG10_LDO3 ... S2MPG10_LDO19:
> 467 if (ext_control > S2MPG10_EXTCTRL_TCXO_ON2)
> 468 return -EINVAL;
> 469 break;
> 470
> 471 case S2MPG10_LDO20:
> 472 if (ext_control < S2MPG10_EXTCTRL_LDO20M_EN2 ||
> 473 ext_control > S2MPG10_EXTCTRL_LDO20M_EN)
> 474 return -EINVAL;
> 475 break;
> 476
> 477 default:
> 478 return -EINVAL;
> 479 }
> 480
> 481 if (ext_control > ARRAY_SIZE(ext_control_s2mpg10))
>
> This should be >= ARRAY_SIZE(). Although the earlier checks prevent an
> out of bounds access, it's still worth fixing the sanity check.
Thanks, yes. Although this was on purpose to avoid duplicated checks. I'd say
this test could be removed altogether as it's just confusing and useless.
Cheers,
Andre'
Powered by blists - more mailing lists