2022-09-26 19:03:50

by Jules Irenge

[permalink] [raw]
Subject: [PATCH 2/7] scsi: Convert snprintf() to scnprintf()

Coccinnelle reports a warning
Warning: Use scnprintf or sprintf
Adding to that, there has been a slow migration from snprintf to scnprintf.
This LWN article explains the rationale for this change
https: //lwn.net/Articles/69419/
Ie. snprintf() returns what *would* be the resulting length,
while scnprintf() returns the actual length.

Signed-off-by: Jules Irenge <[email protected]>
---
drivers/scsi/scsi_sysfs.c | 30 +++++++++++++++---------------
1 file changed, 15 insertions(+), 15 deletions(-)

diff --git a/drivers/scsi/scsi_sysfs.c b/drivers/scsi/scsi_sysfs.c
index 5d61f58399dc..b1bfb8af0760 100644
--- a/drivers/scsi/scsi_sysfs.c
+++ b/drivers/scsi/scsi_sysfs.c
@@ -228,7 +228,7 @@ show_shost_state(struct device *dev, struct device_attribute *attr, char *buf)
if (!name)
return -EINVAL;

- return snprintf(buf, 20, "%s\n", name);
+ return scnprintf(buf, 20, "%s\n", name);
}

/* DEVICE_ATTR(state) clashes with dev_attr_state for sdev */
@@ -274,7 +274,7 @@ show_shost_active_mode(struct device *dev,
struct Scsi_Host *shost = class_to_shost(dev);

if (shost->active_mode == MODE_UNKNOWN)
- return snprintf(buf, 20, "unknown\n");
+ return scnprintf(buf, 20, "unknown\n");
else
return show_shost_mode(shost->active_mode, buf);
}
@@ -324,7 +324,7 @@ show_shost_eh_deadline(struct device *dev,
struct Scsi_Host *shost = class_to_shost(dev);

if (shost->eh_deadline == -1)
- return snprintf(buf, strlen("off") + 2, "off\n");
+ return scnprintf(buf, strlen("off") + 2, "off\n");
return sprintf(buf, "%u\n", shost->eh_deadline / HZ);
}

@@ -382,7 +382,7 @@ static ssize_t
show_host_busy(struct device *dev, struct device_attribute *attr, char *buf)
{
struct Scsi_Host *shost = class_to_shost(dev);
- return snprintf(buf, 20, "%d\n", scsi_host_busy(shost));
+ return scnprintf(buf, 20, "%d\n", scsi_host_busy(shost));
}
static DEVICE_ATTR(host_busy, S_IRUGO, show_host_busy, NULL);

@@ -399,7 +399,7 @@ show_nr_hw_queues(struct device *dev, struct device_attribute *attr, char *buf)
struct Scsi_Host *shost = class_to_shost(dev);
struct blk_mq_tag_set *tag_set = &shost->tag_set;

- return snprintf(buf, 20, "%d\n", tag_set->nr_hw_queues);
+ return scnprintf(buf, 20, "%d\n", tag_set->nr_hw_queues);
}
static DEVICE_ATTR(nr_hw_queues, S_IRUGO, show_nr_hw_queues, NULL);

@@ -692,7 +692,7 @@ sdev_show_device_busy(struct device *dev, struct device_attribute *attr,
char *buf)
{
struct scsi_device *sdev = to_scsi_device(dev);
- return snprintf(buf, 20, "%d\n", scsi_device_busy(sdev));
+ return scnprintf(buf, 20, "%d\n", scsi_device_busy(sdev));
}
static DEVICE_ATTR(device_busy, S_IRUGO, sdev_show_device_busy, NULL);

@@ -701,7 +701,7 @@ sdev_show_device_blocked(struct device *dev, struct device_attribute *attr,
char *buf)
{
struct scsi_device *sdev = to_scsi_device(dev);
- return snprintf(buf, 20, "%d\n", atomic_read(&sdev->device_blocked));
+ return scnprintf(buf, 20, "%d\n", atomic_read(&sdev->device_blocked));
}
static DEVICE_ATTR(device_blocked, S_IRUGO, sdev_show_device_blocked, NULL);

@@ -713,7 +713,7 @@ sdev_show_timeout (struct device *dev, struct device_attribute *attr, char *buf)
{
struct scsi_device *sdev;
sdev = to_scsi_device(dev);
- return snprintf(buf, 20, "%d\n", sdev->request_queue->rq_timeout / HZ);
+ return scnprintf(buf, 20, "%d\n", sdev->request_queue->rq_timeout / HZ);
}

static ssize_t
@@ -734,7 +734,7 @@ sdev_show_eh_timeout(struct device *dev, struct device_attribute *attr, char *bu
{
struct scsi_device *sdev;
sdev = to_scsi_device(dev);
- return snprintf(buf, 20, "%u\n", sdev->eh_timeout / HZ);
+ return scnprintf(buf, 20, "%u\n", sdev->eh_timeout / HZ);
}

static ssize_t
@@ -862,7 +862,7 @@ show_state_field(struct device *dev, struct device_attribute *attr, char *buf)
if (!name)
return -EINVAL;

- return snprintf(buf, 20, "%s\n", name);
+ return scnprintf(buf, 20, "%s\n", name);
}

static DEVICE_ATTR(state, S_IRUGO | S_IWUSR, show_state_field, store_state_field);
@@ -877,7 +877,7 @@ show_queue_type_field(struct device *dev, struct device_attribute *attr,
if (sdev->simple_tags)
name = "simple";

- return snprintf(buf, 20, "%s\n", name);
+ return scnprintf(buf, 20, "%s\n", name);
}

static ssize_t
@@ -957,7 +957,7 @@ static ssize_t
show_iostat_counterbits(struct device *dev, struct device_attribute *attr,
char *buf)
{
- return snprintf(buf, 20, "%d\n", (int)sizeof(atomic_t) * 8);
+ return scnprintf(buf, 20, "%d\n", (int)sizeof(atomic_t) * 8);
}

static DEVICE_ATTR(iocounterbits, S_IRUGO, show_iostat_counterbits, NULL);
@@ -982,7 +982,7 @@ sdev_show_modalias(struct device *dev, struct device_attribute *attr, char *buf)
{
struct scsi_device *sdev;
sdev = to_scsi_device(dev);
- return snprintf (buf, 20, SCSI_DEVICE_MODALIAS_FMT "\n", sdev->type);
+ return scnprintf (buf, 20, SCSI_DEVICE_MODALIAS_FMT "\n", sdev->type);
}
static DEVICE_ATTR(modalias, S_IRUGO, sdev_show_modalias, NULL);

@@ -1115,7 +1115,7 @@ sdev_show_dh_state(struct device *dev, struct device_attribute *attr,
struct scsi_device *sdev = to_scsi_device(dev);

if (!sdev->handler)
- return snprintf(buf, 20, "detached\n");
+ return scnprintf(buf, 20, "detached\n");

return snprintf(buf, 20, "%s\n", sdev->handler->name);
}
@@ -1205,7 +1205,7 @@ sdev_show_queue_ramp_up_period(struct device *dev,
{
struct scsi_device *sdev;
sdev = to_scsi_device(dev);
- return snprintf(buf, 20, "%u\n",
+ return scnprintf(buf, 20, "%u\n",
jiffies_to_msecs(sdev->queue_ramp_up_period));
}

--
2.37.3


2022-09-26 19:57:06

by Bart Van Assche

[permalink] [raw]
Subject: Re: [PATCH 2/7] scsi: Convert snprintf() to scnprintf()

On 9/26/22 11:40, Jules Irenge wrote:
> Coccinnelle reports a warning
> Warning: Use scnprintf or sprintf
> Adding to that, there has been a slow migration from snprintf to scnprintf.
> This LWN article explains the rationale for this change
> https: //lwn.net/Articles/69419/
> Ie. snprintf() returns what *would* be the resulting length,
> while scnprintf() returns the actual length.

Isn't using snprintf() or scnprintf() inside sysfs show callbacks
considered deprecated?

Thanks,

Bart.