)]}'
{
  "log": [
    {
      "commit": "edc6afc5496875a640bef0913604be7550c1795d",
      "tree": "b05cd34a9a0d71edc9d6d7487ad551f0e15887b8",
      "parents": [
        "be90038a24c814dc98bc5a813f41855779000018"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Fri Dec 08 02:38:44 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:56 2006 -0800"
      },
      "message": "[PATCH] tty: switch to ktermios and new framework\n\nThis is the core of the switch to the new framework.  I\u0027ve split it from the\ndriver patches which are mostly search/replace and would encourage people to\ngive this one a good hard stare.\n\nThe references to BOTHER and ISHIFT are the termios values that must be\ndefined by a platform once it wants to turn on \"new style\" ioctl support.  The\ncode patches here ensure that providing\n\n1. The termios overlays the ktermios in memory\n2. The only new kernel only fields are c_ispeed/c_ospeed (or none)\n\nthe existing behaviour is retained.  This is true for the patches at this\npoint in time.\n\nFuture patches will define BOTHER, ISHIFT and enable newer termios structures\nfor each architecture, and once they are all done some of the ifdefs also\nvanish.\n\n[akpm@osdl.org: warning fix]\n[akpm@osdl.org: IRDA fix]\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "24ec839c431eb79bb8f6abc00c4e1eb3b8c4d517",
      "tree": "2ff478b1925159eeac007913c2a8f19d5f5e6010",
      "parents": [
        "562f9c574e0707f9159a729ea41faf53b221cd30"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Dec 08 02:36:04 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:38 2006 -0800"
      },
      "message": "[PATCH] tty: -\u003esignal-\u003etty locking\n\nFix the locking of signal-\u003etty.\n\nUse -\u003esighand-\u003esiglock to protect -\u003esignal-\u003etty; this lock is already used\nby most other members of -\u003esignal/-\u003esighand.  And unless we are \u0027current\u0027\nor the tasklist_lock is held we need -\u003esiglock to access -\u003esignal anyway.\n\n(NOTE: sys_unshare() is broken wrt -\u003esighand locking rules)\n\nNote that tty_mutex is held over tty destruction, so while holding\ntty_mutex any tty pointer remains valid.  Otherwise the lifetime of ttys\nare governed by their open file handles.  This leaves some holes for tty\naccess from signal-\u003etty (or any other non file related tty access).\n\nIt solves the tty SLAB scribbles we were seeing.\n\n(NOTE: the change from group_send_sig_info to __group_send_sig_info needs to\n       be examined by someone familiar with the security framework, I think\n       it is safe given the SEND_SIG_PRIV from other __group_send_sig_info\n       invocations)\n\n[schwidefsky@de.ibm.com: 3270 fix]\n[akpm@osdl.org: various post-viro fixes]\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Alan Cox \u003calan@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Prarit Bhargava \u003cprarit@redhat.com\u003e\nCc: Chris Wright \u003cchrisw@sous-sol.org\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Jan Kara \u003cjack@ucw.cz\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4c1ac1b49122b805adfa4efc620592f68dccf5db",
      "tree": "87557f4bc2fd4fe65b7570489c2f610c45c0adcd",
      "parents": [
        "c4028958b6ecad064b1a6303a6a5906d4fe48d73",
        "d916faace3efc0bf19fe9a615a1ab8fa1a24cd93"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Dec 05 14:37:56 2006 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@warthog.cambridge.redhat.com",
        "time": "Tue Dec 05 14:37:56 2006 +0000"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6\n\nConflicts:\n\n\tdrivers/infiniband/core/iwcm.c\n\tdrivers/net/chelsio/cxgb2.c\n\tdrivers/net/wireless/bcm43xx/bcm43xx_main.c\n\tdrivers/net/wireless/prism54/islpci_eth.c\n\tdrivers/usb/core/hub.h\n\tdrivers/usb/input/hid-core.c\n\tnet/core/netpoll.c\n\nFix up merge failures with Linus\u0027s head and fix new compilation failures.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "01107d343076c34b9e1ce5d073292bd7f3097fda",
      "tree": "075dcadaff7c124022157c8ee819550cd1023440",
      "parents": [
        "94fbcded4ea0dc14cbfb222a5c68372f150d1476"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Aug 07 22:19:37 2006 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Dec 01 14:51:59 2006 -0800"
      },
      "message": "Driver core: convert tty core to use struct device\n\nConverts from using struct \"class_device\" to \"struct device\" making\neverything show up properly in /sys/devices/ with symlinks from the\n/sys/class directory.\n\nAlso fixes up the isdn drivers that were putting something in the class\ndevice\u0027s directory.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "52bad64d95bd89e08c49ec5a071fa6dcbe5a1a9c",
      "tree": "5849b4e3c17daa70a7e81cfdeaddac9ac8a0e953",
      "parents": [
        "0f9005a6f7a82f4aacbd72f7b92322a8ca1c3f97"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Nov 22 14:54:01 2006 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Nov 22 14:54:01 2006 +0000"
      },
      "message": "WorkStruct: Separate delayable and non-delayable events.\n\nSeparate delayable work items from non-delayable work items be splitting them\ninto a separate structure (delayed_work), which incorporates a work_struct and\nthe timer_list removed from work_struct.\n\nThe work_struct struct is huge, and this limits it\u0027s usefulness.  On a 64-bit\narchitecture it\u0027s nearly 100 bytes in size.  This reduces that by half for the\nnon-delayable type of event.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "07f3f05c1e3052b8656129b2a5aca9f888241a34",
      "tree": "3338b004d518a0d2189efdc3fb88e94e1c02c0ce",
      "parents": [
        "65e6f5bc8149165efb9d7bdbd142bb837d5edfeb"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Sat Sep 30 20:52:18 2006 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Sat Sep 30 20:52:18 2006 +0200"
      },
      "message": "[PATCH] BLOCK: Move extern declarations out of fs/*.c into header files [try #6]\n\nCreate a new header file, fs/internal.h, for common definitions local to the\nsources in the fs/ directory.\n\nMove extern definitions that should be in header files from fs/*.c to\nfs/internal.h or other main header files where they span directories.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "5785c95baede8459d70c4aa0f7becb6e8b5fde4b",
      "tree": "17744eac694b4eab81cba4db28c4e083d779b753",
      "parents": [
        "54306cf04c0ea0a8c432603dbc657ab62a438668"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Fri Sep 29 02:00:43 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:16 2006 -0700"
      },
      "message": "[PATCH] tty: make termios_sem a mutex\n\n[akpm@osdl.org: fix]\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "402749ea2538be9ddad981a990739b93a0178bc6",
      "tree": "71a611f825f956f6cc43906b100fb09635dbdcf1",
      "parents": [
        "2e0c1f6ce7b816f63fea2af3e5e2cb20c66430e9"
      ],
      "author": {
        "name": "Matthias Urlichs",
        "email": "smurf@smurf.noris.de",
        "time": "Fri Sep 29 01:59:37 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:09 2006 -0700"
      },
      "message": "[PATCH] Remove unused tty_struct field\n\nUnused: tty_struct.max_flip_cnt\n\n$ git grep max_flip_cnt\ninclude/linux/tty.h:    int max_flip_cnt;\n$\n\nCc: Paul Fulghum \u003cpaulkf@microgate.com\u003e\nAcked-by: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "01da5fd83d6b2c5e36b77539f6cbdd8f49849225",
      "tree": "70c1f1cb8325fe4801b952346bd2ef79d08882b5",
      "parents": [
        "af9b897ee639d96b2bd29b65b50cd0a1f2b6d6c9"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Sun Aug 27 01:24:02 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Aug 27 11:01:34 2006 -0700"
      },
      "message": "[PATCH] Fix tty layer DoS and comment relevant code\n\nUnlike the other tty comment patch this one has code changes.  Specifically\nit limits the queue size for a tty to 64K characters (128Kbytes) worst case\neven if the tty is ignoring tty-\u003ethrottle.  This is because certain drivers\ndon\u0027t honour the throttle value correctly, although it is a useful\nsafeguard anyway.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "894673ee6122a3ce1958e1fe096901ba5356a96b",
      "tree": "2fe842e63046ead098c5c61c0938ad8128934412",
      "parents": [
        "a8f340e394ff30b79ab5b03c67ab4c94b2ac3646"
      ],
      "author": {
        "name": "Jon Smirl",
        "email": "jonsmir@gmail.com",
        "time": "Mon Jul 10 04:44:13 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 10 13:24:16 2006 -0700"
      },
      "message": "[PATCH] tty: Remove include of screen_info.h from tty.h\n\nscreen_info.h doesn\u0027t have anything to do with the tty layer and shouldn\u0027t be\nincluded by tty.h.  This patches removes the include and modifies all users to\ndirectly include screen_info.h.  struct screen_info is mainly used to\ncommunicate with the console drivers in drivers/video/console.  Note that this\npatch touches every arch and I have no way of testing it.  If there is a\nmistake the worst thing that will happen is a compile error.\n\n[akpm@osdl.org: fix arm build]\n[akpm@osdl.org: fix alpha build]\nSigned-off-by: Jon Smirl \u003cjonsmir@gmail.com\u003e\nSigned-off-by: Antonino Daplas \u003cadaplas@pol.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a8f340e394ff30b79ab5b03c67ab4c94b2ac3646",
      "tree": "54bb79dba4f3943e893bacd1efe7b265d7f86aaa",
      "parents": [
        "67eb5db5874076db01febed5a1a9281628fa9fb4"
      ],
      "author": {
        "name": "Jon Smirl",
        "email": "jonsmir@gmail.com",
        "time": "Mon Jul 10 04:44:12 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 10 13:24:16 2006 -0700"
      },
      "message": "[PATCH] vt: Remove VT-specific declarations and definitions from tty.h\n\nMAX_NR_CONSOLES, fg_console, want_console and last_console are more of a\nfunction of the VT layer than the TTY one.  Moving these to vt.h and vt_kern.h\nallows all of the framebuffer and VT console drivers to remove their\ndependency on tty.h.\n\n[akpm@osdl.org: fix alpha build]\nSigned-off-by: Jon Smirl \u003cjonsmir@gmail.com\u003e\nSigned-off-by: Antonino Daplas \u003cadaplas@pol.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "33b37a33c242542fac2980b8ccd90977388b7a8d",
      "tree": "e3a18605e57e1d1268dd04e9a3e5276f7f0488fe",
      "parents": [
        "2c3bb20f46709a0adfa7ea408013edbcab945d5a"
      ],
      "author": {
        "name": "Paul Fulghum",
        "email": "paulkf@microgate.com",
        "time": "Wed Jun 28 04:26:49 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jun 28 14:59:05 2006 -0700"
      },
      "message": "[PATCH] remove active field from tty buffer structure\n\nRemove \u0027active\u0027 field from tty buffer structure.  This was added in 2.6.16\nas part of a patch to make the new tty buffering SMP safe.  This field is\nunnecessary with the more intelligently written flush_to_ldisc that adds\nreceive_room handling.\n\nRemoving this field reverts to simpler logic where the tail buffer is\nalways the \u0027active\u0027 buffer, which should not be freed by flush_to_ldisc.\n(active \u003d\u003d buffer being filled with new data)\n\nThe result is simpler, smaller, and faster tty buffer code.\n\nSigned-off-by: Paul Fulghum \u003cpaulkf@microgate.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "817d6d3bceaf34c99f5343820f9b9e6021f0655c",
      "tree": "651104833124262db46c2a372b7adb55289cd8dd",
      "parents": [
        "e0ac4761fa52acda90f9f53819c81474b511e3af"
      ],
      "author": {
        "name": "Paul Fulghum",
        "email": "paulkf@microgate.com",
        "time": "Wed Jun 28 04:26:47 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jun 28 14:59:05 2006 -0700"
      },
      "message": "[PATCH] remove TTY_DONT_FLIP\n\nRemove TTY_DONT_FLIP tty flag.  This flag was introduced in 2.1.X kernels\nto prevent the N_TTY line discipline functions read_chan() and\nn_tty_receive_buf() from running at the same time.  2.2.15 introduced\ntty-\u003eread_lock to protect access to the N_TTY read buffer, which is the\nonly state requiring protection between these two functions.\n\nThe current TTY_DONT_FLIP implementation is broken for SMP, and is not\nuniversally honored by drivers that send data directly to the line\ndiscipline receive_buf function.\n\nBecause TTY_DONT_FLIP is not necessary, is broken in implementation, and is\nnot universally honored, it is removed.\n\nSigned-off-by: Paul Fulghum \u003cpaulkf@microgate.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1cdcb6b43fda7424b7435dac8f80b2b5d8a48899",
      "tree": "3090342c60b9b8f0f8144f67962d3cb3ce2a9207",
      "parents": [
        "53877d06d53a412d901bb323f080296c363d8b51"
      ],
      "author": {
        "name": "Hansjoerg Lipp",
        "email": "hjlipp@web.de",
        "time": "Sat Apr 22 18:36:53 2006 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jun 21 12:40:47 2006 -0700"
      },
      "message": "[PATCH] TTY: return class device pointer from tty_register_device()\n\nLet tty_register_device() return a pointer to the class device it creates.\nThis allows registrants to add their own sysfs files under the class\ndevice node.\n\nSigned-off-by: Hansjoerg Lipp \u003chjlipp@web.de\u003e\nSigned-off-by: Tilman Schmidt \u003ctilman@imap.cc\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "62c4f0a2d5a188f73a94f2cb8ea0dba3e7cf0a7f",
      "tree": "e85ca2d0dd43f90dccf758338764c3caa55f333f",
      "parents": [
        "089f26d5e31b7bf42a9a8fefec08b30cd27f4b0e"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed Apr 26 12:56:16 2006 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed Apr 26 12:56:16 2006 +0100"
      },
      "message": "Don\u0027t include linux/config.h from anywhere else in include/\n\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\n"
    },
    {
      "commit": "70522e121a521aa09bd0f4e62e1aa68708b798e1",
      "tree": "1233412da73361b48ed01290a33ab7c90e36359a",
      "parents": [
        "d4f9af9dac4ecb75818f909168f87b441cc95653"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 23 03:00:31 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 23 07:38:11 2006 -0800"
      },
      "message": "[PATCH] sem2mutex: tty\n\nSemaphore to mutex conversion.\n\nThe conversion was generated via scripts, and the result was validated\nautomatically via a script as well.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8977d929e49021d9a6e031310aab01fa72f849c2",
      "tree": "13697e607b1153666139114242964f9982acc328",
      "parents": [
        "f0188f47482efdbd2e005103bb4f0224a835dfad"
      ],
      "author": {
        "name": "Paul Fulghum",
        "email": "paulkf@microgate.com",
        "time": "Fri Feb 10 01:51:14 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Feb 10 08:13:12 2006 -0800"
      },
      "message": "[PATCH] tty buffering stall fix\n\nPrevent stalled processing of received data when a driver allocates tty\nbuffer space but does not immediately follow the allocation with more data\nand a call to schedule receive tty processing.  (example: hvc_console) This\nbug was introduced by the first locking patch for the new tty buffering.\n\nSigned-off-by: Paul Fulghum \u003cpaulkf@microgate.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "808249ceba49cdb3054c0aa5b75a61862d6cab94",
      "tree": "246d11a687db3e8a775e746ed8f0da1aeedae70c",
      "parents": [
        "546cfdf47f2ea2438b01f8626a60b87f9d8d1e53"
      ],
      "author": {
        "name": "Paul Fulghum",
        "email": "paulkf@microgate.com",
        "time": "Fri Feb 03 03:04:41 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Feb 03 08:32:09 2006 -0800"
      },
      "message": "[PATCH] new tty buffering locking fix\n\nChange locking in the new tty buffering facility from using tty-\u003eread_lock,\nwhich is currently ignored by drivers and thus ineffective.  New locking\nuses a new tty buffering specific lock enforced centrally in the tty\nbuffering code.\n\nTwo drivers (esp and cyclades) are updated to use the tty buffering\nfunctions instead of accessing tty buffering internals directly.  This is\nrequired for the new locking to work.\n\nMinor checks for NULL buffers added to\ntty_prepare_flip_string/tty_prepare_flip_string_flags\n\nSigned-off-by: Paul Fulghum \u003cpaulkf@microgate.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "33f0f88f1c51ae5c2d593d26960c760ea154c2e2",
      "tree": "f53a38cf49406863f079d74d0e8f91b276f7c1a9",
      "parents": [
        "6ed80991a2dce4afc113be35089c564d62fa1f11"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Mon Jan 09 20:54:13 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jan 10 08:01:59 2006 -0800"
      },
      "message": "[PATCH] TTY layer buffering revamp\n\nThe API and code have been through various bits of initial review by\nserial driver people but they definitely need to live somewhere for a\nwhile so the unconverted drivers can get knocked into shape, existing\ndrivers that have been updated can be better tuned and bugs whacked out.\n\nThis replaces the tty flip buffers with kmalloc objects in rings. In the\nnormal situation for an IRQ driven serial port at typical speeds the\nbehaviour is pretty much the same, two buffers end up allocated and the\nkernel cycles between them as before.\n\nWhen there are delays or at high speed we now behave far better as the\nbuffer pool can grow a bit rather than lose characters. This also means\nthat we can operate at higher speeds reliably.\n\nFor drivers that receive characters in blocks (DMA based, USB and\nespecially virtualisation) the layer allows a lot of driver specific\ncode that works around the tty layer with private secondary queues to be\nremoved. The IBM folks need this sort of layer, the smart serial port\npeople do, the virtualisers do (because a virtualised tty typically\noperates at infinite speed rather than emulating 9600 baud).\n\nFinally many drivers had invalid and unsafe attempts to avoid buffer\noverflows by directly invoking tty methods extracted out of the innards\nof work queue structs. These are no longer needed and all go away. That\nfixes various random hangs with serial ports on overflow.\n\nThe other change in here is to optimise the receive_room path that is\nused by some callers. It turns out that only one ldisc uses receive room\nexcept asa constant and it updates it far far less than the value is\nread. We thus make it a variable not a function call.\n\nI expect the code to contain bugs due to the size alone but I\u0027ll be\nwatching and squashing them and feeding out new patches as it goes.\n\nBecause the buffers now dynamically expand you should only run out of\nbuffering when the kernel runs out of memory for real.  That means a lot of\nthe horrible hacks high performance drivers used to do just aren\u0027t needed any\nmore.\n\nDescription:\n\ntty_insert_flip_char is an old API and continues to work as before, as does\ntty_flip_buffer_push() [this is why many drivers dont need modification].  It\ndoes now also return the number of chars inserted\n\nThere are also\n\ntty_buffer_request_room(tty, len)\n\nwhich asks for a buffer block of the length requested and returns the space\nfound.  This improves efficiency with hardware that knows how much to\ntransfer.\n\nand tty_insert_flip_string_flags(tty, str, flags, len)\n\nto insert a string of characters and flags\n\nFor a smart interface the usual code is\n\n    len \u003d tty_request_buffer_room(tty, amount_hardware_says);\n    tty_insert_flip_string(tty, buffer_from_card, len);\n\nMore description!\n\nAt the moment tty buffers are attached directly to the tty.  This is causing a\nlot of the problems related to tty layer locking, also problems at high speed\nand also with bursty data (such as occurs in virtualised environments)\n\nI\u0027m working on ripping out the flip buffers and replacing them with a pool of\ndynamically allocated buffers.  This allows both for old style \"byte I/O\"\ndevices and also helps virtualisation and smart devices where large blocks of\ndata suddenely materialise and need storing.\n\nSo far so good.  Lots of drivers reference tty-\u003eflip.*.  Several of them also\ncall directly and unsafely into function pointers it provides.  This will all\nbreak.  Most drivers can use tty_insert_flip_char which can be kept as an API\nbut others need more.\n\nAt the moment I\u0027ve added the following interfaces, if people think more will\nbe needed now is a good time to say\n\n int tty_buffer_request_room(tty, size)\n\nTry and ensure at least size bytes are available, returns actual room (may be\nzero).  At the moment it just uses the flipbuf space but that will change.\nRepeated calls without characters being added are not cumulative.  (ie if you\ncall it with 1, 1, 1, and then 4 you\u0027ll have four characters of space.  The\nother functions will also try and grow buffers in future but this will be a\nmore efficient way when you know block sizes.\n\n int tty_insert_flip_char(tty, ch, flag)\n\nAs before insert a character if there is room.  Now returns 1 for success, 0\nfor failure.\n\n int tty_insert_flip_string(tty, str, len)\n\nInsert a block of non error characters.  Returns the number inserted.\n\n int tty_prepare_flip_string(tty, strptr, len)\n\nAdjust the buffer to allow len characters to be added.  Returns a buffer\npointer in strptr and the length available.  This allows for hardware that\nneeds to use functions like insl or mencpy_fromio.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nCc: Paul Fulghum \u003cpaulkf@microgate.com\u003e\nSigned-off-by: Hirokazu Takata \u003ctakata@linux-m32r.org\u003e\nSigned-off-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Jeff Dike \u003cjdike@addtoit.com\u003e\nSigned-off-by: John Hawkes \u003chawkes@sgi.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7e7f358c8f8f836c504faa293fda0c1c0733b63c",
      "tree": "b06ef1742fe9e5533f754b46cb0e0e56ee619b0a",
      "parents": [
        "389cd6ec086e9b5421fe479d14d20a1faf74848d"
      ],
      "author": {
        "name": "Brian Gerst",
        "email": "bgerst@didntduck.org",
        "time": "Sun Jan 08 01:04:54 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:14:05 2006 -0800"
      },
      "message": "[PATCH] Split out screen_info from tty.h\n\nThis makes it possible for boot code to use screen_info without dragging in\nall of tty.h.\n\nSigned-off-by: Brian Gerst \u003cbgerst@didntduck.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d2d58384fc5d4c0fe2d8e34bc2d15a90a9bb372a",
      "tree": "6b28b34161e7ca2db38014b473690e9c9954779a",
      "parents": [
        "7726e9e10fc6e026ed2dc00e48f4a3ffc1254ad2"
      ],
      "author": {
        "name": "Antonino A. Daplas",
        "email": "adaplas@gmail.com",
        "time": "Fri Sep 09 13:04:31 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 13:57:58 2005 -0700"
      },
      "message": "[PATCH] vesafb: Add blanking support\n\nAdd rudimentary support by manipulating the VGA registers.  However, not\nall vesa modes are VGA compatible, so VGA compatiblity is checked first.\nOnly 2 levels are supported, powerup and powerdown.\n\nSigned-off-by: Antonino Daplas \u003cadaplas@pol.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bfb07599da289881d3bcbb601a110e997fc7444b",
      "tree": "601c5e683c87e103de37bd68f014ec1f57d09bc7",
      "parents": [
        "790a19cd5711133f40daad7c55bf148de2b1d12c"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Jun 23 00:10:32 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:35 2005 -0700"
      },
      "message": "[PATCH] Introduce tty_unregister_ldisc()\n\nIt\u0027s a bit strange to see tty_register_ldisc call in modules\u0027 exit\nfunctions.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
