From: Oliver Neukum <oneukum@xxxxxxx> Rewrite it so that the status is evaluated only if the printk is actually executed. Signed-off-by: Oliver Neukum <oneukum@xxxxxxx> --- 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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html