diff mbox

input: snvs_pwrkey: fix returned value check of syscon_regmap_lookup_by_phandle()

Message ID 1457455864-32077-1-git-send-email-vz@mleia.com (mailing list archive)
State Accepted
Headers show

Commit Message

Vladimir Zapolskiy March 8, 2016, 4:51 p.m. UTC
On error syscon_regmap_lookup_by_phandle() returns ERR_PTR() value,
which makes a check for NULL invalid and may lead to oops on error
path.

Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
---
 drivers/input/keyboard/snvs_pwrkey.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Dmitry Torokhov March 8, 2016, 7:06 p.m. UTC | #1
On Tue, Mar 08, 2016 at 06:51:04PM +0200, Vladimir Zapolskiy wrote:
> On error syscon_regmap_lookup_by_phandle() returns ERR_PTR() value,
> which makes a check for NULL invalid and may lead to oops on error
> path.
> 
> Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>

Applied, thank you.

> ---
>  drivers/input/keyboard/snvs_pwrkey.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/input/keyboard/snvs_pwrkey.c b/drivers/input/keyboard/snvs_pwrkey.c
> index 9adf13a..9e92206 100644
> --- a/drivers/input/keyboard/snvs_pwrkey.c
> +++ b/drivers/input/keyboard/snvs_pwrkey.c
> @@ -111,9 +111,9 @@ static int imx_snvs_pwrkey_probe(struct platform_device *pdev)
>  		return -ENOMEM;
>  
>  	pdata->snvs = syscon_regmap_lookup_by_phandle(np, "regmap");
> -	if (!pdata->snvs) {
> +	if (IS_ERR(pdata->snvs)) {
>  		dev_err(&pdev->dev, "Can't get snvs syscon\n");
> -		return -ENODEV;
> +		return PTR_ERR(pdata->snvs);
>  	}
>  
>  	if (of_property_read_u32(np, "linux,keycode", &pdata->keycode)) {
> -- 
> 2.1.4
>
diff mbox

Patch

diff --git a/drivers/input/keyboard/snvs_pwrkey.c b/drivers/input/keyboard/snvs_pwrkey.c
index 9adf13a..9e92206 100644
--- a/drivers/input/keyboard/snvs_pwrkey.c
+++ b/drivers/input/keyboard/snvs_pwrkey.c
@@ -111,9 +111,9 @@  static int imx_snvs_pwrkey_probe(struct platform_device *pdev)
 		return -ENOMEM;
 
 	pdata->snvs = syscon_regmap_lookup_by_phandle(np, "regmap");
-	if (!pdata->snvs) {
+	if (IS_ERR(pdata->snvs)) {
 		dev_err(&pdev->dev, "Can't get snvs syscon\n");
-		return -ENODEV;
+		return PTR_ERR(pdata->snvs);
 	}
 
 	if (of_property_read_u32(np, "linux,keycode", &pdata->keycode)) {