From: Andy Shevchenko > Sent: 19 January 2023 22:08 > > The checkpatch.pl warns: "Prefer kstrto<type> to single variable sscanf". > Fix the code accordingly. > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> > --- > drivers/block/pktcdvd.c | 34 ++++++++++++++++++---------------- > 1 file changed, 18 insertions(+), 16 deletions(-) > > diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c > index 0ec8dc8ee5ed..ad4336ae9927 100644 > --- a/drivers/block/pktcdvd.c > +++ b/drivers/block/pktcdvd.c > @@ -236,15 +236,16 @@ static ssize_t congestion_off_store(struct device *dev, > const char *buf, size_t len) > { > struct pktcdvd_device *pd = dev_get_drvdata(dev); > - int val; > + int val, ret; > > - if (sscanf(buf, "%d", &val) == 1) { > - spin_lock(&pd->lock); > - pd->write_congestion_off = val; > - init_write_congestion_marks(&pd->write_congestion_off, > - &pd->write_congestion_on); > - spin_unlock(&pd->lock); > - } > + ret = kstrtoint(buf, 10, &val); > + if (ret) > + return ret; > + > + spin_lock(&pd->lock); > + pd->write_congestion_off = val; > + init_write_congestion_marks(&pd->write_congestion_off, &pd->write_congestion_on); > + spin_unlock(&pd->lock); > return len; > } These don't look directly equivalent. The sscanf() version silently ignores trailing characters. I think kstrtoint() will generate an error. Have you actually checked that the caller allows for an error return. David - Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales)