serial: samsung: Neaten dbg uses
authorJoe Perches <joe@perches.com>
Tue, 20 May 2014 21:05:50 +0000 (14:05 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 28 May 2014 19:27:22 +0000 (12:27 -0700)
Add format and argument checking and fix misuses in the dbg macro.

Add __printf
Use %pR for resource
Add #include guard to samsung.h
Move static functions from .h to .c
Use vscnprintf instead of length unguarded vsprintf

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/samsung.c
drivers/tty/serial/samsung.h

index 1f5505e7f90dd9de0c84770a164c3a1d95968dc4..329337711bb03fae1dd0eea9b4b9dcf6e8ca798d 100644 (file)
 
 #include "samsung.h"
 
+#if    defined(CONFIG_SERIAL_SAMSUNG_DEBUG) && \
+       defined(CONFIG_DEBUG_LL) &&             \
+       !defined(MODULE)
+
+extern void printascii(const char *);
+
+__printf(1, 2)
+static void dbg(const char *fmt, ...)
+{
+       va_list va;
+       char buff[256];
+
+       va_start(va, fmt);
+       vscnprintf(buff, sizeof(buf), fmt, va);
+       va_end(va);
+
+       printascii(buff);
+}
+
+#else
+#define dbg(fmt, ...) do { if (0) no_printk(fmt, ##__VA_ARGS__); } while (0)
+#endif
+
 /* UART name and device definitions */
 
 #define S3C24XX_SERIAL_NAME    "ttySAC"
@@ -468,8 +491,8 @@ static int s3c24xx_serial_startup(struct uart_port *port)
        struct s3c24xx_uart_port *ourport = to_ourport(port);
        int ret;
 
-       dbg("s3c24xx_serial_startup: port=%p (%08lx,%p)\n",
-           port->mapbase, port->membase);
+       dbg("s3c24xx_serial_startup: port=%p (%08llx,%p)\n",
+           port, (unsigned long long)port->mapbase, port->membase);
 
        rx_enabled(port) = 1;
 
@@ -514,8 +537,8 @@ static int s3c64xx_serial_startup(struct uart_port *port)
        struct s3c24xx_uart_port *ourport = to_ourport(port);
        int ret;
 
-       dbg("s3c64xx_serial_startup: port=%p (%08lx,%p)\n",
-           port->mapbase, port->membase);
+       dbg("s3c64xx_serial_startup: port=%p (%08llx,%p)\n",
+           port, (unsigned long long)port->mapbase, port->membase);
 
        wr_regl(port, S3C64XX_UINTM, 0xf);
 
@@ -1160,7 +1183,7 @@ static int s3c24xx_serial_init_port(struct s3c24xx_uart_port *ourport,
                return -EINVAL;
        }
 
-       dbg("resource %p (%lx..%lx)\n", res, res->start, res->end);
+       dbg("resource %pR)\n", res);
 
        port->membase = devm_ioremap(port->dev, res->start, resource_size(res));
        if (!port->membase) {
@@ -1203,7 +1226,7 @@ static int s3c24xx_serial_init_port(struct s3c24xx_uart_port *ourport,
                wr_regl(port, S3C64XX_UINTSP, 0xf);
        }
 
-       dbg("port: map=%08x, mem=%08x, irq=%d (%d,%d), clock=%ld\n",
+       dbg("port: map=%08x, mem=%p, irq=%d (%d,%d), clock=%u\n",
            port->mapbase, port->membase, port->irq,
            ourport->rx_irq, ourport->tx_irq, port->uartclk);
 
index 8827e5424cef7d13420114650bdcfa19cad91ea0..eb071dd19b2d13deb189afba8a9bf6364d29e9ed 100644 (file)
@@ -1,3 +1,6 @@
+#ifndef __SAMSUNG_H
+#define __SAMSUNG_H
+
 /*
  * Driver for Samsung SoC onboard UARTs.
  *
@@ -77,24 +80,4 @@ struct s3c24xx_uart_port {
 #define wr_regb(port, reg, val) __raw_writeb(val, portaddr(port, reg))
 #define wr_regl(port, reg, val) __raw_writel(val, portaddr(port, reg))
 
-#if defined(CONFIG_SERIAL_SAMSUNG_DEBUG) && \
-    defined(CONFIG_DEBUG_LL) && \
-    !defined(MODULE)
-
-extern void printascii(const char *);
-
-static void dbg(const char *fmt, ...)
-{
-       va_list va;
-       char buff[256];
-
-       va_start(va, fmt);
-       vsprintf(buff, fmt, va);
-       va_end(va);
-
-       printascii(buff);
-}
-
-#else
-#define dbg(x...) do { } while (0)
 #endif