2013-10-21 02:55:32

by Wei Yongjun

[permalink] [raw]
Subject: [PATCH -next] pinctrl: tb10x: fix the error handling in tb10x_pinctrl_probe()

From: Wei Yongjun <[email protected]>

This patch fix the error handling in tb10x_pinctrl_probe():
- devm_ioremap_resource() return ERR_PTR() and never return NULL
- remove the dev_err call to avoid redundant error message
- pinctrl_register() returns NULL not ERR_PTR()

Signed-off-by: Wei Yongjun <[email protected]>
---
drivers/pinctrl/pinctrl-tb10x.c | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/drivers/pinctrl/pinctrl-tb10x.c b/drivers/pinctrl/pinctrl-tb10x.c
index 2e1ea56..9f7fa9b 100644
--- a/drivers/pinctrl/pinctrl-tb10x.c
+++ b/drivers/pinctrl/pinctrl-tb10x.c
@@ -806,9 +806,8 @@ static int tb10x_pinctrl_probe(struct platform_device *pdev)
mutex_init(&state->mutex);

state->base = devm_ioremap_resource(dev, mem);
- if (!state->base) {
- dev_err(dev, "Request register region failed.\n");
- ret = -EBUSY;
+ if (IS_ERR(state->base)) {
+ ret = PTR_ERR(state->base);
goto fail;
}

@@ -830,9 +829,9 @@ static int tb10x_pinctrl_probe(struct platform_device *pdev)
}

state->pctl = pinctrl_register(&tb10x_pindesc, dev, state);
- if (IS_ERR(state->pctl)) {
+ if (!state->pctl) {
dev_err(dev, "could not register TB10x pin driver\n");
- ret = PTR_ERR(state->pctl);
+ ret = -EINVAL;
goto fail;
}


2013-10-23 08:45:22

by Linus Walleij

[permalink] [raw]
Subject: Re: [PATCH -next] pinctrl: tb10x: fix the error handling in tb10x_pinctrl_probe()

On Mon, Oct 21, 2013 at 4:55 AM, Wei Yongjun <[email protected]> wrote:

> From: Wei Yongjun <[email protected]>
>
> This patch fix the error handling in tb10x_pinctrl_probe():
> - devm_ioremap_resource() return ERR_PTR() and never return NULL
> - remove the dev_err call to avoid redundant error message
> - pinctrl_register() returns NULL not ERR_PTR()
>
> Signed-off-by: Wei Yongjun <[email protected]>

Thanks, patch applied!

Hm this seems to be an easy mistake to do. I have discussed
in the past whether we can make the compiler verify
error pointers semantically and warn on problems.

I don't know if that is achieveable though :-(

Yours,
Linus Walleij