usb: phy: twl6030: Remove snprintf() from sysfs call-backs and replace with sysfs_emit()
authorLee Jones <lee@kernel.org>
Wed, 13 Dec 2023 16:42:40 +0000 (16:42 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 15 Dec 2023 12:55:30 +0000 (13:55 +0100)
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: Hema HK <hemahk@ti.com>
Signed-off-by: Lee Jones <lee@kernel.org>
Link: https://lore.kernel.org/r/20231213164246.1021885-12-lee@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/phy/phy-twl6030-usb.c

index c3ce6b1..da09cff 100644 (file)
@@ -179,16 +179,16 @@ static ssize_t vbus_show(struct device *dev,
 
        switch (twl->linkstat) {
        case MUSB_VBUS_VALID:
-              ret = snprintf(buf, PAGE_SIZE, "vbus\n");
+              ret = sysfs_emit(buf, "vbus\n");
               break;
        case MUSB_ID_GROUND:
-              ret = snprintf(buf, PAGE_SIZE, "id\n");
+              ret = sysfs_emit(buf, "id\n");
               break;
        case MUSB_VBUS_OFF:
-              ret = snprintf(buf, PAGE_SIZE, "none\n");
+              ret = sysfs_emit(buf, "none\n");
               break;
        default:
-              ret = snprintf(buf, PAGE_SIZE, "UNKNOWN\n");
+              ret = sysfs_emit(buf, "UNKNOWN\n");
        }
        spin_unlock_irqrestore(&twl->lock, flags);