[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <83414cb6-df16-4b6d-92e3-d54d22ba26cc@I-love.SAKURA.ne.jp>
Date: Thu, 18 Jan 2024 23:18:03 +0900
From: Tetsuo Handa <penguin-kernel@...ove.SAKURA.ne.jp>
To: syzbot <syzbot+06fa1063cca8163ea541@...kaller.appspotmail.com>,
syzkaller-bugs@...glegroups.com,
linux-serial <linux-serial@...r.kernel.org>
Cc: linux-kernel@...r.kernel.org
Subject: Re: [syzbot] [dri?] BUG: scheduling while atomic in
drm_atomic_helper_wait_for_flip_done
#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
Powered by blists - more mailing lists