From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pf1-f194.google.com ([209.85.210.194]:38686 "EHLO mail-pf1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725997AbeKJG1O (ORCPT ); Sat, 10 Nov 2018 01:27:14 -0500 Received: by mail-pf1-f194.google.com with SMTP id b11-v6so1444716pfi.5 for ; Fri, 09 Nov 2018 12:44:59 -0800 (PST) Date: Fri, 9 Nov 2018 13:44:54 -0700 From: Tycho Andersen To: Dmitry Safonov Cc: linux-kernel@vger.kernel.org, Dmitry Safonov <0x7f454c46@gmail.com>, Daniel Axtens , Dmitry Vyukov , Mark Rutland , Michael Neuling , Mikulas Patocka , Nathan March , Pasi =?iso-8859-1?Q?K=E4rkk=E4inen?= , Peter Hurley , Peter Zijlstra , "Rong, Chen" , Sergey Senozhatsky , Tan Xiaojun , Tetsuo Handa , Jiri Slaby , syzbot+3aa9784721dfb90e984d@syzkaller.appspotmail.com, Greg Kroah-Hartman , Jiri Slaby , stable@vger.kernel.org Subject: Re: [PATCHv6 2/7] tty: Hold tty_ldisc_lock() during tty_reopen() Message-ID: <20181109204454.GF3645@cisco> References: <20181101002452.5483-1-dima@arista.com> <20181101002452.5483-3-dima@arista.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20181101002452.5483-3-dima@arista.com> Sender: stable-owner@vger.kernel.org List-ID: Hi, On Thu, Nov 01, 2018 at 12:24:47AM +0000, Dmitry Safonov wrote: > tty_ldisc_reinit() doesn't race with neither tty_ldisc_hangup() > nor set_ldisc() nor tty_ldisc_release() as they use tty lock. > But it races with anyone who expects line discipline to be the same > after hoding read semaphore in tty_ldisc_ref(). > > We've seen the following crash on v4.9.108 stable: > > BUG: unable to handle kernel paging request at 0000000000002260 > IP: [..] n_tty_receive_buf_common+0x5f/0x86d > Workqueue: events_unbound flush_to_ldisc > Call Trace: > [..] n_tty_receive_buf2 > [..] tty_ldisc_receive_buf > [..] flush_to_ldisc > [..] process_one_work > [..] worker_thread > [..] kthread > [..] ret_from_fork > > tty_ldisc_reinit() should be called with ldisc_sem hold for writing, > which will protect any reader against line discipline changes. > > Cc: Greg Kroah-Hartman > Cc: Jiri Slaby > Cc: stable@vger.kernel.org # b027e2298bd5 ("tty: fix data race between tty_init_dev and flush of buf") > Reviewed-by: Jiri Slaby > Reported-by: syzbot+3aa9784721dfb90e984d@syzkaller.appspotmail.com > Tested-by: Mark Rutland > Tested-by: Tetsuo Handa Feel free to add Tested-by: Tycho Andersen to this as well. We've recently seen this bug (well, the one that syzbot reported), and this patch fixes it. Tycho