When compiling a kernel with GCC using `make W=1` with CONFIG_WERROR=y
(which is default nowadays), the build fails:

drivers/char/virtio_console.c:1427:9: note: ‘snprintf’ output between 9 and 27 
bytes into a destination of size 16

Indeed, GCC can't see the limits of the variables that are in use.
Fix this by using dev_name() of the newly created device that is
luckily the same as the string used for the DebugFS node name.

Signed-off-by: Andy Shevchenko <andriy.shevche...@linux.intel.com>
---
 drivers/char/virtio_console.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/char/virtio_console.c b/drivers/char/virtio_console.c
index 24442485e73e..707464d2227c 100644
--- a/drivers/char/virtio_console.c
+++ b/drivers/char/virtio_console.c
@@ -1321,7 +1321,6 @@ static void send_sigio_to_port(struct port *port)
 
 static int add_port(struct ports_device *portdev, u32 id)
 {
-       char debugfs_name[16];
        struct port *port;
        dev_t devt;
        int err;
@@ -1424,9 +1423,7 @@ static int add_port(struct ports_device *portdev, u32 id)
         * Finally, create the debugfs file that we can use to
         * inspect a port's state at any time
         */
-       snprintf(debugfs_name, sizeof(debugfs_name), "vport%up%u",
-                port->portdev->vdev->index, id);
-       port->debugfs_file = debugfs_create_file(debugfs_name, 0444,
+       port->debugfs_file = debugfs_create_file(dev_name(port->dev), 0444,
                                                 pdrvdata.debugfs_dir,
                                                 port, &port_debugfs_fops);
        return 0;
-- 
2.45.1.3035.g276e886db78b


Reply via email to