The pointer `func` is dereferenced before NULL check. Move the dereference after the NULL check. This issue was reported by Coverity Scan. Report: CID 1600802: (#1 of 1): Dereference before null check (REVERSE_INULL) check_after_deref: Null-checking func suggests that it may be null, but it has already been dereferenced on all paths leading to the check. Fixes: 1fc30cd92770 ("pinctrl: th1520: Factor out casts") Signed-off-by: Everest K.C. <everestkc@xxxxxxxxxxxxxxxx> --- drivers/pinctrl/pinctrl-th1520.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/pinctrl/pinctrl-th1520.c b/drivers/pinctrl/pinctrl-th1520.c index 7474d8da32f9..07f8b51fb294 100644 --- a/drivers/pinctrl/pinctrl-th1520.c +++ b/drivers/pinctrl/pinctrl-th1520.c @@ -803,11 +803,13 @@ static int th1520_pinmux_set_mux(struct pinctrl_dev *pctldev, { struct th1520_pinctrl *thp = pinctrl_dev_get_drvdata(pctldev); const struct function_desc *func = pinmux_generic_get_function(pctldev, fsel); - enum th1520_muxtype muxtype = (uintptr_t)func->data; + enum th1520_muxtype muxtype; if (!func) return -EINVAL; + muxtype = (uintptr_t)func->data; + return th1520_pinmux_set(thp, thp->desc.pins[gsel].number, th1520_pad_muxdata(thp->desc.pins[gsel].drv_data), muxtype); -- 2.43.0