From: Sean Wang <[email protected]>
commit d6ed93551320 ("pinctrl: mediatek: add pinctrl driver for MT7622
SoC") leads to the following static checker warning:
drivers/pinctrl/mediatek/pinctrl-mt7622.c:1419 mtk_gpio_get()
error: uninitialized symbol 'value'.
1412 static int mtk_gpio_get(struct gpio_chip *chip, unsigned int gpio)
1413 {
1414 struct mtk_pinctrl *hw = dev_get_drvdata(chip->parent);
1415 int value;
1416
1417 mtk_hw_get_value(hw, gpio, PINCTRL_PIN_REG_DI, &value);
^^^^^^^^^^^^^^^^
1418
1419 return !!value;
1420 }
The appropriate error handling must be added to avoid the potential error
caused by uninitialized value being returned.
Reported-by: Dan Carpenter <[email protected]>
Signed-off-by: Sean Wang <[email protected]>
---
drivers/pinctrl/mediatek/pinctrl-mt7622.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/pinctrl/mediatek/pinctrl-mt7622.c b/drivers/pinctrl/mediatek/pinctrl-mt7622.c
index 3824d82..dc32e3c 100644
--- a/drivers/pinctrl/mediatek/pinctrl-mt7622.c
+++ b/drivers/pinctrl/mediatek/pinctrl-mt7622.c
@@ -1412,9 +1412,11 @@ static struct pinctrl_desc mtk_desc = {
static int mtk_gpio_get(struct gpio_chip *chip, unsigned int gpio)
{
struct mtk_pinctrl *hw = dev_get_drvdata(chip->parent);
- int value;
+ int value, err;
- mtk_hw_get_value(hw, gpio, PINCTRL_PIN_REG_DI, &value);
+ err = mtk_hw_get_value(hw, gpio, PINCTRL_PIN_REG_DI, &value);
+ if (err)
+ return err;
return !!value;
}
--
2.7.4
From: Sean Wang <[email protected]>
Make consistent error handling of all mtk_hw_get_value occurrences using
propagating error code from the internal instead of creating a new one.
Signed-off-by: Sean Wang <[email protected]>
---
drivers/pinctrl/mediatek/pinctrl-mt7622.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/pinctrl/mediatek/pinctrl-mt7622.c b/drivers/pinctrl/mediatek/pinctrl-mt7622.c
index dc32e3c..06e8406 100644
--- a/drivers/pinctrl/mediatek/pinctrl-mt7622.c
+++ b/drivers/pinctrl/mediatek/pinctrl-mt7622.c
@@ -1160,7 +1160,7 @@ static int mtk_pinconf_get(struct pinctrl_dev *pctldev,
case PIN_CONFIG_OUTPUT_ENABLE:
err = mtk_hw_get_value(hw, pin, PINCTRL_PIN_REG_DIR, &val);
if (err)
- return -EINVAL;
+ return err;
/* HW takes input mode as zero; output mode as non-zero */
if ((val && param == PIN_CONFIG_INPUT_ENABLE) ||
@@ -1184,11 +1184,11 @@ static int mtk_pinconf_get(struct pinctrl_dev *pctldev,
case PIN_CONFIG_DRIVE_STRENGTH:
err = mtk_hw_get_value(hw, pin, PINCTRL_PIN_REG_E4, &val);
if (err)
- return -EINVAL;
+ return err;
err = mtk_hw_get_value(hw, pin, PINCTRL_PIN_REG_E8, &val2);
if (err)
- return -EINVAL;
+ return err;
/* 4mA when (e8, e4) = (0, 0); 8mA when (e8, e4) = (0, 1)
* 12mA when (e8, e4) = (1, 0); 16mA when (e8, e4) = (1, 1)
@@ -1203,7 +1203,7 @@ static int mtk_pinconf_get(struct pinctrl_dev *pctldev,
err = mtk_hw_get_value(hw, pin, reg, &val);
if (err)
- return -EINVAL;
+ return err;
ret = val;
--
2.7.4
On 01/09/2018 05:28 PM, [email protected] wrote:
> From: Sean Wang <[email protected]>
>
> commit d6ed93551320 ("pinctrl: mediatek: add pinctrl driver for MT7622
> SoC") leads to the following static checker warning:
>
> drivers/pinctrl/mediatek/pinctrl-mt7622.c:1419 mtk_gpio_get()
> error: uninitialized symbol 'value'.
> 1412 static int mtk_gpio_get(struct gpio_chip *chip, unsigned int gpio)
> 1413 {
> 1414 struct mtk_pinctrl *hw = dev_get_drvdata(chip->parent);
> 1415 int value;
> 1416
> 1417 mtk_hw_get_value(hw, gpio, PINCTRL_PIN_REG_DI, &value);
> ^^^^^^^^^^^^^^^^
> 1418
> 1419 return !!value;
> 1420 }
>
> The appropriate error handling must be added to avoid the potential error
> caused by uninitialized value being returned.
>
> Reported-by: Dan Carpenter <[email protected]>
> Signed-off-by: Sean Wang <[email protected]>
> ---
> drivers/pinctrl/mediatek/pinctrl-mt7622.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
Reviewed-by: Matthias Brugger <[email protected]>
> diff --git a/drivers/pinctrl/mediatek/pinctrl-mt7622.c b/drivers/pinctrl/mediatek/pinctrl-mt7622.c
> index 3824d82..dc32e3c 100644
> --- a/drivers/pinctrl/mediatek/pinctrl-mt7622.c
> +++ b/drivers/pinctrl/mediatek/pinctrl-mt7622.c
> @@ -1412,9 +1412,11 @@ static struct pinctrl_desc mtk_desc = {
> static int mtk_gpio_get(struct gpio_chip *chip, unsigned int gpio)
> {
> struct mtk_pinctrl *hw = dev_get_drvdata(chip->parent);
> - int value;
> + int value, err;
>
> - mtk_hw_get_value(hw, gpio, PINCTRL_PIN_REG_DI, &value);
> + err = mtk_hw_get_value(hw, gpio, PINCTRL_PIN_REG_DI, &value);
> + if (err)
> + return err;
>
> return !!value;
> }
>
On 01/09/2018 05:28 PM, [email protected] wrote:
> From: Sean Wang <[email protected]>
>
> Make consistent error handling of all mtk_hw_get_value occurrences using
> propagating error code from the internal instead of creating a new one.
>
> Signed-off-by: Sean Wang <[email protected]>
> --> drivers/pinctrl/mediatek/pinctrl-mt7622.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
Reviewed-by: Matthias Brugger <[email protected]>
> diff --git a/drivers/pinctrl/mediatek/pinctrl-mt7622.c b/drivers/pinctrl/mediatek/pinctrl-mt7622.c
> index dc32e3c..06e8406 100644
> --- a/drivers/pinctrl/mediatek/pinctrl-mt7622.c
> +++ b/drivers/pinctrl/mediatek/pinctrl-mt7622.c
> @@ -1160,7 +1160,7 @@ static int mtk_pinconf_get(struct pinctrl_dev *pctldev,
> case PIN_CONFIG_OUTPUT_ENABLE:
> err = mtk_hw_get_value(hw, pin, PINCTRL_PIN_REG_DIR, &val);
> if (err)
> - return -EINVAL;
> + return err;
>
> /* HW takes input mode as zero; output mode as non-zero */
> if ((val && param == PIN_CONFIG_INPUT_ENABLE) ||
> @@ -1184,11 +1184,11 @@ static int mtk_pinconf_get(struct pinctrl_dev *pctldev,
> case PIN_CONFIG_DRIVE_STRENGTH:
> err = mtk_hw_get_value(hw, pin, PINCTRL_PIN_REG_E4, &val);
> if (err)
> - return -EINVAL;
> + return err;
>
> err = mtk_hw_get_value(hw, pin, PINCTRL_PIN_REG_E8, &val2);
> if (err)
> - return -EINVAL;
> + return err;
>
> /* 4mA when (e8, e4) = (0, 0); 8mA when (e8, e4) = (0, 1)
> * 12mA when (e8, e4) = (1, 0); 16mA when (e8, e4) = (1, 1)
> @@ -1203,7 +1203,7 @@ static int mtk_pinconf_get(struct pinctrl_dev *pctldev,
>
> err = mtk_hw_get_value(hw, pin, reg, &val);
> if (err)
> - return -EINVAL;
> + return err;
>
> ret = val;
>
>
On Tue, Jan 9, 2018 at 5:28 PM, <[email protected]> wrote:
> From: Sean Wang <[email protected]>
>
> commit d6ed93551320 ("pinctrl: mediatek: add pinctrl driver for MT7622
> SoC") leads to the following static checker warning:
Patch applied.
Yours,
Linus Walleij
On Tue, Jan 9, 2018 at 5:28 PM, <[email protected]> wrote:
> From: Sean Wang <[email protected]>
>
> Make consistent error handling of all mtk_hw_get_value occurrences using
> propagating error code from the internal instead of creating a new one.
>
> Signed-off-by: Sean Wang <[email protected]>
Patch applied.
Yours,
Linus Walleij