From: Oliver Neukum <[email protected]>

Rewrite it so that the status is evaluated only if the
printk is actually executed.

Signed-off-by: Oliver Neukum <[email protected]>
---
 drivers/usb/host/ehci-dbg.c | 51 +++++++++++++++++++++------------------------
 1 file changed, 24 insertions(+), 27 deletions(-)

diff --git a/drivers/usb/host/ehci-dbg.c b/drivers/usb/host/ehci-dbg.c
index 4a9c2ed..13de11c 100644
--- a/drivers/usb/host/ehci-dbg.c
+++ b/drivers/usb/host/ehci-dbg.c
@@ -176,26 +176,6 @@ dbg_sitd (const char *label, struct ehci_hcd *ehci, struct 
ehci_sitd *sitd)
 }
 
 static int __maybe_unused
-dbg_status_buf (char *buf, unsigned len, const char *label, u32 status)
-{
-       return scnprintf (buf, len,
-               "%s%sstatus %04x%s%s%s%s%s%s%s%s%s%s%s",
-               label, label [0] ? " " : "", status,
-               (status & STS_PPCE_MASK) ? " PPCE" : "",
-               (status & STS_ASS) ? " Async" : "",
-               (status & STS_PSS) ? " Periodic" : "",
-               (status & STS_RECL) ? " Recl" : "",
-               (status & STS_HALT) ? " Halt" : "",
-               (status & STS_IAA) ? " IAA" : "",
-               (status & STS_FATAL) ? " FATAL" : "",
-               (status & STS_FLR) ? " FLR" : "",
-               (status & STS_PCD) ? " PCD" : "",
-               (status & STS_ERR) ? " ERR" : "",
-               (status & STS_INT) ? " INT" : ""
-               );
-}
-
-static int __maybe_unused
 dbg_intr_buf (char *buf, unsigned len, const char *label, u32 enable)
 {
        return scnprintf (buf, len,
@@ -286,10 +266,6 @@ dbg_qh (char *label, struct ehci_hcd *ehci, struct ehci_qh 
*qh)
 {}
 
 static inline int __maybe_unused
-dbg_status_buf (char *buf, unsigned len, const char *label, u32 status)
-{ return 0; }
-
-static inline int __maybe_unused
 dbg_command_buf (char *buf, unsigned len, const char *label, u32 command)
 { return 0; }
 
@@ -303,11 +279,32 @@ dbg_port_buf (char *buf, unsigned len, const char *label, 
int port, u32 status)
 
 #endif /* DEBUG || CONFIG_DYNAMIC_DEBUG */
 
+static char
+*dbg_status_buf(char *buf, unsigned len, const char *label, u32 status)
+{
+       scnprintf (buf, len,
+               "%s%sstatus %04x%s%s%s%s%s%s%s%s%s%s%s",
+               label, label [0] ? " " : "", status,
+               (status & STS_PPCE_MASK) ? " PPCE" : "",
+               (status & STS_ASS) ? " Async" : "",
+               (status & STS_PSS) ? " Periodic" : "",
+               (status & STS_RECL) ? " Recl" : "",
+               (status & STS_HALT) ? " Halt" : "",
+               (status & STS_IAA) ? " IAA" : "",
+               (status & STS_FATAL) ? " FATAL" : "",
+               (status & STS_FLR) ? " FLR" : "",
+               (status & STS_PCD) ? " PCD" : "",
+               (status & STS_ERR) ? " ERR" : "",
+               (status & STS_INT) ? " INT" : ""
+       );
+
+       return buf;
+}
+
 /* functions have the "wrong" filename when they're output... */
 #define dbg_status(ehci, label, status) { \
        char _buf [80]; \
-       dbg_status_buf (_buf, sizeof _buf, label, status); \
-       ehci_dbg (ehci, "%s\n", _buf); \
+       ehci_dbg (ehci, "%s\n", dbg_status_buf (_buf, sizeof _buf, label, 
status)); \
 }
 
 #define dbg_cmd(ehci, label, command) { \
@@ -867,7 +864,7 @@ static ssize_t fill_registers_buffer(struct debug_buffer 
*buf)
        next += temp;
 
        /* Operational Registers */
-       temp = dbg_status_buf (scratch, sizeof scratch, label,
+       dbg_status_buf(scratch, sizeof scratch, label,
                        ehci_readl(ehci, &ehci->regs->status));
        temp = scnprintf (next, size, fmt, temp, scratch);
        size -= temp;
-- 
1.8.3.1

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to