On 2021/04/08 21:51, Greg Kroah-Hartman wrote: > Remove users of tty_warn() and replace them with calls to dev_warn() > which provides more information about the tty that has the error and > uses the standard formatting logic.
Ouch. This series would be good for clean up, but this series might be bad for handling lockdep warning syzbot is reporting. Since tty_warn() is using plain printk(), we can avoid lockdep warning by using printk_deferred(). If we use dev_warn() instead, we need to modify __dev_printk() to use printk_deferred(), which means that all dev_*() users are affected by this change. Also, we need to modify dev_printk_emit()/dev_vprintk_emit() callers to embed loglevel into the format string so that we pass LOGLEVEL_SCHED to vprintk_emit() ... maybe just change from "if (!in_sched)" to "if (!in_sched && !dev_info)" instead ? Also, dev_vprintk_emit() need to start calling defer_console_output() after returning from vprintk_emit() in order to behave like printk_deferred(). I'm not sure whether this change is safe.