2022-04-22 21:21:34

by CGEL

[permalink] [raw]
Subject: [PATCH] NFC: nfcmrvl: fix error check return value of irq_of_parse_and_map()

From: Lv Ruyi <[email protected]>

The irq_of_parse_and_map() function returns 0 on failure, and does not
return an negative value.

Fixes: b5b3e23e4cac ("NFC: nfcmrvl: add i2c driver")
Reported-by: Zeal Robot <[email protected]>
Signed-off-by: Lv Ruyi <[email protected]>
---
drivers/nfc/nfcmrvl/i2c.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/nfc/nfcmrvl/i2c.c b/drivers/nfc/nfcmrvl/i2c.c
index ceef81d93ac9..7dcc97707363 100644
--- a/drivers/nfc/nfcmrvl/i2c.c
+++ b/drivers/nfc/nfcmrvl/i2c.c
@@ -167,7 +167,7 @@ static int nfcmrvl_i2c_parse_dt(struct device_node *node,
pdata->irq_polarity = IRQF_TRIGGER_RISING;

ret = irq_of_parse_and_map(node, 0);
- if (ret < 0) {
+ if (!ret) {
pr_err("Unable to get irq, error: %d\n", ret);
return ret;
}
--
2.25.1



2022-04-23 00:10:12

by Jakub Kicinski

[permalink] [raw]
Subject: Re: [PATCH] NFC: nfcmrvl: fix error check return value of irq_of_parse_and_map()

On Fri, 22 Apr 2022 08:46:05 +0000 [email protected] wrote:
> diff --git a/drivers/nfc/nfcmrvl/i2c.c b/drivers/nfc/nfcmrvl/i2c.c
> index ceef81d93ac9..7dcc97707363 100644
> --- a/drivers/nfc/nfcmrvl/i2c.c
> +++ b/drivers/nfc/nfcmrvl/i2c.c
> @@ -167,7 +167,7 @@ static int nfcmrvl_i2c_parse_dt(struct device_node *node,
> pdata->irq_polarity = IRQF_TRIGGER_RISING;
>
> ret = irq_of_parse_and_map(node, 0);
> - if (ret < 0) {
> + if (!ret) {
> pr_err("Unable to get irq, error: %d\n", ret);
> return ret;

If ret is guaranteed to be 0 in this branch now, why print it,
and how is it okay to return it from this function on error?

The usual low quality patch from the CGEL team :/

2022-04-25 02:43:23

by CGEL

[permalink] [raw]
Subject: [PATCH v2] NFC: nfcmrvl: fix error check return value of irq_of_parse_and_map()

From: Lv Ruyi <[email protected]>

The irq_of_parse_and_map() function returns 0 on failure, and does not
return an negative value.

Fixes: b5b3e23e4cac ("NFC: nfcmrvl: add i2c driver")
Reported-by: Zeal Robot <[email protected]>
Signed-off-by: Lv Ruyi <[email protected]>
---
v2: don't print ret, and return -EINVAL rather than 0
---
drivers/nfc/nfcmrvl/i2c.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/nfc/nfcmrvl/i2c.c b/drivers/nfc/nfcmrvl/i2c.c
index ceef81d93ac9..01329b91d59d 100644
--- a/drivers/nfc/nfcmrvl/i2c.c
+++ b/drivers/nfc/nfcmrvl/i2c.c
@@ -167,9 +167,9 @@ static int nfcmrvl_i2c_parse_dt(struct device_node *node,
pdata->irq_polarity = IRQF_TRIGGER_RISING;

ret = irq_of_parse_and_map(node, 0);
- if (ret < 0) {
- pr_err("Unable to get irq, error: %d\n", ret);
- return ret;
+ if (!ret) {
+ pr_err("Unable to get irq\n");
+ return -EINVAL;
}
pdata->irq = ret;

--
2.25.1