From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753455Ab0LHGYz (ORCPT ); Wed, 8 Dec 2010 01:24:55 -0500 Received: from mail-bw0-f45.google.com ([209.85.214.45]:36955 "EHLO mail-bw0-f45.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753396Ab0LHGYx (ORCPT ); Wed, 8 Dec 2010 01:24:53 -0500 DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=sender:message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:x-enigmail-version:content-type :content-transfer-encoding; b=g3yf4Q+Hjp4Vqi1Q1zmAcLExffz04fVUOsSKwnr1epi1Rh3fun5iTqqHctu/cD172z JC/E5vCVywlN3zL3SPuaMDQt4941IVVynu95Z0GwClJgjDG4zk4P5cdIZtjw0j07Yq3M O9jRTDYXPR18+SvL2FAJG9hf9bA1vDKZZL8n4= Message-ID: <4CFF24AE.1030104@suse.cz> Date: Wed, 08 Dec 2010 07:24:46 +0100 From: Jiri Slaby User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; cs-CZ; rv:1.9.2.12) Gecko/20101026 SUSE/3.1.6 Thunderbird/3.1.6 MIME-Version: 1.0 To: Greg KH CC: linux-kernel@vger.kernel.org, stable@kernel.org, stable-review@kernel.org, torvalds@linux-foundation.org, akpm@linux-foundation.org, alan@lxorguk.ukuu.org.uk, Alan Cox Subject: Re: [043/127] TTY: ldisc, fix open flag handling References: <20101208004428.612566004@clark.site> In-Reply-To: <20101208004428.612566004@clark.site> X-Enigmail-Version: 1.1.2 Content-Type: text/plain; charset=ISO-8859-2 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 12/08/2010 01:43 AM, Greg KH wrote: > 2.6.32-stable review patch. If anyone has any objections, please let us know. > > ------------------ > > From: Jiri Slaby > > commit 7f90cfc505d613f4faf096e0d84ffe99208057d9 upstream. > > When a concrete ldisc open fails in tty_ldisc_open, we forget to clear > TTY_LDISC_OPEN. This causes a false warning on the next ldisc open: > WARNING: at drivers/char/tty_ldisc.c:445 tty_ldisc_open+0x26/0x38() > Hardware name: System Product Name > Modules linked in: ... > Pid: 5251, comm: a.out Tainted: G W 2.6.32-5-686 #1 > Call Trace: > [] ? warn_slowpath_common+0x5e/0x8a > [] ? warn_slowpath_null+0xa/0xc > [] ? tty_ldisc_open+0x26/0x38 > [] ? tty_set_ldisc+0x218/0x304 > ... > > So clear the bit when failing... > > Introduced in c65c9bc3efa (tty: rewrite the ldisc locking) back in > 2.6.31-rc1. > > Signed-off-by: Jiri Slaby > Cc: Alan Cox > Reported-by: Sergey Lapin > Tested-by: Sergey Lapin > Signed-off-by: Greg Kroah-Hartman > > --- > drivers/char/tty_ldisc.c | 9 +++++++-- > 1 file changed, 7 insertions(+), 2 deletions(-) > > --- a/drivers/char/tty_ldisc.c > +++ b/drivers/char/tty_ldisc.c > @@ -444,9 +444,14 @@ static void tty_set_termios_ldisc(struct > > static int tty_ldisc_open(struct tty_struct *tty, struct tty_ldisc *ld) > { > + int ret; > + > WARN_ON(test_and_set_bit(TTY_LDISC_OPEN, &tty->flags)); > - if (ld->ops->open) > - return ld->ops->open(tty); > + if (ld->ops->open) { > + ret = ld->ops->open(tty); > + if (ret) > + clear_bit(TTY_LDISC_OPEN, &tty->flags); > + } > return 0; Whoops, this should write return ret; (with int ret = 0;) Do you want me to send the patch against rebased on .32? thanks, -- js suse labs