[PATCH] virtio_console: clean up port name sysfs attribute

From: Goncalo Gomes

Date: Mon Jun 01 2026 - 10:31:18 EST


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 <gomesgoncalo+linuxkernel@xxxxxxxxx>
---
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