pinctrl: sunxi: Add some defensiveness for regulators array
The sunxi pinctrl has a fixed size array it uses to store regulators used in the driver. There is currently nothing that ensures that the number of elements in the array is large enough to map the regulators defined by the individual SoCs. While this is currently the case having an explicit check in there will make life easier for anyone debugging memory issues that manifest in the driver so let's add one. Signed-off-by: Mark Brown <broonie@kernel.org> Reviewed-by: Chen-Yu Tsai <wens@csie.org> Reviewed-by: Jernej Skrabec <jernej.skrabec@gmail.com> Link: https://lore.kernel.org/r/20230712-pinctrl-sunxi-boudns-v1-1-85f37de79b9f@kernel.org Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
committed by
Linus Walleij
parent
99084881de
commit
f147624220
@@ -848,6 +848,9 @@ static int sunxi_pmx_request(struct pinctrl_dev *pctldev, unsigned offset)
|
||||
char supply[16];
|
||||
int ret;
|
||||
|
||||
if (WARN_ON_ONCE(bank_offset >= ARRAY_SIZE(pctl->regulators)))
|
||||
return -EINVAL;
|
||||
|
||||
if (reg) {
|
||||
refcount_inc(&s_reg->refcount);
|
||||
return 0;
|
||||
|
||||
Reference in New Issue
Block a user