From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751921AbbK1C0b (ORCPT ); Fri, 27 Nov 2015 21:26:31 -0500 Received: from mail-ig0-f171.google.com ([209.85.213.171]:33699 "EHLO mail-ig0-f171.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750840AbbK1C02 (ORCPT ); Fri, 27 Nov 2015 21:26:28 -0500 From: Peter Hurley To: Greg Kroah-Hartman Cc: Jiri Slaby , linux-kernel@vger.kernel.org, Peter Hurley Subject: [PATCH 00/12] Rework tty_reopen() Date: Fri, 27 Nov 2015 21:25:45 -0500 Message-Id: <1448677557-16420-1-git-send-email-peter@hurleysoftware.com> X-Mailer: git-send-email 2.6.3 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Greg, This patch series implements two important improvements to tty open() behavior: interruptible open() and automatic retry when tty teardown has already commenced. Interruptible open() allows signals to cancel the open wait if stalled waiting for tty teardown to complete. Automatic retry of tty open() when racing a tty teardown now makes tty open() fully POSIX compliant. For some time, the Linux kernel has returned EIO from open() under certain circumstances. This happens when tty_open() observes a valid tty from driver lookup but the tty is being released (in final close) and teardown is about to commence. The observable userspace change is that userspace will no longer need to retry open() on EIO error. This series also continues the ongoing effort to cleanup and reduce the kernel tty interface. Lastly, this series lays important groundwork for implementing ptmx_open() in tty_open(), trivially with driver lookup (still a work-in-progress). Regards, Peter Hurley (12): tty: Fix ldisc leak in failed tty_init_dev() tty: Remove !tty check from free_tty_struct() tty: Fix tty_init_termios() declaration tty: Re-declare tty_driver_remove_tty() file scope pty: Remove pty_unix98_shutdown() tty: Remove __lockfunc annotation from tty lock functions tty: Wait interruptibly for tty lock on reopen pty: Prepare to redefine tty driver remove() interface tty: Re-define tty driver remove() interface tty: Consolidate noctty checks in tty_open() tty: Refactor tty_open() tty: Retry failed reopen if tty teardown in-progress drivers/tty/pty.c | 40 +++------- drivers/tty/tty_io.c | 180 +++++++++++++++++++++---------------------- drivers/tty/tty_ldisc.c | 21 +++-- drivers/tty/tty_mutex.c | 16 +++- drivers/usb/serial/console.c | 6 +- include/linux/tty.h | 19 ++--- include/linux/tty_driver.h | 4 +- 7 files changed, 128 insertions(+), 158 deletions(-) -- 2.6.3