scsi: 53c700: Remove snprintf() from sysfs call-backs and replace with sysfs_emit()
authorLee Jones <lee@kernel.org>
Thu, 11 Jan 2024 13:17:25 +0000 (13:17 +0000)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 30 Jan 2024 01:34:52 +0000 (20:34 -0500)
Since snprintf() has the documented, but still rather strange trait of
returning the length of the data that *would have been* written to the
array if space were available, rather than the arguably more useful
length of data *actually* written, it is usually considered wise to use
something else instead in order to avoid confusion.

In the case of sysfs call-backs, new wrappers exist that do just that.

[mkp: removed unrelated whitespace cleanups]

Link: https://lwn.net/Articles/69419/
Link: https://github.com/KSPP/linux/issues/105
Cc: Richard Hirst <rhirst@linuxcare.com>
Signed-off-by: Lee Jones <lee@kernel.org>
Link: https://lore.kernel.org/r/20240111131732.1815560-5-lee@kernel.org
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/53c700.c

index 857be0f..85439e9 100644 (file)
@@ -2071,7 +2071,7 @@ NCR_700_show_active_tags(struct device *dev, struct device_attribute *attr, char
 {
        struct scsi_device *SDp = to_scsi_device(dev);
 
-       return snprintf(buf, 20, "%d\n", NCR_700_get_depth(SDp));
+       return sysfs_emit(buf, "%d\n", NCR_700_get_depth(SDp));
 }
 
 static struct device_attribute NCR_700_active_tags_attr = {