1. 12 10月, 2009 1 次提交
  2. 30 9月, 2009 1 次提交
    • L
      pty: reconnect the BSD TIOCSPTLCK handling to legacy ptys · 342a5971
      Linus Torvalds 提交于
      David Howells noticed (due to the compiler warning about an unused
      'pty_ops_bsd' variable) that we haven't actually been using the code
      that implements TIOCSPTLCK for legacy pty handling.  It's been that way
      since 2.6.26, commit 3e8e88ca to be
      exact ("pty: prepare for tty->ops changes").
      
      DavidH initially submitted a patch just removing the dead code entirely,
      and since nobody has apparently ever complained, I'm not entirely sure
      that wouldn't be the right thing to do.  But since the whole and only
      point of the legacy pty code is to be compatible with legacy distros
      that don't use the new unix98 pty model, let's just wire it up again.
      
      And clean it up a bit while we're at it.
      Acked-by: NDavid Howells <dhowells@redhat.com>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      342a5971
  3. 18 9月, 2009 1 次提交
    • L
      pty_write: don't do a tty_wakeup() when the buffers are full · 202c4675
      Linus Torvalds 提交于
      Commit ac89a917 ("pty: don't limit the writes to 'pty_space()' inside
      'pty_write()'") removed the pty_space() checking, in order to let the
      regular tty buffer code limit the buffering itself.
      
      That was all good, but as a subtle side effect it meant that we'd be
      doing a tty_wakeup() even in the case where the buffers were all filled
      up, and didn't actually make any progress on the write.
      
      Which sounds innocuous, but it interacts very badly with the ppp_async
      code, which has an infinite loop in ppp_async_push() that tries to push
      out data to the tty.  When we call tty_wakeup(), that loop ends up
      thinking that progress was made (see the subtle interactions between
      XMIT_WAKEUP and 'tty_stuffed' for details).  End result: one unhappy ppp
      user.
      
      Fixed by noticing when tty_insert_flip_string() didn't actually do
      anything, and then not doing any more processing (including, very much
      not calling tty_wakeup()).
      Bisected-and-tested-by: NPeter Volkov <pva@gentoo.org>
      Cc: stable@kernel.org (2.6.31)
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      202c4675
  4. 06 9月, 2009 1 次提交
  5. 11 8月, 2009 1 次提交
    • L
      pty: fix data loss when stopped (^S/^Q) · 85dfd81d
      Linus Torvalds 提交于
      Commit d945cb9c ("pty: Rework the pty layer to use the normal buffering
      logic") dropped the test for 'tty->stopped' in pty_write_room(), which
      then causes the n_tty line discipline thing to not throttle the data
      properly when the tty is stopped.
      
      So instead of pausing the write due to the tty being stopped, the ldisc
      layer would go ahead and push it down to the pty.  The pty write()
      routine would then refuse to take the data (because it _did_ check
      'stopped'), and the data wouldn't actually be written.
      
      This whole stopped test should eventually be moved into the tty ldisc
      layer rather than have low-level tty drivers care about these things,
      but right now the fix is to just re-instate the missing pty 'stopped'
      handling.
      Reported-and-tested-by: NArtur Skawina <art.08.09@gmail.com>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      85dfd81d
  6. 30 7月, 2009 1 次提交
    • O
      pty: avoid forcing 'low_latency' tty flag · e043e42b
      OGAWA Hirofumi 提交于
      We really don't want to mark the pty as a low-latency device, because as
      Alan points out, the ->write method can be called from an IRQ (ppp?),
      and that means we can't use ->low_latency=1 as we take mutexes in the
      low_latency case.
      
      So rather than using low_latency to force the written data to be pushed
      to the ldisc handling at 'write()' time, just make the reader side (or
      the poll function) do the flush when it checks whether there is data to
      be had.
      
      This also fixes the problem with lost data in an emacs compile buffer
      (bugzilla 13815), and we can thus revert the low_latency pty hack
      (commit 3a542974: "pty: quickfix for the
      pty ENXIO timing problems").
      Signed-off-by: NOGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
      Tested-by: NAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
      [ Modified to do the tty_flush_to_ldisc() inside input_available_p() so
        that it triggers for both read and poll()  - Linus]
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      e043e42b
  7. 28 7月, 2009 1 次提交
  8. 13 7月, 2009 1 次提交
  9. 09 7月, 2009 1 次提交
  10. 17 6月, 2009 2 次提交
  11. 11 6月, 2009 2 次提交
    • A
      tty: rewrite the ldisc locking · c65c9bc3
      Alan Cox 提交于
      There are several pretty much unfixable races in the old ldisc code, especially
      with respect to pty behaviour and also to hangup. It's easier to rewrite the
      code than simply try and patch it up.
      
      This patch
      - splits the ldisc from the tty (so we will be able to refcount it more cleanly
        later)
      - introduces a mutex lock for ldisc changing on an active device
      - fixes the complete mess that hangup caused
      - implements hopefully correct setldisc/close/hangup locking
      
      There are still some problems around pty pairs that have always been there but
      at least it is now possible to understand the code and fix further problems.
      
      This fixes the following known bugs
      - hang up can leak ldisc references
      - hang up may not call open/close on ldisc in a matched way
      - pty/tty pairs can deadlock during an ldisc change
      - reading the ldisc proc files can cause every ldisc to be loaded
      
      and probably a few other of the mysterious ldisc race reports.
      
      I'm sure it also adds the odd new one.
      Signed-off-by: NAlan Cox <alan@linux.intel.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      c65c9bc3
    • A
      pty: Fix a comment · 620df3c0
      Alan Cox 提交于
      We fixed the globals, so now fix the comment
      Signed-off-by: NAlan Cox <alan@linux.intel.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      620df3c0
  12. 13 1月, 2009 1 次提交
  13. 09 1月, 2009 1 次提交
  14. 03 1月, 2009 2 次提交
  15. 14 10月, 2008 11 次提交
  16. 21 7月, 2008 1 次提交
    • A
      tty: Ldisc revamp · a352def2
      Alan Cox 提交于
      Move the line disciplines towards a conventional ->ops arrangement.  For
      the moment the actual 'tty_ldisc' struct in the tty is kept as part of
      the tty struct but this can then be changed if it turns out that when it
      all settles down we want to refcount ldiscs separately to the tty.
      
      Pull the ldisc code out of /proc and put it with our ldisc code.
      Signed-off-by: NAlan Cox <alan@redhat.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      a352def2
  17. 30 4月, 2008 2 次提交
  18. 19 10月, 2007 1 次提交
  19. 13 10月, 2007 1 次提交
  20. 15 2月, 2007 1 次提交
    • T
      [PATCH] remove many unneeded #includes of sched.h · cd354f1a
      Tim Schmielau 提交于
      After Al Viro (finally) succeeded in removing the sched.h #include in module.h
      recently, it makes sense again to remove other superfluous sched.h includes.
      There are quite a lot of files which include it but don't actually need
      anything defined in there.  Presumably these includes were once needed for
      macros that used to live in sched.h, but moved to other header files in the
      course of cleaning it up.
      
      To ease the pain, this time I did not fiddle with any header files and only
      removed #includes from .c-files, which tend to cause less trouble.
      
      Compile tested against 2.6.20-rc2 and 2.6.20-rc2-mm2 (with offsets) on alpha,
      arm, i386, ia64, mips, powerpc, and x86_64 with allnoconfig, defconfig,
      allmodconfig, and allyesconfig as well as a few randconfigs on x86_64 and all
      configs in arch/arm/configs on arm.  I also checked that no new warnings were
      introduced by the patch (actually, some warnings are removed that were emitted
      by unnecessarily included header files).
      Signed-off-by: NTim Schmielau <tim@physik3.uni-rostock.de>
      Acked-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      cd354f1a
  21. 09 12月, 2006 1 次提交
    • A
      [PATCH] tty: switch to ktermios · 606d099c
      Alan Cox 提交于
      This is the grungy swap all the occurrences in the right places patch that
      goes with the updates.  At this point we have the same functionality as
      before (except that sgttyb() returns speeds not zero) and are ready to
      begin turning new stuff on providing nobody reports lots of bugs
      
      If you are a tty driver author converting an out of tree driver the only
      impact should be termios->ktermios name changes for the speed/property
      setting functions from your upper layers.
      
      If you are implementing your own TCGETS function before then your driver
      was broken already and its about to get a whole lot more painful for you so
      please fix it 8)
      
      Also fill in c_ispeed/ospeed on init for most devices, although the current
      code will do this for you anyway but I'd like eventually to lose that extra
      paranoia
      
      [akpm@osdl.org: bluetooth fix]
      [mp3@de.ibm.com: sclp fix]
      [mp3@de.ibm.com: warning fix for tty3270]
      [hugh@veritas.com: fix tty_ioctl powerpc build]
      [jdike@addtoit.com: uml: fix ->set_termios declaration]
      Signed-off-by: NAlan Cox <alan@redhat.com>
      Signed-off-by: NMartin Peschke <mp3@de.ibm.com>
      Acked-by: NPeter Oberparleiter <oberpar@de.ibm.com>
      Cc: Cornelia Huck <cornelia.huck@de.ibm.com>
      Signed-off-by: NHugh Dickins <hugh@veritas.com>
      Signed-off-by: NJeff Dike <jdike@addtoit.com>
      Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      606d099c
  22. 02 10月, 2006 1 次提交
    • J
      [PATCH] const struct tty_operations · b68e31d0
      Jeff Dike 提交于
      As part of an SMP cleanliness pass over UML, I consted a bunch of
      structures in order to not have to document their locking.  One of these
      structures was a struct tty_operations.  In order to const it in UML
      without introducing compiler complaints, the declaration of
      tty_set_operations needs to be changed, and then all of its callers need to
      be fixed.
      
      This patch declares all struct tty_operations in the tree as const.  In all
      cases, they are static and used only as input to tty_set_operations.  As an
      extra check, I ran an i386 allyesconfig build which produced no extra
      warnings.
      
      53 drivers are affected.  I checked the history of a bunch of them, and in
      most cases, there have been only a handful of maintenance changes in the
      last six months.  serial_core.c was the busiest one that I looked at.
      Signed-off-by: NJeff Dike <jdike@addtoit.com>
      Acked-by: NAlan Cox <alan@redhat.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      b68e31d0
  23. 01 7月, 2006 1 次提交
  24. 29 6月, 2006 1 次提交
    • P
      [PATCH] remove TTY_DONT_FLIP · 817d6d3b
      Paul Fulghum 提交于
      Remove TTY_DONT_FLIP tty flag.  This flag was introduced in 2.1.X kernels
      to prevent the N_TTY line discipline functions read_chan() and
      n_tty_receive_buf() from running at the same time.  2.2.15 introduced
      tty->read_lock to protect access to the N_TTY read buffer, which is the
      only state requiring protection between these two functions.
      
      The current TTY_DONT_FLIP implementation is broken for SMP, and is not
      universally honored by drivers that send data directly to the line
      discipline receive_buf function.
      
      Because TTY_DONT_FLIP is not necessary, is broken in implementation, and is
      not universally honored, it is removed.
      Signed-off-by: NPaul Fulghum <paulkf@microgate.com>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Cc: Theodore Ts'o <tytso@mit.edu>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      817d6d3b
  25. 27 6月, 2006 2 次提交