pinctrl_register returns a pointer of struct type struct pinctrl_dev,
if successfully registered to pinctrl subsystem, otherwise returns
NULL, and there wont' be any pointers which are not dereferencible.
They are not type of pointer addresses but are kind of error
codes rather actual addresses, but are a kind of return
codes of functions returning integer types.
return -ENODEV if device registration fails.
Signed-off-by: Devendra Naga <[email protected]>
---
drivers/pinctrl/pinctrl-tegra.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/pinctrl/pinctrl-tegra.c b/drivers/pinctrl/pinctrl-tegra.c
index 07228b1..ae52e4e 100644
--- a/drivers/pinctrl/pinctrl-tegra.c
+++ b/drivers/pinctrl/pinctrl-tegra.c
@@ -745,9 +745,9 @@ int __devinit tegra_pinctrl_probe(struct platform_device *pdev,
}
pmx->pctl = pinctrl_register(&tegra_pinctrl_desc, &pdev->dev, pmx);
- if (IS_ERR(pmx->pctl)) {
+ if (!pmx->pctl) {
dev_err(&pdev->dev, "Couldn't register pinctrl driver\n");
- return PTR_ERR(pmx->pctl);
+ return -ENODEV;
}
pinctrl_add_gpio_range(pmx->pctl, &tegra_pinctrl_gpio_range);
--
1.7.9.5
On 06/18/2012 11:44 AM, Devendra Naga wrote:
> pinctrl_register returns a pointer of struct type struct pinctrl_dev,
> if successfully registered to pinctrl subsystem, otherwise returns
> NULL, and there wont' be any pointers which are not dereferencible.
>
> They are not type of pointer addresses but are kind of error
> codes rather actual addresses, but are a kind of return
> codes of functions returning integer types.
>
> return -ENODEV if device registration fails.
>
> Signed-off-by: Devendra Naga <[email protected]>
Oops.
Acked-by: Stephen Warren <[email protected]>
Probably Cc stable since this is wrong back as far as 3.4.
On Mon, Jun 18, 2012 at 7:44 PM, Devendra Naga <[email protected]> wrote:
> pinctrl_register returns a pointer of struct type struct pinctrl_dev,
> if successfully registered to pinctrl subsystem, otherwise returns
> NULL, and there wont' be any pointers which are not dereferencible.
>
> They are not type of pointer addresses but are kind of error
> codes rather actual addresses, but are a kind of return
> codes of functions returning integer types.
>
> return -ENODEV if device registration fails.
>
> Signed-off-by: Devendra Naga <[email protected]>
Applied with Stephen's ACK, thanks!
Linus Walleij