[PATCH AUTOSEL 5.4 092/187] pinctrl: pinmux: fix a possible null pointer in pinmux_can_be_used_for_gpio

From: Sasha Levin
Date: Fri Dec 27 2019 - 12:42:55 EST


From: Alexandre Torgue <alexandre.torgue@xxxxxx>

[ Upstream commit 6ba2fd391ac58c1a26874f10c3054a1ea4aca2d0 ]

This commit adds a check on ops pointer to avoid a kernel panic when
ops->strict is used. Indeed, on some pinctrl driver (at least for
pinctrl-stmfx) the pinmux ops is not implemented. Let's assume than gpio
can be used in this case.

Fixes: 472a61e777fe ("pinctrl/gpio: Take MUX usage into account")
Signed-off-by: Alexandre Torgue <alexandre.torgue@xxxxxx>
Link: https://lore.kernel.org/r/20191204144106.10876-1-alexandre.torgue@xxxxxx
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>
---
drivers/pinctrl/pinmux.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/pinctrl/pinmux.c b/drivers/pinctrl/pinmux.c
index e914f6efd39e..9503ddf2edc7 100644
--- a/drivers/pinctrl/pinmux.c
+++ b/drivers/pinctrl/pinmux.c
@@ -85,7 +85,7 @@ bool pinmux_can_be_used_for_gpio(struct pinctrl_dev *pctldev, unsigned pin)
const struct pinmux_ops *ops = pctldev->desc->pmxops;

/* Can't inspect pin, assume it can be used */
- if (!desc)
+ if (!desc || !ops)
return true;

if (ops->strict && desc->mux_usecount)
--
2.20.1