Fix issues flagged by checkpatch.pl: Replace `sprintf` with `sysfs_emit` in the `name_show` callback. sysfs.rst states that `show` methods should only use `sysfs_emit` when formatting output for user space.
Rename `show_port_name` to `name_show` to follow the naming convention for sysfs attribute callbacks, and replace the open-coded DEVICE_ATTR() with DEVICE_ATTR_RO(name) which encodes both the mode and the expected function name. Also fix a missing blank line after a declaration in free_buf(). Signed-off-by: Goncalo Gomes <[email protected]> --- drivers/char/virtio_console.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/char/virtio_console.c b/drivers/char/virtio_console.c index 9a33217c68d9..56bf0f1b8a00 100644 --- a/drivers/char/virtio_console.c +++ b/drivers/char/virtio_console.c @@ -352,6 +352,7 @@ static void free_buf(struct port_buffer *buf, bool can_sleep) for (i = 0; i < buf->sgpages; i++) { struct page *page = sg_page(&buf->sg[i]); + if (!page) break; put_page(page); @@ -1237,17 +1238,17 @@ static int init_port_console(struct port *port) return 0; } -static ssize_t show_port_name(struct device *dev, - struct device_attribute *attr, char *buffer) +static ssize_t name_show(struct device *dev, + struct device_attribute *attr, char *buffer) { struct port *port; port = dev_get_drvdata(dev); - return sprintf(buffer, "%s\n", port->name); + return sysfs_emit(buffer, "%s\n", port->name); } -static DEVICE_ATTR(name, S_IRUGO, show_port_name, NULL); +static DEVICE_ATTR_RO(name); static struct attribute *port_sysfs_entries[] = { &dev_attr_name.attr, -- 2.54.0

