Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b962e2cd authored by Shawn Guo's avatar Shawn Guo Committed by Linus Walleij
Browse files

pinctrl: zte: fix dereference of 'data' in zx_set_mux()



It fixes the following Smatch complaint:

drivers/pinctrl/zte/pinctrl-zx.c:76 zx_set_mux()
warn: variable dereferenced before check 'data' (see line 67)

Reported-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
Fixes: cbff0c4d ("pinctrl: add ZTE ZX pinctrl driver support")
Signed-off-by: default avatarShawn Guo <shawn.guo@linaro.org>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent 16f73eb0
Loading
Loading
Loading
Loading
+7 −4
Original line number Diff line number Diff line
@@ -64,10 +64,8 @@ static int zx_set_mux(struct pinctrl_dev *pctldev, unsigned int func_selector,
	struct zx_pinctrl_soc_info *info = zpctl->info;
	const struct pinctrl_pin_desc *pindesc = info->pins + group_selector;
	struct zx_pin_data *data = pindesc->drv_data;
	struct zx_mux_desc *mux = data->muxes;
	u32 mask = (1 << data->width) - 1;
	u32 offset = data->offset;
	u32 bitpos = data->bitpos;
	struct zx_mux_desc *mux;
	u32 mask, offset, bitpos;
	struct function_desc *func;
	unsigned long flags;
	u32 val, mval;
@@ -76,6 +74,11 @@ static int zx_set_mux(struct pinctrl_dev *pctldev, unsigned int func_selector,
	if (!data)
		return -EINVAL;

	mux = data->muxes;
	mask = (1 << data->width) - 1;
	offset = data->offset;
	bitpos = data->bitpos;

	func = pinmux_generic_get_function(pctldev, func_selector);
	if (!func)
		return -EINVAL;