2020-03-21 21:04:18

by Nishant Malpani

[permalink] [raw]
Subject: [PATCH 01/13] iio: accel: kxsd9: Use suitable format specifier

Provide more suitable format specifiers while printing error logs.
Discards the use of unnecessary explicit casting and prints symbolic
error name which might prove to be convenient during debugging.

Signed-off-by: Nishant Malpani <[email protected]>
---

Based on conversations in [1] & [2].

[1] https://marc.info/?l=linux-iio&m=158427554607223&w=2
[2] https://marc.info/?l=linux-iio&m=158481647605891&w=2
---
drivers/iio/accel/kxsd9-i2c.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/iio/accel/kxsd9-i2c.c b/drivers/iio/accel/kxsd9-i2c.c
index 38411e1c155b..39a9daa7566f 100644
--- a/drivers/iio/accel/kxsd9-i2c.c
+++ b/drivers/iio/accel/kxsd9-i2c.c
@@ -21,8 +21,8 @@ static int kxsd9_i2c_probe(struct i2c_client *i2c,

regmap = devm_regmap_init_i2c(i2c, &config);
if (IS_ERR(regmap)) {
- dev_err(&i2c->dev, "Failed to register i2c regmap %d\n",
- (int)PTR_ERR(regmap));
+ dev_err(&i2c->dev, "Failed to register i2c regmap %pe\n",
+ regmap;
return PTR_ERR(regmap);
}

--
2.20.1


2020-03-21 21:12:49

by Joe Perches

[permalink] [raw]
Subject: Re: [PATCH 01/13] iio: accel: kxsd9: Use suitable format specifier

On Sun, 2020-03-22 at 02:31 +0530, Nishant Malpani wrote:
> Provide more suitable format specifiers while printing error logs.
> Discards the use of unnecessary explicit casting and prints symbolic
> error name which might prove to be convenient during debugging.


'Use suitable format specifier' is obscure and not specific.

All the subjects should likely be something like

[PATCH] subsystem: Use vsprintf extension %pe for symbolic error name


> diff --git a/drivers/iio/accel/kxsd9-i2c.c b/drivers/iio/accel/kxsd9-i2c.c
[]
> @@ -21,8 +21,8 @@ static int kxsd9_i2c_probe(struct i2c_client *i2c,
>
> regmap = devm_regmap_init_i2c(i2c, &config);
> if (IS_ERR(regmap)) {
> - dev_err(&i2c->dev, "Failed to register i2c regmap %d\n",
> - (int)PTR_ERR(regmap));
> + dev_err(&i2c->dev, "Failed to register i2c regmap %pe\n",
> + regmap;

And this could use a separator between regmap and errname like

dev_err(&i2c->dev, "Failed to register i2c regmap: %pe\n",
or
dev_err(&i2c->dev, "Failed to register i2c regmap - %pe\n",


2020-03-21 21:25:51

by Nishant Malpani

[permalink] [raw]
Subject: Re: [PATCH 01/13] iio: accel: kxsd9: Use suitable format specifier

On 22/03/20 2:39 am, Joe Perches wrote:
> On Sun, 2020-03-22 at 02:31 +0530, Nishant Malpani wrote:
>> Provide more suitable format specifiers while printing error logs.
>> Discards the use of unnecessary explicit casting and prints symbolic
>> error name which might prove to be convenient during debugging.
>
>
> 'Use suitable format specifier' is obscure and not specific.
>
> All the subjects should likely be something like
>
> [PATCH] subsystem: Use vsprintf extension %pe for symbolic error name
>
Agreed. I was just skeptical about that previously because the commit
subject line's length was going way beyond 50 chars. I do get your point
though; I'll send in a v2!

>
>> diff --git a/drivers/iio/accel/kxsd9-i2c.c b/drivers/iio/accel/kxsd9-i2c.c
> []
>> @@ -21,8 +21,8 @@ static int kxsd9_i2c_probe(struct i2c_client *i2c,
>>
>> regmap = devm_regmap_init_i2c(i2c, &config);
>> if (IS_ERR(regmap)) {
>> - dev_err(&i2c->dev, "Failed to register i2c regmap %d\n",
>> - (int)PTR_ERR(regmap));
>> + dev_err(&i2c->dev, "Failed to register i2c regmap %pe\n",
>> + regmap;
>
> And this could use a separator between regmap and errname like
>
> dev_err(&i2c->dev, "Failed to register i2c regmap: %pe\n",
> or
> dev_err(&i2c->dev, "Failed to register i2c regmap - %pe\n",
>
>

Yes, I had thought of this but was too timid to ask, thinking it was
perhaps there for legacy reasons :P

I'll add a separator in v2. Thanks for reviewing!

With regards,
Nishant Malpani

2020-03-22 00:38:20

by kernel test robot

[permalink] [raw]
Subject: Re: [PATCH 01/13] iio: accel: kxsd9: Use suitable format specifier

Hi Nishant,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on v5.6-rc6]
[also build test ERROR on next-20200320]
[cannot apply to iio/togreg]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url: https://github.com/0day-ci/linux/commits/Nishant-Malpani/iio-Use-suitable-format-specifiers/20200322-050532
base: fb33c6510d5595144d585aa194d377cf74d31911
config: x86_64-randconfig-s0-20200322 (attached as .config)
compiler: gcc-4.9 (Debian 4.9.2-10+deb8u1) 4.9.2
reproduce:
# save the attached .config to linux build tree
make ARCH=x86_64

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <[email protected]>

All errors (new ones prefixed by >>):

drivers/iio/accel/kxsd9-i2c.c: In function 'kxsd9_i2c_probe':
drivers/iio/accel/kxsd9-i2c.c:68:0: error: unterminated argument list invoking macro "dev_err"
MODULE_DESCRIPTION("KXSD9 accelerometer I2C interface");
^
>> drivers/iio/accel/kxsd9-i2c.c:24:3: error: 'dev_err' undeclared (first use in this function)
dev_err(&i2c->dev, "Failed to register i2c regmap %pe\n",
^
drivers/iio/accel/kxsd9-i2c.c:24:3: note: each undeclared identifier is reported only once for each function it appears in
drivers/iio/accel/kxsd9-i2c.c:24:3: error: expected ';' at end of input
drivers/iio/accel/kxsd9-i2c.c:24:3: error: expected declaration or statement at end of input
drivers/iio/accel/kxsd9-i2c.c:24:3: error: expected declaration or statement at end of input
drivers/iio/accel/kxsd9-i2c.c:24:3: warning: no return statement in function returning non-void [-Wreturn-type]
drivers/iio/accel/kxsd9-i2c.c: At top level:
drivers/iio/accel/kxsd9-i2c.c:12:12: warning: 'kxsd9_i2c_probe' defined but not used [-Wunused-function]
static int kxsd9_i2c_probe(struct i2c_client *i2c,
^

vim +/dev_err +24 drivers/iio/accel/kxsd9-i2c.c

11
12 static int kxsd9_i2c_probe(struct i2c_client *i2c,
13 const struct i2c_device_id *id)
14 {
15 static const struct regmap_config config = {
16 .reg_bits = 8,
17 .val_bits = 8,
18 .max_register = 0x0e,
19 };
20 struct regmap *regmap;
21
22 regmap = devm_regmap_init_i2c(i2c, &config);
23 if (IS_ERR(regmap)) {
> 24 dev_err(&i2c->dev, "Failed to register i2c regmap %pe\n",
25 regmap;
26 return PTR_ERR(regmap);
27 }
28
29 return kxsd9_common_probe(&i2c->dev,
30 regmap,
31 i2c->name);
32 }
33
34 static int kxsd9_i2c_remove(struct i2c_client *client)
35 {
36 return kxsd9_common_remove(&client->dev);
37 }
38
39 #ifdef CONFIG_OF
40 static const struct of_device_id kxsd9_of_match[] = {
41 { .compatible = "kionix,kxsd9", },
42 { },
43 };
44 MODULE_DEVICE_TABLE(of, kxsd9_of_match);
45 #else
46 #define kxsd9_of_match NULL
47 #endif
48
49 static const struct i2c_device_id kxsd9_i2c_id[] = {
50 {"kxsd9", 0},
51 { },
52 };
53 MODULE_DEVICE_TABLE(i2c, kxsd9_i2c_id);
54
55 static struct i2c_driver kxsd9_i2c_driver = {
56 .driver = {
57 .name = "kxsd9",
58 .of_match_table = of_match_ptr(kxsd9_of_match),
59 .pm = &kxsd9_dev_pm_ops,
60 },
61 .probe = kxsd9_i2c_probe,
62 .remove = kxsd9_i2c_remove,
63 .id_table = kxsd9_i2c_id,
64 };
65 module_i2c_driver(kxsd9_i2c_driver);
66
67 MODULE_LICENSE("GPL v2");
> 68 MODULE_DESCRIPTION("KXSD9 accelerometer I2C interface");

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]


Attachments:
(No filename) (3.88 kB)
.config.gz (28.77 kB)
Download all attachments

2020-03-22 03:29:04

by kernel test robot

[permalink] [raw]
Subject: Re: [PATCH 01/13] iio: accel: kxsd9: Use suitable format specifier

Hi Nishant,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on v5.6-rc6]
[also build test ERROR on next-20200320]
[cannot apply to iio/togreg]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url: https://github.com/0day-ci/linux/commits/Nishant-Malpani/iio-Use-suitable-format-specifiers/20200322-050532
base: fb33c6510d5595144d585aa194d377cf74d31911
config: powerpc-randconfig-a001-20200322 (attached as .config)
compiler: powerpc64-linux-gcc (GCC) 9.2.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
GCC_VERSION=9.2.0 make.cross ARCH=powerpc

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <[email protected]>

All error/warnings (new ones prefixed by >>):

drivers/iio/accel/kxsd9-i2c.c: In function 'kxsd9_i2c_probe':
>> drivers/iio/accel/kxsd9-i2c.c:68: error: unterminated argument list invoking macro "dev_err"
68 | MODULE_DESCRIPTION("KXSD9 accelerometer I2C interface");
|
>> drivers/iio/accel/kxsd9-i2c.c:24:3: error: 'dev_err' undeclared (first use in this function); did you mean '_dev_err'?
24 | dev_err(&i2c->dev, "Failed to register i2c regmap %pe\n",
| ^~~~~~~
| _dev_err
drivers/iio/accel/kxsd9-i2c.c:24:3: note: each undeclared identifier is reported only once for each function it appears in
>> drivers/iio/accel/kxsd9-i2c.c:24:10: error: expected ';' at end of input
24 | dev_err(&i2c->dev, "Failed to register i2c regmap %pe\n",
| ^
| ;
......
68 | MODULE_DESCRIPTION("KXSD9 accelerometer I2C interface");
|
>> drivers/iio/accel/kxsd9-i2c.c:24:3: error: expected declaration or statement at end of input
24 | dev_err(&i2c->dev, "Failed to register i2c regmap %pe\n",
| ^~~~~~~
>> drivers/iio/accel/kxsd9-i2c.c:24:3: error: expected declaration or statement at end of input
>> drivers/iio/accel/kxsd9-i2c.c:24:3: warning: no return statement in function returning non-void [-Wreturn-type]
At top level:
drivers/iio/accel/kxsd9-i2c.c:12:12: warning: 'kxsd9_i2c_probe' defined but not used [-Wunused-function]
12 | static int kxsd9_i2c_probe(struct i2c_client *i2c,
| ^~~~~~~~~~~~~~~

vim +/dev_err +68 drivers/iio/accel/kxsd9-i2c.c

a483ab796960c9 Linus Walleij 2016-09-01 11
a483ab796960c9 Linus Walleij 2016-09-01 12 static int kxsd9_i2c_probe(struct i2c_client *i2c,
a483ab796960c9 Linus Walleij 2016-09-01 13 const struct i2c_device_id *id)
a483ab796960c9 Linus Walleij 2016-09-01 14 {
a483ab796960c9 Linus Walleij 2016-09-01 15 static const struct regmap_config config = {
a483ab796960c9 Linus Walleij 2016-09-01 16 .reg_bits = 8,
a483ab796960c9 Linus Walleij 2016-09-01 17 .val_bits = 8,
a483ab796960c9 Linus Walleij 2016-09-01 18 .max_register = 0x0e,
a483ab796960c9 Linus Walleij 2016-09-01 19 };
a483ab796960c9 Linus Walleij 2016-09-01 20 struct regmap *regmap;
a483ab796960c9 Linus Walleij 2016-09-01 21
a483ab796960c9 Linus Walleij 2016-09-01 22 regmap = devm_regmap_init_i2c(i2c, &config);
a483ab796960c9 Linus Walleij 2016-09-01 23 if (IS_ERR(regmap)) {
ee70c8726e6050 Nishant Malpani 2020-03-22 @24 dev_err(&i2c->dev, "Failed to register i2c regmap %pe\n",
ee70c8726e6050 Nishant Malpani 2020-03-22 25 regmap;
a483ab796960c9 Linus Walleij 2016-09-01 26 return PTR_ERR(regmap);
a483ab796960c9 Linus Walleij 2016-09-01 27 }
a483ab796960c9 Linus Walleij 2016-09-01 28
a483ab796960c9 Linus Walleij 2016-09-01 29 return kxsd9_common_probe(&i2c->dev,
a483ab796960c9 Linus Walleij 2016-09-01 30 regmap,
a483ab796960c9 Linus Walleij 2016-09-01 31 i2c->name);
a483ab796960c9 Linus Walleij 2016-09-01 32 }
a483ab796960c9 Linus Walleij 2016-09-01 33
a483ab796960c9 Linus Walleij 2016-09-01 34 static int kxsd9_i2c_remove(struct i2c_client *client)
a483ab796960c9 Linus Walleij 2016-09-01 35 {
a483ab796960c9 Linus Walleij 2016-09-01 36 return kxsd9_common_remove(&client->dev);
a483ab796960c9 Linus Walleij 2016-09-01 37 }
a483ab796960c9 Linus Walleij 2016-09-01 38
a483ab796960c9 Linus Walleij 2016-09-01 39 #ifdef CONFIG_OF
a483ab796960c9 Linus Walleij 2016-09-01 40 static const struct of_device_id kxsd9_of_match[] = {
a483ab796960c9 Linus Walleij 2016-09-01 41 { .compatible = "kionix,kxsd9", },
a483ab796960c9 Linus Walleij 2016-09-01 42 { },
a483ab796960c9 Linus Walleij 2016-09-01 43 };
a483ab796960c9 Linus Walleij 2016-09-01 44 MODULE_DEVICE_TABLE(of, kxsd9_of_match);
a483ab796960c9 Linus Walleij 2016-09-01 45 #else
a483ab796960c9 Linus Walleij 2016-09-01 46 #define kxsd9_of_match NULL
a483ab796960c9 Linus Walleij 2016-09-01 47 #endif
a483ab796960c9 Linus Walleij 2016-09-01 48
a483ab796960c9 Linus Walleij 2016-09-01 49 static const struct i2c_device_id kxsd9_i2c_id[] = {
a483ab796960c9 Linus Walleij 2016-09-01 50 {"kxsd9", 0},
a483ab796960c9 Linus Walleij 2016-09-01 51 { },
a483ab796960c9 Linus Walleij 2016-09-01 52 };
a483ab796960c9 Linus Walleij 2016-09-01 53 MODULE_DEVICE_TABLE(i2c, kxsd9_i2c_id);
a483ab796960c9 Linus Walleij 2016-09-01 54
a483ab796960c9 Linus Walleij 2016-09-01 55 static struct i2c_driver kxsd9_i2c_driver = {
a483ab796960c9 Linus Walleij 2016-09-01 56 .driver = {
a483ab796960c9 Linus Walleij 2016-09-01 57 .name = "kxsd9",
a483ab796960c9 Linus Walleij 2016-09-01 58 .of_match_table = of_match_ptr(kxsd9_of_match),
9a9a369d6178dd Linus Walleij 2016-09-01 59 .pm = &kxsd9_dev_pm_ops,
a483ab796960c9 Linus Walleij 2016-09-01 60 },
a483ab796960c9 Linus Walleij 2016-09-01 61 .probe = kxsd9_i2c_probe,
a483ab796960c9 Linus Walleij 2016-09-01 62 .remove = kxsd9_i2c_remove,
a483ab796960c9 Linus Walleij 2016-09-01 63 .id_table = kxsd9_i2c_id,
a483ab796960c9 Linus Walleij 2016-09-01 64 };
a483ab796960c9 Linus Walleij 2016-09-01 65 module_i2c_driver(kxsd9_i2c_driver);
9a0ebbc93547d8 Linus Walleij 2017-11-13 66
9a0ebbc93547d8 Linus Walleij 2017-11-13 67 MODULE_LICENSE("GPL v2");
9a0ebbc93547d8 Linus Walleij 2017-11-13 @68 MODULE_DESCRIPTION("KXSD9 accelerometer I2C interface");

:::::: The code at line 68 was first introduced by commit
:::::: 9a0ebbc93547d88f422905c34dcceebe928f3e9e iio: adc/accel: Fix up module licenses

:::::: TO: Linus Walleij <[email protected]>
:::::: CC: Jonathan Cameron <[email protected]>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]


Attachments:
(No filename) (6.96 kB)
.config.gz (27.47 kB)
Download all attachments

2020-03-22 15:14:28

by Jonathan Cameron

[permalink] [raw]
Subject: Re: [PATCH 01/13] iio: accel: kxsd9: Use suitable format specifier

On Sun, 22 Mar 2020 02:31:52 +0530
Nishant Malpani <[email protected]> wrote:

> Provide more suitable format specifiers while printing error logs.
> Discards the use of unnecessary explicit casting and prints symbolic
> error name which might prove to be convenient during debugging.
>
> Signed-off-by: Nishant Malpani <[email protected]>
> ---
>
> Based on conversations in [1] & [2].
>
> [1] https://marc.info/?l=linux-iio&m=158427554607223&w=2
> [2] https://marc.info/?l=linux-iio&m=158481647605891&w=2
> ---
> drivers/iio/accel/kxsd9-i2c.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/iio/accel/kxsd9-i2c.c b/drivers/iio/accel/kxsd9-i2c.c
> index 38411e1c155b..39a9daa7566f 100644
> --- a/drivers/iio/accel/kxsd9-i2c.c
> +++ b/drivers/iio/accel/kxsd9-i2c.c
> @@ -21,8 +21,8 @@ static int kxsd9_i2c_probe(struct i2c_client *i2c,
>
> regmap = devm_regmap_init_i2c(i2c, &config);
> if (IS_ERR(regmap)) {
> - dev_err(&i2c->dev, "Failed to register i2c regmap %d\n",
> - (int)PTR_ERR(regmap));
> + dev_err(&i2c->dev, "Failed to register i2c regmap %pe\n",
> + regmap;

Please make sure you do basic build tests.

regmap);

> return PTR_ERR(regmap);
> }
>