Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753138AbeAEVHz convert rfc822-to-8bit (ORCPT + 1 other); Fri, 5 Jan 2018 16:07:55 -0500 Received: from www.llwyncelyn.cymru ([82.70.14.225]:52850 "EHLO fuzix.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751487AbeAEVHy (ORCPT ); Fri, 5 Jan 2018 16:07:54 -0500 Date: Fri, 5 Jan 2018 21:05:29 +0000 From: Alan Cox To: "Kohli, Gaurav" Cc: jslaby@suse.com, gregkh@linuxfoundation.org, mikey@neuling.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org Subject: Re: [PATCH] tty: fix data race in n_tty_receive_buf_common Message-ID: <20180105210529.0264fef0@alans-desktop> In-Reply-To: <46645a5b-b0d4-35b7-95ac-3606ab9c69d2@codeaurora.org> References: <1514987332-14122-1-git-send-email-gkohli@codeaurora.org> <20180103193807.465e054e@alans-desktop> <0a456419-c836-08cf-070b-a254fb702b75@codeaurora.org> <20180104110920.169a1fe5@alans-desktop> <0dbd1f05-4c94-d1cc-3858-7bd4d38b9212@codeaurora.org> <20180104143716.5b09b1c7@alans-desktop> <93a7bd73-1123-90a7-b22d-02964ba29fb0@codeaurora.org> <999c5499-05c7-4702-77a7-dfb56ba577d2@codeaurora.org> <20180105133609.636b2d1f@alans-desktop> <20180105141504.0e399394@alans-desktop> <1097619b-9e03-cba8-e40e-b0c00a53b84c@codeaurora.org> <46645a5b-b0d4-35b7-95ac-3606ab9c69d2@codeaurora.org> Organization: Intel Corporation X-Mailer: Claws Mail 3.15.1-dirty (GTK+ 2.24.31; x86_64-redhat-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Return-Path: On Sat, 6 Jan 2018 01:54:36 +0530 "Kohli, Gaurav" wrote: > Hi Alan, > > Sorry correcting the typo here: > +retval =  tty_ldisc_lock(tty, 5 * HZ); > +if (retval) > +         goto err_release_lock; > tty->port->itty = tty; > /* > * Structures all installed ... call the ldisc open routines. > * If we fail here just call release_tty to clean up.  No need > * to decrement the use counts, as release_tty doesn't care. > */ > retval = tty_ldisc_setup(tty, tty->link); >         if (retval) >             goto err_release_tty; > tty_ldisc_unlock(tty); > err_release_tty: > tty_info_ratelimited(tty, "ldisc open failed (%d), clearing slot %d\n", >     retval, idx); > +err_release_lock; > +tty_unlock(tty); > +release_tty(tty, idx); > +tty_ldisc_unlock(tty); > +return ERR_PTR(retval); Thanks - can you give that a testing since for some reason you seem to be the only system able to hit this and confirm that it's now working properly. Then I'll push it upstream And thanks for doing all the debug work to find this and identify what was going on. Alan