pinmux_generic_get_function may return NULL, and its retval is
dereferenced without check, which will cause a NULL pointer
dereference.
Signed-off-by: clingfei <clf700383@gmail.com>
Reviewed-by: Drew Fustini <dfustini@tenstorrent.com>
Link: https://lore.kernel.org/20241003023307.2138695-1-clf700383@gmail.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
struct th1520_pinctrl *thp = pinctrl_dev_get_drvdata(pctldev);
const struct function_desc *func = pinmux_generic_get_function(pctldev, fsel);
+ if (!func)
+ return -EINVAL;
return th1520_pinmux_set(thp, thp->desc.pins[gsel].number,
(uintptr_t)thp->desc.pins[gsel].drv_data & TH1520_PAD_MUXDATA,
(uintptr_t)func->data);