Message ID | 20170121192010.30681-2-f.fainelli@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
On 01/21/2017 11:20 AM, Florian Fainelli wrote: > We have a device reference, utilize it instead of pr_warn(). > > Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> > --- Applied to -next. Thanks, Guenter -- To unsubscribe from this list: send the line "unsubscribe linux-hwmon" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Sat, 2017-01-21 at 11:20 -0800, Florian Fainelli wrote:
> We have a device reference, utilize it instead of pr_warn().
There is at least one more hwmon to convert in applesmc.c
Perhaps a coccinelle script?
Two questions for Julia Lawall:
o is there a better way to do this than repeat the blocks
one for each replacement
o can struct device * dev be made an arbitrary identifier
$ cat dev_printk.cocci
@@
identifier fn;
type T;
@@
T fn ( ..., struct device * dev, ... ) {
<...
- pr_emerg(
+ dev_emerg(dev,
...);
...>
}
@@
identifier fn;
type T;
@@
T fn ( ..., struct device * dev, ... ) {
<...
- pr_crit(
+ dev_crit(dev,
...);
...>
}
@@
identifier fn;
type T;
@@
T fn ( ..., struct device * dev, ... ) {
<...
- pr_alert(
+ dev_alert(dev,
...);
...>
}
@@
identifier fn;
type T;
@@
T fn ( ..., struct device * dev, ... ) {
<...
- pr_err(
+ dev_err(dev,
...);
...>
}
@@
identifier fn;
type T;
@@
T fn ( ..., struct device * dev, ... ) {
<...
- pr_notice(
+ dev_notice(dev,
...);
...>
}
@@
identifier fn;
type T;
@@
T fn ( ..., struct device * dev, ... ) {
<...
- pr_warn(
+ dev_warn(dev,
...);
...>
}
@@
identifier fn;
type T;
@@
T fn ( ..., struct device * dev, ... ) {
<...
- pr_info(
+ dev_info(dev,
...);
...>
}
@@
identifier fn;
type T;
@@
T fn ( ..., struct device * dev, ... ) {
<...
- pr_debug(
+ dev_dbg(dev,
...);
...>
}
--
To unsubscribe from this list: send the line "unsubscribe linux-hwmon" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
On Sun, 2017-01-22 at 22:43 -0800, Joe Perches wrote: > Two questions for Julia Lawall: > > o is there a better way to do this than repeat the blocks > one for each replacement > o can struct device * dev be made an arbitrary identifier > > $ cat dev_printk.cocci > @@ > identifier fn; > type T; > @@ > > T fn ( ..., struct device * dev, ... ) { > <... > - pr_emerg( > + dev_emerg(dev, > ...); > ...> > } Well, the second question is simple if I would just think a little before asking... @@ identifier fn; identifier dev; type T; @@ T fn ( ..., struct device * dev, ... ) { <... - pr_emerg( + dev_emerg(dev, ...); ...> } etc... -- To unsubscribe from this list: send the line "unsubscribe linux-hwmon" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 01/22/2017 10:43 PM, Joe Perches wrote: > On Sat, 2017-01-21 at 11:20 -0800, Florian Fainelli wrote: >> We have a device reference, utilize it instead of pr_warn(). > > There is at least one more hwmon to convert in applesmc.c > > Perhaps a coccinelle script? > > Two questions for Julia Lawall: > > o is there a better way to do this than repeat the blocks > one for each replacement > o can struct device * dev be made an arbitrary identifier Definitely yes here; otherwise you only catch the ones named 'dev'. Did you try "identifier dev;" ? The type of fn is irrelevant; you don't need to specify it. There is also the case where 'struct device *dev' is a local variable fn(...) { ... struct device *dev = e; <... ...> } or when it isn't but is still available fn (..., struct \(platform_device\|i2c_device\|spi_device\) *pdev, ...) { } > > $ cat dev_printk.cocci > @@ > identifier fn; > type T; > @@ > > T fn ( ..., struct device * dev, ... ) { > <... > - pr_emerg( > + dev_emerg(dev, > ...); > ...> > } > > @@ > identifier fn; > type T; > @@ > > T fn ( ..., struct device * dev, ... ) { > <... > - pr_crit( > + dev_crit(dev, > ...); > ...> > } > > @@ > identifier fn; > type T; > @@ > > T fn ( ..., struct device * dev, ... ) { > <... > - pr_alert( > + dev_alert(dev, > ...); > ...> > } > > @@ > identifier fn; > type T; > @@ > > T fn ( ..., struct device * dev, ... ) { > <... > - pr_err( > + dev_err(dev, > ...); > ...> > } > > @@ > identifier fn; > type T; > @@ > > T fn ( ..., struct device * dev, ... ) { > <... > - pr_notice( > + dev_notice(dev, > ...); > ...> > } > > @@ > identifier fn; > type T; > @@ > > T fn ( ..., struct device * dev, ... ) { > <... > - pr_warn( > + dev_warn(dev, > ...); > ...> > } > > @@ > identifier fn; > type T; > @@ > > T fn ( ..., struct device * dev, ... ) { > <... > - pr_info( > + dev_info(dev, > ...); > ...> > } > > @@ > identifier fn; > type T; > @@ > > T fn ( ..., struct device * dev, ... ) { > <... > - pr_debug( > + dev_dbg(dev, > ...); > ...> > } > > -- To unsubscribe from this list: send the line "unsubscribe linux-hwmon" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Sun, 22 Jan 2017, Guenter Roeck wrote: > On 01/22/2017 10:43 PM, Joe Perches wrote: > > On Sat, 2017-01-21 at 11:20 -0800, Florian Fainelli wrote: > > > We have a device reference, utilize it instead of pr_warn(). > > > > There is at least one more hwmon to convert in applesmc.c > > > > Perhaps a coccinelle script? > > > > Two questions for Julia Lawall: > > > > o is there a better way to do this than repeat the blocks > > one for each replacement > > o can struct device * dev be made an arbitrary identifier > > Definitely yes here; otherwise you only catch the ones named 'dev'. > Did you try "identifier dev;" ? Definitely do that. > > The type of fn is irrelevant; you don't need to specify it. Agreed. > There is also the case where 'struct device *dev' is a local variable > > fn(...) { > ... > struct device *dev = e; > <... > ...> > } Here, you don't need the fn(...) { ... } part. It would also be good to say: expression e != NULL; dev could also be initialized: @@ struct device *dev; expression e != NULL; expression e1; @@ dev = e; <... - + ...> ? dev = e1; // stop when dev is reinitialized, to avoid a double match The rules can all be merged together with a disjunction: ( - pr_emerg + dev_emerg | - pr_crit + dev_crit // fill in all cases ) ( + dev, ...) julia > or when it isn't but is still available > > fn (..., struct \(platform_device\|i2c_device\|spi_device\) *pdev, ...) { > } > > > > > $ cat dev_printk.cocci > > @@ > > identifier fn; > > type T; > > @@ > > > > T fn ( ..., struct device * dev, ... ) { > > <... > > - pr_emerg( > > + dev_emerg(dev, > > ...); > > ...> > > } > > > > @@ > > identifier fn; > > type T; > > @@ > > > > T fn ( ..., struct device * dev, ... ) { > > <... > > - pr_crit( > > + dev_crit(dev, > > ...); > > ...> > > } > > > > @@ > > identifier fn; > > type T; > > @@ > > > > T fn ( ..., struct device * dev, ... ) { > > <... > > - pr_alert( > > + dev_alert(dev, > > ...); > > ...> > > } > > > > @@ > > identifier fn; > > type T; > > @@ > > > > T fn ( ..., struct device * dev, ... ) { > > <... > > - pr_err( > > + dev_err(dev, > > ...); > > ...> > > } > > > > @@ > > identifier fn; > > type T; > > @@ > > > > T fn ( ..., struct device * dev, ... ) { > > <... > > - pr_notice( > > + dev_notice(dev, > > ...); > > ...> > > } > > > > @@ > > identifier fn; > > type T; > > @@ > > > > T fn ( ..., struct device * dev, ... ) { > > <... > > - pr_warn( > > + dev_warn(dev, > > ...); > > ...> > > } > > > > @@ > > identifier fn; > > type T; > > @@ > > > > T fn ( ..., struct device * dev, ... ) { > > <... > > - pr_info( > > + dev_info(dev, > > ...); > > ...> > > } > > > > @@ > > identifier fn; > > type T; > > @@ > > > > T fn ( ..., struct device * dev, ... ) { > > <... > > - pr_debug( > > + dev_dbg(dev, > > ...); > > ...> > > } > > > > > > -- To unsubscribe from this list: send the line "unsubscribe linux-hwmon" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Sun, 22 Jan 2017, Joe Perches wrote: > On Sun, 2017-01-22 at 22:43 -0800, Joe Perches wrote: > > Two questions for Julia Lawall: > > > > o is there a better way to do this than repeat the blocks > > one for each replacement > > o can struct device * dev be made an arbitrary identifier > > > > $ cat dev_printk.cocci > > @@ > > identifier fn; > > type T; > > @@ > > > > T fn ( ..., struct device * dev, ... ) { > > <... > > - pr_emerg( > > + dev_emerg(dev, > > ...); > > ...> > > } > > Well, the second question is simple if I would just > think a little before asking... > > @@ > identifier fn; > identifier dev; Yes :) julia > type T; > @@ > > T fn ( ..., struct device * dev, ... ) { > <... > - pr_emerg( > + dev_emerg(dev, > ...); > ...> > } > > etc... > > -- To unsubscribe from this list: send the line "unsubscribe linux-hwmon" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/hwmon/lm70.c b/drivers/hwmon/lm70.c index d6ecd1a4be59..52c5cdd00448 100644 --- a/drivers/hwmon/lm70.c +++ b/drivers/hwmon/lm70.c @@ -72,7 +72,8 @@ static ssize_t temp1_input_show(struct device *dev, */ status = spi_write_then_read(spi, NULL, 0, &rxbuf[0], 2); if (status < 0) { - pr_warn("spi_write_then_read failed with status %d\n", status); + dev_warn(dev, "spi_write_then_read failed with status %d\n", + status); goto out; } raw = (rxbuf[0] << 8) + rxbuf[1];
We have a device reference, utilize it instead of pr_warn(). Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> --- drivers/hwmon/lm70.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)