Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e688355b authored by Johan Hovold's avatar Johan Hovold Committed by Greg Kroah-Hartman
Browse files

USB: serial: add macro for console error reporting



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: default avatarJohan Hovold <jhovold@gmail.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent d35e70d5
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -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 */