#syz set subsystems: serial include/linux/tty_ldisc.h says "struct tty_ldisc_ops"->write is allowed to sleep. include/linux/tty_driver.h says "struct tty_operations"->write is not allowed to sleep. drivers/tty/vt/vt.c implements do_con_write() from con_write() sleeping, violating what include/linux/tty_driver.h says. But how to fix? - if (in_interrupt()) + if (in_interrupt() || in_atomic()) return count; in do_con_write() and con_flush_chars() ? But include/linux/preempt.h says in_atomic() cannot know about held spinlocks in non-preemptible kernels. Is there a way to detect spin_lock_irqsave(&gsm->tx_lock, flags) from gsmld_write() ? Something like whether irq is disabled? On 2024/01/18 18:51, syzbot wrote: > Hello, > > syzbot found the following issue on: > > HEAD commit: 1b1934dbbdcf Merge tag 'docs-6.8-2' of git://git.lwn.net/l.. > git tree: upstream > console output: https://syzkaller.appspot.com/x/log.txt?x=1029adbde80000 > kernel config: https://syzkaller.appspot.com/x/.config?x=68ea41b98043e6e8 > dashboard link: https://syzkaller.appspot.com/bug?extid=06fa1063cca8163ea541 > compiler: aarch64-linux-gnu-gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40 > userspace arch: arm64