All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] pinctrl: imx: fix unsigned check if nfuncs with less than or equal zero
@ 2018-02-26 12:04 Colin King
  2018-02-26 12:43   ` Fabio Estevam
  2018-02-26 13:14   ` A.s. Dong
  0 siblings, 2 replies; 7+ messages in thread
From: Colin King @ 2018-02-26 12:04 UTC (permalink / raw)
  To: Dong Aisheng, Fabio Estevam, Shawn Guo, Stefan Agner,
	inus Walleij, linux-gpio
  Cc: kernel-janitors, linux-kernel

From: Colin Ian King <colin.king@canonical.com>

The unsigned integer nfuncs is being error checked with a value less
or equal to zero; this is always false if of_get_child_count returns
a -ve for an error condition since nfuncs is not signed. Fix this by
making variables nfuncs and i signed integers.

Detected with Coccinelle:
drivers/pinctrl/freescale/pinctrl-imx.c:620:6-12: WARNING: Unsigned
expression compared with zero: nfuncs <= 0

Fixes: ae75ff814538 ("pinctrl: pinctrl-imx: add imx pinctrl core driver")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
---
 drivers/pinctrl/freescale/pinctrl-imx.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/pinctrl/freescale/pinctrl-imx.c b/drivers/pinctrl/freescale/pinctrl-imx.c
index 24aaddd760a0..1e8ca83352d0 100644
--- a/drivers/pinctrl/freescale/pinctrl-imx.c
+++ b/drivers/pinctrl/freescale/pinctrl-imx.c
@@ -605,8 +605,8 @@ static int imx_pinctrl_probe_dt(struct platform_device *pdev,
 	struct device_node *np = pdev->dev.of_node;
 	struct device_node *child;
 	struct pinctrl_dev *pctl = ipctl->pctl;
-	u32 nfuncs = 0;
-	u32 i = 0;
+	int nfuncs = 0;
+	int i = 0;
 	bool flat_funcs;
 
 	if (!np)
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH] pinctrl: imx: fix unsigned check if nfuncs with less than or equal zero
  2018-02-26 12:04 [PATCH] pinctrl: imx: fix unsigned check if nfuncs with less than or equal zero Colin King
@ 2018-02-26 12:43   ` Fabio Estevam
  2018-02-26 13:14   ` A.s. Dong
  1 sibling, 0 replies; 7+ messages in thread
From: Fabio Estevam @ 2018-02-26 12:43 UTC (permalink / raw)
  To: Colin King
  Cc: Dong Aisheng, Shawn Guo, Stefan Agner, inus Walleij, linux-gpio,
	kernel-janitors, linux-kernel

On Mon, Feb 26, 2018 at 9:04 AM, Colin King <colin.king@canonical.com> wrote:
> From: Colin Ian King <colin.king@canonical.com>
>
> The unsigned integer nfuncs is being error checked with a value less
> or equal to zero; this is always false if of_get_child_count returns
> a -ve for an error condition since nfuncs is not signed. Fix this by
> making variables nfuncs and i signed integers.
>
> Detected with Coccinelle:
> drivers/pinctrl/freescale/pinctrl-imx.c:620:6-12: WARNING: Unsigned
> expression compared with zero: nfuncs <= 0
>
> Fixes: ae75ff814538 ("pinctrl: pinctrl-imx: add imx pinctrl core driver")
> Signed-off-by: Colin Ian King <colin.king@canonical.com>

Reviewed-by: Fabio Estevam <festevam@gmail.com>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] pinctrl: imx: fix unsigned check if nfuncs with less than or equal zero
@ 2018-02-26 12:43   ` Fabio Estevam
  0 siblings, 0 replies; 7+ messages in thread
From: Fabio Estevam @ 2018-02-26 12:43 UTC (permalink / raw)
  To: Colin King
  Cc: Dong Aisheng, Shawn Guo, Stefan Agner, inus Walleij, linux-gpio,
	kernel-janitors, linux-kernel

On Mon, Feb 26, 2018 at 9:04 AM, Colin King <colin.king@canonical.com> wrote:
> From: Colin Ian King <colin.king@canonical.com>
>
> The unsigned integer nfuncs is being error checked with a value less
> or equal to zero; this is always false if of_get_child_count returns
> a -ve for an error condition since nfuncs is not signed. Fix this by
> making variables nfuncs and i signed integers.
>
> Detected with Coccinelle:
> drivers/pinctrl/freescale/pinctrl-imx.c:620:6-12: WARNING: Unsigned
> expression compared with zero: nfuncs <= 0
>
> Fixes: ae75ff814538 ("pinctrl: pinctrl-imx: add imx pinctrl core driver")
> Signed-off-by: Colin Ian King <colin.king@canonical.com>

Reviewed-by: Fabio Estevam <festevam@gmail.com>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* RE: [PATCH] pinctrl: imx: fix unsigned check if nfuncs with less than or equal zero
  2018-02-26 12:04 [PATCH] pinctrl: imx: fix unsigned check if nfuncs with less than or equal zero Colin King
@ 2018-02-26 13:14   ` A.s. Dong
  2018-02-26 13:14   ` A.s. Dong
  1 sibling, 0 replies; 7+ messages in thread
From: A.s. Dong @ 2018-02-26 13:14 UTC (permalink / raw)
  To: Colin King, Fabio Estevam, Shawn Guo, Stefan Agner, inus Walleij,
	linux-gpio
  Cc: kernel-janitors, linux-kernel

> -----Original Message-----
> From: Colin King [mailto:colin.king@canonical.com]
> Sent: Monday, February 26, 2018 8:04 PM
> To: A.s. Dong <aisheng.dong@nxp.com>; Fabio Estevam
> <festevam@gmail.com>; Shawn Guo <shawnguo@kernel.org>; Stefan
> Agner <stefan@agner.ch>; inus Walleij <linus.walleij@linaro.org>; linux-
> gpio@vger.kernel.org
> Cc: kernel-janitors@vger.kernel.org; linux-kernel@vger.kernel.org
> Subject: [PATCH] pinctrl: imx: fix unsigned check if nfuncs with less than or
> equal zero
> 
> From: Colin Ian King <colin.king@canonical.com>
> 
> The unsigned integer nfuncs is being error checked with a value less or equal
> to zero; this is always false if of_get_child_count returns a -ve for an error
> condition since nfuncs is not signed. Fix this by making variables nfuncs and i
> signed integers.
> 
> Detected with Coccinelle:
> drivers/pinctrl/freescale/pinctrl-imx.c:620:6-12: WARNING: Unsigned
> expression compared with zero: nfuncs <= 0
> 
> Fixes: ae75ff814538 ("pinctrl: pinctrl-imx: add imx pinctrl core driver")
> Signed-off-by: Colin Ian King <colin.king@canonical.com>
> ---
>  drivers/pinctrl/freescale/pinctrl-imx.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/pinctrl/freescale/pinctrl-imx.c
> b/drivers/pinctrl/freescale/pinctrl-imx.c
> index 24aaddd760a0..1e8ca83352d0 100644
> --- a/drivers/pinctrl/freescale/pinctrl-imx.c
> +++ b/drivers/pinctrl/freescale/pinctrl-imx.c
> @@ -605,8 +605,8 @@ static int imx_pinctrl_probe_dt(struct
> platform_device *pdev,
>  	struct device_node *np = pdev->dev.of_node;
>  	struct device_node *child;
>  	struct pinctrl_dev *pctl = ipctl->pctl;
> -	u32 nfuncs = 0;
> -	u32 i = 0;
> +	int nfuncs = 0;
> +	int i = 0;
>  	bool flat_funcs;
> 

I saw 'i', later used, is converted to u32 unconditionally. (GCC did not complain)
e.g.
radix_tree_insert
imx_pinctrl_parse_functions

And of_get_child_count seems can't  return a minor value.

So does something like below look better?

diff --git a/drivers/pinctrl/freescale/pinctrl-imx.c b/drivers/pinctrl/freescale/pinctrl-imx.c
index c976ffe..4259209 100644
--- a/drivers/pinctrl/freescale/pinctrl-imx.c
+++ b/drivers/pinctrl/freescale/pinctrl-imx.c
@@ -612,7 +612,7 @@ static int imx_pinctrl_probe_dt(struct platform_device *pdev,
                nfuncs = 1;
        } else {
                nfuncs = of_get_child_count(np);
-               if (nfuncs <= 0) {
+               if (nfuncs == 0) {
                        dev_err(&pdev->dev, "no functions defined\n");
                        return -EINVAL;
                }

Regards
Dong Aisheng

>  	if (!np)
> --
> 2.15.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* RE: [PATCH] pinctrl: imx: fix unsigned check if nfuncs with less than or equal zero
@ 2018-02-26 13:14   ` A.s. Dong
  0 siblings, 0 replies; 7+ messages in thread
From: A.s. Dong @ 2018-02-26 13:14 UTC (permalink / raw)
  To: Colin King, Fabio Estevam, Shawn Guo, Stefan Agner, inus Walleij,
	linux-gpio
  Cc: kernel-janitors, linux-kernel

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBDb2xpbiBLaW5nIFttYWlsdG86
Y29saW4ua2luZ0BjYW5vbmljYWwuY29tXQ0KPiBTZW50OiBNb25kYXksIEZlYnJ1YXJ5IDI2LCAy
MDE4IDg6MDQgUE0NCj4gVG86IEEucy4gRG9uZyA8YWlzaGVuZy5kb25nQG54cC5jb20+OyBGYWJp
byBFc3RldmFtDQo+IDxmZXN0ZXZhbUBnbWFpbC5jb20+OyBTaGF3biBHdW8gPHNoYXduZ3VvQGtl
cm5lbC5vcmc+OyBTdGVmYW4NCj4gQWduZXIgPHN0ZWZhbkBhZ25lci5jaD47IGludXMgV2FsbGVp
aiA8bGludXMud2FsbGVpakBsaW5hcm8ub3JnPjsgbGludXgtDQo+IGdwaW9Admdlci5rZXJuZWwu
b3JnDQo+IENjOiBrZXJuZWwtamFuaXRvcnNAdmdlci5rZXJuZWwub3JnOyBsaW51eC1rZXJuZWxA
dmdlci5rZXJuZWwub3JnDQo+IFN1YmplY3Q6IFtQQVRDSF0gcGluY3RybDogaW14OiBmaXggdW5z
aWduZWQgY2hlY2sgaWYgbmZ1bmNzIHdpdGggbGVzcyB0aGFuIG9yDQo+IGVxdWFsIHplcm8NCj4g
DQo+IEZyb206IENvbGluIElhbiBLaW5nIDxjb2xpbi5raW5nQGNhbm9uaWNhbC5jb20+DQo+IA0K
PiBUaGUgdW5zaWduZWQgaW50ZWdlciBuZnVuY3MgaXMgYmVpbmcgZXJyb3IgY2hlY2tlZCB3aXRo
IGEgdmFsdWUgbGVzcyBvciBlcXVhbA0KPiB0byB6ZXJvOyB0aGlzIGlzIGFsd2F5cyBmYWxzZSBp
ZiBvZl9nZXRfY2hpbGRfY291bnQgcmV0dXJucyBhIC12ZSBmb3IgYW4gZXJyb3INCj4gY29uZGl0
aW9uIHNpbmNlIG5mdW5jcyBpcyBub3Qgc2lnbmVkLiBGaXggdGhpcyBieSBtYWtpbmcgdmFyaWFi
bGVzIG5mdW5jcyBhbmQgaQ0KPiBzaWduZWQgaW50ZWdlcnMuDQo+IA0KPiBEZXRlY3RlZCB3aXRo
IENvY2NpbmVsbGU6DQo+IGRyaXZlcnMvcGluY3RybC9mcmVlc2NhbGUvcGluY3RybC1pbXguYzo2
MjA6Ni0xMjogV0FSTklORzogVW5zaWduZWQNCj4gZXhwcmVzc2lvbiBjb21wYXJlZCB3aXRoIHpl
cm86IG5mdW5jcyA8PSAwDQo+IA0KPiBGaXhlczogYWU3NWZmODE0NTM4ICgicGluY3RybDogcGlu
Y3RybC1pbXg6IGFkZCBpbXggcGluY3RybCBjb3JlIGRyaXZlciIpDQo+IFNpZ25lZC1vZmYtYnk6
IENvbGluIElhbiBLaW5nIDxjb2xpbi5raW5nQGNhbm9uaWNhbC5jb20+DQo+IC0tLQ0KPiAgZHJp
dmVycy9waW5jdHJsL2ZyZWVzY2FsZS9waW5jdHJsLWlteC5jIHwgNCArKy0tDQo+ICAxIGZpbGUg
Y2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdp
dCBhL2RyaXZlcnMvcGluY3RybC9mcmVlc2NhbGUvcGluY3RybC1pbXguYw0KPiBiL2RyaXZlcnMv
cGluY3RybC9mcmVlc2NhbGUvcGluY3RybC1pbXguYw0KPiBpbmRleCAyNGFhZGRkNzYwYTAuLjFl
OGNhODMzNTJkMCAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9waW5jdHJsL2ZyZWVzY2FsZS9waW5j
dHJsLWlteC5jDQo+ICsrKyBiL2RyaXZlcnMvcGluY3RybC9mcmVlc2NhbGUvcGluY3RybC1pbXgu
Yw0KPiBAQCAtNjA1LDggKzYwNSw4IEBAIHN0YXRpYyBpbnQgaW14X3BpbmN0cmxfcHJvYmVfZHQo
c3RydWN0DQo+IHBsYXRmb3JtX2RldmljZSAqcGRldiwNCj4gIAlzdHJ1Y3QgZGV2aWNlX25vZGUg
Km5wID0gcGRldi0+ZGV2Lm9mX25vZGU7DQo+ICAJc3RydWN0IGRldmljZV9ub2RlICpjaGlsZDsN
Cj4gIAlzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGwgPSBpcGN0bC0+cGN0bDsNCj4gLQl1MzIgbmZ1
bmNzID0gMDsNCj4gLQl1MzIgaSA9IDA7DQo+ICsJaW50IG5mdW5jcyA9IDA7DQo+ICsJaW50IGkg
PSAwOw0KPiAgCWJvb2wgZmxhdF9mdW5jczsNCj4gDQoNCkkgc2F3ICdpJywgbGF0ZXIgdXNlZCwg
aXMgY29udmVydGVkIHRvIHUzMiB1bmNvbmRpdGlvbmFsbHkuIChHQ0MgZGlkIG5vdCBjb21wbGFp
bikNCmUuZy4NCnJhZGl4X3RyZWVfaW5zZXJ0DQppbXhfcGluY3RybF9wYXJzZV9mdW5jdGlvbnMN
Cg0KQW5kIG9mX2dldF9jaGlsZF9jb3VudCBzZWVtcyBjYW4ndCAgcmV0dXJuIGEgbWlub3IgdmFs
dWUuDQoNClNvIGRvZXMgc29tZXRoaW5nIGxpa2UgYmVsb3cgbG9vayBiZXR0ZXI/DQoNCmRpZmYg
LS1naXQgYS9kcml2ZXJzL3BpbmN0cmwvZnJlZXNjYWxlL3BpbmN0cmwtaW14LmMgYi9kcml2ZXJz
L3BpbmN0cmwvZnJlZXNjYWxlL3BpbmN0cmwtaW14LmMNCmluZGV4IGM5NzZmZmUuLjQyNTkyMDkg
MTAwNjQ0DQotLS0gYS9kcml2ZXJzL3BpbmN0cmwvZnJlZXNjYWxlL3BpbmN0cmwtaW14LmMNCisr
KyBiL2RyaXZlcnMvcGluY3RybC9mcmVlc2NhbGUvcGluY3RybC1pbXguYw0KQEAgLTYxMiw3ICs2
MTIsNyBAQCBzdGF0aWMgaW50IGlteF9waW5jdHJsX3Byb2JlX2R0KHN0cnVjdCBwbGF0Zm9ybV9k
ZXZpY2UgKnBkZXYsDQogICAgICAgICAgICAgICAgbmZ1bmNzID0gMTsNCiAgICAgICAgfSBlbHNl
IHsNCiAgICAgICAgICAgICAgICBuZnVuY3MgPSBvZl9nZXRfY2hpbGRfY291bnQobnApOw0KLSAg
ICAgICAgICAgICAgIGlmIChuZnVuY3MgPD0gMCkgew0KKyAgICAgICAgICAgICAgIGlmIChuZnVu
Y3MgPT0gMCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgZGV2X2VycigmcGRldi0+ZGV2LCAi
bm8gZnVuY3Rpb25zIGRlZmluZWRcbiIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IC1FSU5WQUw7DQogICAgICAgICAgICAgICAgfQ0KDQpSZWdhcmRzDQpEb25nIEFpc2hlbmcNCg0K
PiAgCWlmICghbnApDQo+IC0tDQo+IDIuMTUuMQ0KDQo

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] pinctrl: imx: fix unsigned check if nfuncs with less than or equal zero
  2018-02-26 13:14   ` A.s. Dong
@ 2018-03-21  8:49     ` Linus Walleij
  -1 siblings, 0 replies; 7+ messages in thread
From: Linus Walleij @ 2018-03-21  8:49 UTC (permalink / raw)
  To: A.s. Dong
  Cc: Colin King, Fabio Estevam, Shawn Guo, Stefan Agner, linux-gpio,
	kernel-janitors, linux-kernel

On Mon, Feb 26, 2018 at 2:14 PM, A.s. Dong <aisheng.dong@nxp.com> wrote:

>> -     u32 nfuncs = 0;
>> -     u32 i = 0;
>> +     int nfuncs = 0;
>> +     int i = 0;
>>       bool flat_funcs;
>>
>
> I saw 'i', later used, is converted to u32 unconditionally. (GCC did not complain)
> e.g.
> radix_tree_insert
> imx_pinctrl_parse_functions
>
> And of_get_child_count seems can't  return a minor value.
>
> So does something like below look better?
>
> diff --git a/drivers/pinctrl/freescale/pinctrl-imx.c b/drivers/pinctrl/freescale/pinctrl-imx.c
> index c976ffe..4259209 100644
> --- a/drivers/pinctrl/freescale/pinctrl-imx.c
> +++ b/drivers/pinctrl/freescale/pinctrl-imx.c
> @@ -612,7 +612,7 @@ static int imx_pinctrl_probe_dt(struct platform_device *pdev,
>                 nfuncs = 1;
>         } else {
>                 nfuncs = of_get_child_count(np);
> -               if (nfuncs <= 0) {
> +               if (nfuncs == 0) {

This makes more sense to me.

You can have zero functions but not negative number of functions.

Aisheng, can you send a patch like this? (Or is it already somewhere in
my inbox?)

Yours,
Linus Walleij

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] pinctrl: imx: fix unsigned check if nfuncs with less than or equal zero
@ 2018-03-21  8:49     ` Linus Walleij
  0 siblings, 0 replies; 7+ messages in thread
From: Linus Walleij @ 2018-03-21  8:49 UTC (permalink / raw)
  To: A.s. Dong
  Cc: Colin King, Fabio Estevam, Shawn Guo, Stefan Agner, linux-gpio,
	kernel-janitors, linux-kernel

On Mon, Feb 26, 2018 at 2:14 PM, A.s. Dong <aisheng.dong@nxp.com> wrote:

>> -     u32 nfuncs = 0;
>> -     u32 i = 0;
>> +     int nfuncs = 0;
>> +     int i = 0;
>>       bool flat_funcs;
>>
>
> I saw 'i', later used, is converted to u32 unconditionally. (GCC did not complain)
> e.g.
> radix_tree_insert
> imx_pinctrl_parse_functions
>
> And of_get_child_count seems can't  return a minor value.
>
> So does something like below look better?
>
> diff --git a/drivers/pinctrl/freescale/pinctrl-imx.c b/drivers/pinctrl/freescale/pinctrl-imx.c
> index c976ffe..4259209 100644
> --- a/drivers/pinctrl/freescale/pinctrl-imx.c
> +++ b/drivers/pinctrl/freescale/pinctrl-imx.c
> @@ -612,7 +612,7 @@ static int imx_pinctrl_probe_dt(struct platform_device *pdev,
>                 nfuncs = 1;
>         } else {
>                 nfuncs = of_get_child_count(np);
> -               if (nfuncs <= 0) {
> +               if (nfuncs = 0) {

This makes more sense to me.

You can have zero functions but not negative number of functions.

Aisheng, can you send a patch like this? (Or is it already somewhere in
my inbox?)

Yours,
Linus Walleij

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2018-03-21  8:49 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-02-26 12:04 [PATCH] pinctrl: imx: fix unsigned check if nfuncs with less than or equal zero Colin King
2018-02-26 12:43 ` Fabio Estevam
2018-02-26 12:43   ` Fabio Estevam
2018-02-26 13:14 ` A.s. Dong
2018-02-26 13:14   ` A.s. Dong
2018-03-21  8:49   ` Linus Walleij
2018-03-21  8:49     ` Linus Walleij

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.