Skip to content

Commit

Permalink
USB: serial: add macro for console error reporting
Browse files Browse the repository at this point in the history
Add macro which prints an error message only once if port is used a
console.

Reporting errors in a write path when port is used as a console could
otherwise result in an infinite loop.

Signed-off-by: Johan Hovold <jhovold@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
Johan Hovold authored and Greg Kroah-Hartman committed Feb 9, 2012
1 parent d35e70d commit e688355
Showing 1 changed file with 15 additions and 0 deletions.
15 changes: 15 additions & 0 deletions include/linux/usb/serial.h
Original file line number Diff line number Diff line change
Expand Up @@ -389,5 +389,20 @@ do { \
printk(KERN_DEBUG "%s: " format "\n", __FILE__, ##arg); \
} while (0)

/*
* Macro for reporting errors in write path to avoid inifinite loop
* when port is used as a console.
*/
#define dev_err_console(usport, fmt, ...) \
do { \
static bool __print_once; \
struct usb_serial_port *__port = (usport); \
\
if (!__port->port.console || !__print_once) { \
__print_once = true; \
dev_err(&__port->dev, fmt, ##__VA_ARGS__); \
} \
} while (0)

#endif /* __LINUX_USB_SERIAL_H */

0 comments on commit e688355

Please sign in to comment.