usb: storage: Remove snprintf() from sysfs call-backs and replace with sysfs_emit()
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. Link: https://lwn.net/Articles/69419/ Link: https://github.com/KSPP/linux/issues/105 Cc: Alan Stern <stern@rowland.harvard.edu> Cc: <usb-storage@lists.one-eyed-alien.net> Signed-off-by: Lee Jones <lee@kernel.org> Acked-by: Alan Stern <stern@rowland.harvard.edu> Link: https://lore.kernel.org/r/20231213164246.1021885-13-lee@kernel.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
e5892ea815
commit
3e42084a1c
@ -98,26 +98,26 @@ static ssize_t truinst_show(struct device *dev, struct device_attribute *attr,
|
||||
struct usb_device *udev = interface_to_usbdev(intf);
|
||||
int result;
|
||||
if (swi_tru_install == TRU_FORCE_MS) {
|
||||
result = snprintf(buf, PAGE_SIZE, "Forced Mass Storage\n");
|
||||
result = sysfs_emit(buf, "Forced Mass Storage\n");
|
||||
} else {
|
||||
swocInfo = kmalloc(sizeof(struct swoc_info), GFP_KERNEL);
|
||||
if (!swocInfo) {
|
||||
snprintf(buf, PAGE_SIZE, "Error\n");
|
||||
sysfs_emit(buf, "Error\n");
|
||||
return -ENOMEM;
|
||||
}
|
||||
result = sierra_get_swoc_info(udev, swocInfo);
|
||||
if (result < 0) {
|
||||
dev_dbg(dev, "SWIMS: failed SWoC query\n");
|
||||
kfree(swocInfo);
|
||||
snprintf(buf, PAGE_SIZE, "Error\n");
|
||||
sysfs_emit(buf, "Error\n");
|
||||
return -EIO;
|
||||
}
|
||||
debug_swoc(dev, swocInfo);
|
||||
result = snprintf(buf, PAGE_SIZE,
|
||||
"REV=%02d SKU=%04X VER=%04X\n",
|
||||
swocInfo->rev,
|
||||
swocInfo->LinuxSKU,
|
||||
swocInfo->LinuxVer);
|
||||
result = sysfs_emit(buf,
|
||||
"REV=%02d SKU=%04X VER=%04X\n",
|
||||
swocInfo->rev,
|
||||
swocInfo->LinuxSKU,
|
||||
swocInfo->LinuxVer);
|
||||
kfree(swocInfo);
|
||||
}
|
||||
return result;
|
||||
|
Loading…
x
Reference in New Issue
Block a user