| From ecf123251be9c1f03a6c039072a85025f91edce9 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Wed, 4 Dec 2019 15:41:06 +0100 |
| Subject: pinctrl: pinmux: fix a possible null pointer in |
| pinmux_can_be_used_for_gpio |
| |
| From: Alexandre Torgue <alexandre.torgue@st.com> |
| |
| [ 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@st.com> |
| Link: https://lore.kernel.org/r/20191204144106.10876-1-alexandre.torgue@st.com |
| Signed-off-by: Linus Walleij <linus.walleij@linaro.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| 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 |
| |