)]}'
{
  "log": [
    {
      "commit": "a99bbaf5ee6bad1aca0c88ea65ec6e5373e86184",
      "tree": "2b0314d68b9e0a76e8f4fb60865a1d56e138833a",
      "parents": [
        "5e5027bd26ed4df735d29e66cd5c1c9b5959a587"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sun Oct 04 16:11:37 2009 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 04 15:05:10 2009 -0700"
      },
      "message": "headers: remove sched.h from poll.h\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5ae87e79ecb5baa65e9cf48be874098fafad0668",
      "tree": "47dceb61ead03159e93ca998a6f88777474db4f3",
      "parents": [
        "f58f2fa9286db0ce9124ca9986d56aa5420b7f59"
      ],
      "author": {
        "name": "Guillaume Knispel",
        "email": "gknispel@proformatique.com",
        "time": "Tue Sep 22 16:43:30 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:27 2009 -0700"
      },
      "message": "poll/select: avoid arithmetic overflow in __estimate_accuracy()\n\n__estimate_accuracy() was prone to integer overflow, for example if *tv \u003d\u003d\n{2147, 483648000} on a 32 bit computer (or even for delays as small as\n{429, 500000000} if the task is niced).\n\nBecause the result was already forced between 0 and 100ms, the effect of\nthe overflow was not too problematic, but the use of the hrtimer range\nfeature was not optimal in overflow cases.\n\nThis patch ensures that there can not be an integer overflow in this\nfunction.\n\nSigned-off-by: Guillaume Knispel \u003cgknispel@proformatique.com\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b2add73dbf93fd50f00564d7abc3e2b9aa9dd20c",
      "tree": "c9da78bdbdcfb29d5fc1ac3a967d75911fc5d6b4",
      "parents": [
        "5d12dc1fd6b0ba31d3166e42ed01996df6dad34e"
      ],
      "author": {
        "name": "Guillaume Knispel",
        "email": "gknispel@proformatique.com",
        "time": "Sat Aug 15 19:30:24 2009 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 15 18:40:11 2009 -0700"
      },
      "message": "poll/select: initialize triggered field of struct poll_wqueues\n\nThe triggered field of struct poll_wqueues introduced in commit\n5f820f648c92a5ecc771a96b3c29aa6e90013bba (\"poll: allow f_op-\u003epoll to\nsleep\").\n\nIt was first set to 1 in pollwake() (now __pollwake() ), tested and\nlater set to 0 in poll_schedule_timeout(), but not initialized before.\n\nAs a result when the process needs to sleep, triggered was likely to be\nnon-zero even if pollwake() is not called before the first\npoll_schedule_timeout(), meaning schedule_hrtimeout_range() would not be\ncalled and an extra loop calling all -\u003epoll() would be done.\n\nThis patch initialize triggered to 0 in poll_initwait() so the -\u003epoll()\nare not called twice before the process goes to sleep when it needs to.\n\nSigned-off-by: Guillaume Knispel \u003cgknispel@proformatique.com\u003e\nAcked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4938d7e0233a455f04507bac81d0886c71529537",
      "tree": "6e0c6f0e8623ef44270890519f08b98e9db8afee",
      "parents": [
        "02d5341ae53d32681241b27a40397475caef1c83"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Tue Jun 16 15:33:36 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:48 2009 -0700"
      },
      "message": "poll: avoid extra wakeups in select/poll\n\nAfter introduction of keyed wakeups Davide Libenzi did on epoll, we are\nable to avoid spurious wakeups in poll()/select() code too.\n\nFor example, typical use of poll()/select() is to wait for incoming\nnetwork frames on many sockets.  But TX completion for UDP/TCP frames call\nsock_wfree() which in turn schedules thread.\n\nWhen scheduled, thread does a full scan of all polled fds and can sleep\nagain, because nothing is really available.  If number of fds is large,\nthis cause significant load.\n\nThis patch makes select()/poll() aware of keyed wakeups and useless\nwakeups are avoided.  This reduces number of context switches by about 50%\non some setups, and work performed by sofirq handlers.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Andi Kleen \u003cak@linux.intel.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d4e82042c4cfa87a7d51710b71f568fe80132551",
      "tree": "202c311b52f4e4db9fbbbd80607744e2aa2e5885",
      "parents": [
        "836f92adf121f806e9beb5b6b88bd5c9c4ea3f24"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 14 14:14:34 2009 +0100"
      },
      "committer": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 14 14:15:31 2009 +0100"
      },
      "message": "[CVE-2009-0029] System call wrappers part 32\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\n"
    },
    {
      "commit": "5a8a82b1d306a325d899b67715618413657efda4",
      "tree": "ac599eb041a3cdcbbb3ba0a67ff2f14e251371f5",
      "parents": [
        "3e0fa65f8ba4fd24b3dcfaf14d5b15eaab0fdc61"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 14 14:14:25 2009 +0100"
      },
      "committer": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 14 14:15:28 2009 +0100"
      },
      "message": "[CVE-2009-0029] System call wrappers part 23\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\n"
    },
    {
      "commit": "c9da9f2129d6a421c32e334a83770a9e67f7feac",
      "tree": "389d3392e5d0508ce772c30a88006194baa1c5a6",
      "parents": [
        "1134723e96f6e2abcf8bfd7a2d1c96fcc323ef35"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 14 14:13:57 2009 +0100"
      },
      "committer": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 14 14:15:16 2009 +0100"
      },
      "message": "[CVE-2009-0029] Make sys_pselect7 static\n\nNot a single architecture has wired up sys_pselect7 plus it is the\nonly system call with seven parameters. Just make it static and\nrename it to do_pselect which will do the work for sys_pselect6.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\n"
    },
    {
      "commit": "62568510b8e2679cbc331d7de10ea9ba81ae8b3d",
      "tree": "6a0d4d7b6d50737c1bfcf93a74ad46855c244dc9",
      "parents": [
        "125c97d8a59888c5678734c2b70cbd08c847bd99"
      ],
      "author": {
        "name": "Bernd Schmidt",
        "email": "bernds_cb1@t-online.de",
        "time": "Tue Jan 13 22:14:48 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 13 14:45:17 2009 -0800"
      },
      "message": "Fix timeouts in sys_pselect7\n\nSince we (Analog Devices) updated our Blackfin kernel to 2.6.28, we\u0027ve\nseen occasional 5-second hangs from telnet.  telnetd calls select with a\nNULL timeout, but with the new kernel, the system call occasionally\nreturns 0, which causes telnet to call sleep (5).  This did not happen\nwith earlier kernels.\n\nThe code in sys_pselect7 looks a bit strange, in particular the variable\n\"to\" is initialized to NULL, then changed if a non-null timeout was\npassed in, but not used further.  It needs to be passed to\ncore_sys_select instead of \u0026end_time.\n\nThis bug was introduced by 8ff3e8e85fa6c312051134b3953e397feb639f51\n(\"select: switch select() and poll() over to hrtimers\").\n\nSigned-off-by: Bernd Schmidt \u003cbernd.schmidt@analog.com\u003e\nReviewed-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nTested-by: Robin Getz \u003crgetz@blackfin.uclinux.org\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5f820f648c92a5ecc771a96b3c29aa6e90013bba",
      "tree": "0445b45fa33072d37b32c6ef592a4d0c102e05cc",
      "parents": [
        "67ec7d3ab779ad9001ef57a6b4cfdf80ac9f9acc"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Jan 06 14:40:59 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:12 2009 -0800"
      },
      "message": "poll: allow f_op-\u003epoll to sleep\n\nf_op-\u003epoll is the only vfs operation which is not allowed to sleep.  It\u0027s\nbecause poll and select implementation used task state to synchronize\nagainst wake ups, which doesn\u0027t have to be the case anymore as wait/wake\ninterface can now use custom wake up functions.  The non-sleep restriction\ncan be a bit tricky because -\u003epoll is not called from an atomic context\nand the result of accidentally sleeping in -\u003epoll only shows up as\ntemporary busy looping when the timing is right or rather wrong.\n\nThis patch converts poll/select to use custom wake up function and use\nseparate triggered variable to synchronize against wake up events.  The\nonly added overhead is an extra function call during wake up and\nnegligible.\n\nThis patch removes the one non-sleep exception from vfs locking rules and\nis beneficial to userland filesystem implementations like FUSE, 9p or\npeculiar fs like spufs as it\u0027s very difficult for those to implement\nnon-sleeping poll method.\n\nWhile at it, make the following cosmetic changes to make poll.h and\nselect.c checkpatch friendly.\n\n* s/type * symbol/type *symbol/\t\t   : three places in poll.h\n* remove blank line before EXPORT_SYMBOL() : two places in select.c\n\nOleg: spotted missing barrier in poll_schedule_timeout()\nDavide: spotted missing write barrier in pollwake()\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Eric Van Hensbergen \u003cericvh@gmail.com\u003e\nCc: Ron Minnich \u003crminnich@sandia.gov\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Brad Boyer \u003cflar@allandria.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Mauro Carvalho Chehab \u003cmchehab@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4d36a9e65d4966b433b2f3424d9457468bc80e00",
      "tree": "8c7b8e64ae40769a3f9f948491987ba93698ee3a",
      "parents": [
        "44a504c405ae5c3a80e71acf71d6b1cb0db70715"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Sat Oct 25 12:41:41 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 26 11:22:08 2008 -0700"
      },
      "message": "select: deal with math overflow from borderline valid userland data\n\nSome userland apps seem to pass in a \"0\" for the seconds, and several\nseconds worth of usecs to select().  The old kernels accepted this just\nfine, so the new kernels must too.\n\nHowever, due to the upscaling of the microseconds to nanoseconds we had\nsome cases where we got math overflow, and depending on the GCC version\n(due to inlining decisions) that actually resulted in an -EINVAL return.\n\nThis patch fixes this by adding the excess microseconds to the seconds\nfield.\n\nAlso with thanks to Marcin Slusarz for spotting some implementation bugs\nin the diagnostics patches.\n\nReported-by: Carlos R. Mafra \u003ccrmafra2@gmail.com\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "96d2ab484e7a9bafdab44b8c7d1ef5944319b18c",
      "tree": "3938e40a4b70295d7318d6b14777d0f02004438d",
      "parents": [
        "704af52bd13a5d9f3c60c496c68e752fafdfb434"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Sun Sep 07 16:08:55 2008 -0700"
      },
      "committer": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Sun Sep 07 16:11:04 2008 -0700"
      },
      "message": "hrtimer: fix signed/unsigned bug in slack estimator\n\nthe slack estimator used unsigned math; however for very short delay it\u0027s\npossible that by the time you calculate the timeout, it\u0027s already passed and\nyou get a negative time/slack... in an unsigned variable... which then gets\nturned into a 100 msec delay rather than zero.\n\nThis patch fixes this by using a signed typee in the right places.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\n"
    },
    {
      "commit": "4ce105d30e08fb8a1783c55a0e48aa3fa200c455",
      "tree": "1bfc0b3d4f987e69b16cb35dfc3dedf9ab288b1b",
      "parents": [
        "da8f2e170ea94cc20f8ebbc8ee8d127edb8f12f1"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Sun Sep 07 15:31:39 2008 -0700"
      },
      "committer": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Sun Sep 07 15:31:39 2008 -0700"
      },
      "message": "hrtimer: incorporate feedback from Peter Zijlstra\n\n(based on  lkml review)\n* use rt_task()\n* task_nice() has a sign\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\n"
    },
    {
      "commit": "90d6e24a3686325edea7748b966e138c9923017d",
      "tree": "a4f9be5afb453ca29686325fd85eb6dbe28a86cd",
      "parents": [
        "6976675d94042fbd446231d1bd8b7de71a980ada"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Mon Sep 01 15:55:35 2008 -0700"
      },
      "committer": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Fri Sep 05 21:36:27 2008 -0700"
      },
      "message": "hrtimer: make select() and poll() use the hrtimer range feature\n\nThis patch makes the select() and poll() hrtimers use the new range\nfeature and settings from the task struct.\n\nIn addition, this includes the estimate_accuracy() function that Linus\nposted to lkml, but changed entirely based on other peoples lkml feedback.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\n"
    },
    {
      "commit": "8ff3e8e85fa6c312051134b3953e397feb639f51",
      "tree": "526886377ca92a62f030c25bc8f91f13a6f991eb",
      "parents": [
        "be5dad20a55e054a35dac7f6f5f184dc72b379b4"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Sun Aug 31 08:26:40 2008 -0700"
      },
      "committer": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Fri Sep 05 21:35:03 2008 -0700"
      },
      "message": "select: switch select() and poll() over to hrtimers\n\nWith lots of help, input and cleanups from Thomas Gleixner\n\nThis patch switches select() and poll() over to hrtimers.\n\nThe core of the patch is replacing the \"s64 timeout\" with a\n\"struct timespec end_time\" in all the plumbing.\n\nBut most of the diffstat comes from using the just introduced helpers:\n\tpoll_select_set_timeout\n\tpoll_select_copy_remaining\n\ttimespec_add_safe\nwhich make manipulating the timespec easier and less error-prone.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "b773ad40aca5bd755ba886620842f16e8fef6d75",
      "tree": "7065661f6559aff70244f2805ced48f894c9b38c",
      "parents": [
        "df0cc0539b4127bd02f64de2c335b4af1fdb3845"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sun Aug 31 08:16:57 2008 -0700"
      },
      "committer": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Fri Sep 05 21:34:59 2008 -0700"
      },
      "message": "select: add poll_select_set_timeout() and poll_select_copy_remaining() helpers\n\nThis patch adds 2 helpers that will be used for the hrtimer based select/poll:\n\npoll_select_set_timeout() is a helper that takes a timeout (as a second, nanosecond\npair) and turns that into a \"struct timespec\" that represents the absolute end time.\nThis is a common operation in the many select() and poll() variants and needs various,\ncommon, sanity checks.\n\npoll_select_copy_remaining() is a helper that takes care of copying the remaining\ntime to userspace, as select(), pselect() and ppoll() do. This function comes in\nboth a natural and a compat implementation (due to datastructure differences).\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\n"
    },
    {
      "commit": "55d8538498f62ec72b5ba67aa386c7726f630475",
      "tree": "15ebcc7a51fdf1ff2bf76ade337a637c0990055d",
      "parents": [
        "481c5346d0981940ee63037eb53e4e37b0735c10"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 22 12:23:15 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 22 12:23:15 2008 -0700"
      },
      "message": "Fix performance regression on lmbench select benchmark\n\nChristian Borntraeger reported that reinstating cond_resched() with\nCONFIG_PREEMPT caused a performance regression on lmbench:\n\n\tFor example select file 500:\n\t23 microseconds\n\t32 microseconds\n\nand that\u0027s really because we totally unnecessarily do the cond_resched()\nin the innermost loop of select(), which is just silly.\n\nThis moves it out from the innermost loop (which only ever loops ove the\nbits in a single \"unsigned long\" anyway), which makes the performance\nregression go away.\n\nReported-and-tested-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9f3acc3140444a900ab280de942291959f0f615d",
      "tree": "0d7f3f9698071ff90fb9a127a4c6e86e1c37c945",
      "parents": [
        "a2dcb44c3c5a8151d2d9f6ac8ad0789efcdbe184"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Apr 24 07:44:08 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 01 13:08:16 2008 -0400"
      },
      "message": "[PATCH] split linux/file.h\n\nInitial splitoff of the low-level stuff; taken to fdtable.h\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a2dcb44c3c5a8151d2d9f6ac8ad0789efcdbe184",
      "tree": "8711fc210dc58372a859e6a6cf78dc638d768600",
      "parents": [
        "bf7da7bcfb38409b4cdea34b0905bdf344f1b36d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Apr 23 14:05:15 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 01 13:07:28 2008 -0400"
      },
      "message": "[PATCH] make osf_select() use core_sys_select()\n\n... instead of open-coding it\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f3de272b821accbc8387211977c2de4f38468d05",
      "tree": "775b5b3db5a09176447d4e62e04077b63640a4d7",
      "parents": [
        "49eaeb4bc4c901c327ee259c7768be20fd020a30"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Wed Apr 30 00:53:09 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:37 2008 -0700"
      },
      "message": "signals: use HAVE_SET_RESTORE_SIGMASK\n\nChange all the #ifdef TIF_RESTORE_SIGMASK conditionals in non-arch code to\n#ifdef HAVE_SET_RESTORE_SIGMASK.  If arch code defines it first, the generic\nset_restore_sigmask() using TIF_RESTORE_SIGMASK is not defined.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4e4c22c71144c1b2e22c257ec6cf08ccb5be1165",
      "tree": "0a41fb405ab60654f70ead9698d5ce414a066c37",
      "parents": [
        "80fe728d593e3a048a56610de932919f7d6d968a"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Wed Apr 30 00:53:06 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:37 2008 -0700"
      },
      "message": "signals: add set_restore_sigmask\n\nThis adds the set_restore_sigmask() inline in \u003clinux/thread_info.h\u003e and\nreplaces every set_thread_flag(TIF_RESTORE_SIGMASK) with a call to it.  No\nchange, but abstracts the details of the flag protocol from all the calls.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f5264481c8049673e2cc8c7aca410931f571ba2d",
      "tree": "cfe54747b75be1c83d2102d9e7f80c650602fcdc",
      "parents": [
        "1fb7c6e4cba35b5e7cef88b58d0a2ad164d801a5"
      ],
      "author": {
        "name": "Pavel Machek",
        "email": "pavel@suse.cz",
        "time": "Mon Apr 21 22:15:06 2008 +0000"
      },
      "committer": {
        "name": "Jesper Juhl",
        "email": "juhl@hera.kernel.org",
        "time": "Mon Apr 21 22:15:06 2008 +0000"
      },
      "message": "trivial: small cleanups\n\nThese are small cleanups all over the tree.\n\nTrivial style and comment changes to\n  fs/select.c, kernel/signal.c, kernel/stop_machine.c \u0026 mm/pdflush.c\n\nSigned-off-by: Pavel Machek \u003cpavel@suse.cz\u003e\nSigned-off-by: Jesper Juhl \u003cjesper.juhl@gmail.com\u003e\n"
    },
    {
      "commit": "844fcc53962d781aab7c164acbfa46505427375e",
      "tree": "2d0108617ebff6eec82c7c21f5bdf3a7610d4525",
      "parents": [
        "54d2a37eda3211d3b14c162238e9ccee43e023a9"
      ],
      "author": {
        "name": "Karsten Wiese",
        "email": "fzu@wemgehoertderstaat.de",
        "time": "Wed Feb 06 01:37:59 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:09 2008 -0800"
      },
      "message": "make sys_poll() wait at least timeout ms\n\nschedule_timeout(jiffies) waits for at least jiffies - 1.  Add 1 jiffie to\nthe timeout_jiffies calculated in sys_poll() to wait at least\ntimeout_msecs, like poll() manpage says.\n\nSigned-off-by: Karsten Wiese \u003cfzu@wemgehoertderstaat.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1276b103c20603835d9b903cae099125e8c2c5a3",
      "tree": "942421113b459fbbd26738e4fc145f06e269307a",
      "parents": [
        "bc552f77157d1bae79d0d3a5541da9579c39cb70"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jirislaby@gmail.com",
        "time": "Thu Oct 18 23:40:25 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:41 2007 -0700"
      },
      "message": "fs/select, remove unused macros\n\nfs/select, remove unused macros\n\nthis is due to preparation for global BIT macro\n\nSigned-off-by: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3075d9da0b4ccc88959db30de80ebd11d2dde175",
      "tree": "7dbdcd9b5eae671864eac060ee3138a8c862c0ea",
      "parents": [
        "7e341fa1f8ed25385e2321d7e5a49ce6aea2d702"
      ],
      "author": {
        "name": "Chris Wright",
        "email": "chrisw@sous-sol.org",
        "time": "Tue Oct 16 23:27:18 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:53 2007 -0700"
      },
      "message": "Use ERESTART_RESTARTBLOCK if poll() is interrupted by a signal\n\nLomesh reported poll returning EINTR during suspend/resume cycle.  This is\ncaused by the STOP/CONT cycle that the freezer uses, generating a pending\nsignal for what in effect is an ignored signal.  In general poll is a\nlittle eager in returning EINTR, when it could try not bother userspace and\nsimply restart the syscall.  Both select and ppoll do use ERESTARTNOHAND to\nrestart the syscall.  Oleg points out that simply using ERESTARTNOHAND will\ncause poll to restart with original timeout value.  which could ultimately\nlead to process never returning to userspace.  Instead use\nERESTART_RESTARTBLOCK, and restart poll with updated timeout value.\nInspired by Manfred\u0027s use ERESTARTNOHAND in poll patch.\n\n[bunk@kernel.org: do_restart_poll() can become static]\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: \"Agarwal, Lomesh\" \u003clomesh.agarwal@intel.com\u003e\nSigned-off-by: Chris Wright \u003cchrisw@sous-sol.org\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9bf084f70ffde6521d113593b89461a5bd2a303b",
      "tree": "ea62a8c9c54d0f702e73e9fa6e6c8699106ab892",
      "parents": [
        "252e5725cfb55a89e54888317856903fef9d5031"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Oct 16 23:26:18 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:48 2007 -0700"
      },
      "message": "do_poll: return -EINTR when signalled\n\ndo_poll() checks signal_pending() but returns 0 when interrupted.  This means\nthe caller has to check signal_pending() again.\n\nChange it to return -EINTR when signal_pending() and count \u003d\u003d 0.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Vadim Lobanov \u003cvlobanov@speakeasy.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "252e5725cfb55a89e54888317856903fef9d5031",
      "tree": "ca93be8725e01885f8af68dac5f6ca20a2bafe11",
      "parents": [
        "759d7c6c47cf1439171d057a226453e96856c5de"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Oct 16 23:26:17 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:48 2007 -0700"
      },
      "message": "do_sys_poll: simplify playing with on-stack data\n\nCleanup. Lessens both the source and compiled code (100 bytes) and imho makes\nthe code much more understandable.\n\nWith this patch \"struct poll_list *head\" always points to on-stack stack_pps,\nso we can remove all \"is it on-stack\" and \"was it initialized\" checks.\n\nAlso, move poll_initwait/poll_freewait and -EINTR detection closer to the\ndo_poll()\u0027s callsite.\n\n[akpm@linux-foundation.org: fix warning (size_t !\u003d uint)]\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nLooks-good-to: Andi Kleen \u003cak@suse.de\u003e\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Vadim Lobanov \u003cvlobanov@speakeasy.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dd23aae4f5edf4e1dbd8f7f8013a754ba3253f48",
      "tree": "c7babf45f8132876e8a715f0327cf480c05c6131",
      "parents": [
        "3210f0ecdba6a81c3f8efe6f442d2e1f57db98f9"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Sep 11 15:23:55 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Sep 11 17:21:20 2007 -0700"
      },
      "message": "Fix select on /proc files without -\u003epoll\n\nTaneli Vähäkangas \u003cvahakang@cs.helsinki.fi\u003e reported that commit\n786d7e1612f0b0adb6046f19b906609e4fe8b1ba aka \"Fix rmmod/read/write races\nin /proc entries\" broke SBCL + SLIME combo.\n\nThe old code in do_select() used DEFAULT_POLLMASK, if couldn\u0027t find\n-\u003epoll handler.  The new code makes -\u003epoll always there and returns 0 by\ndefault, which is not correct.  Return DEFAULT_POLLMASK instead.\n\nSteps to reproduce:\n\n\tinstall emacs, SBCL, SLIME\n\temacs\n\tM-x slime\tin *inferior-lisp* buffer\n\t[watch it doing \"Connecting to Swank on port X..\"]\n\nPlease, apply before 2.6.23.\n\nP.S.: why SBCL can\u0027t just read(2) /proc/cpuinfo is a mystery.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: T Taneli Vahakangas \u003cvahakang@cs.helsinki.fi\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ccf6780dc3d228f380e17b6858b93fc48e40afd4",
      "tree": "4b905fcccab11e2016969c876d7320b0271e10aa",
      "parents": [
        "d3e6975e0f25044c4c86f5a42c9917090973636b"
      ],
      "author": {
        "name": "WANG Cong",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Wed May 09 07:10:02 2007 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Wed May 09 07:10:02 2007 +0200"
      },
      "message": "Style fix in fs/select.c\n\nSigned-off-by: WANG Cong  \u003cxiyou.wangcong@gmail.com\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "022a1692444cd683ef42f637cc717db4d8fd9378",
      "tree": "82d8c1360921310f90b81c147b345afad98317f7",
      "parents": [
        "10f8a59813ee8bb41fb1d72ed2ec12a1c9f66da2"
      ],
      "author": {
        "name": "Milind Arun Choudhary",
        "email": "milindchoudhary@gmail.com",
        "time": "Tue May 08 00:29:02 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:09 2007 -0700"
      },
      "message": "ROUND_UP macro cleanup in fs/(select|compat|readdir).c\n\nROUND_UP macro cleanup use,ALIGN or DIV_ROUND_UP where ever appropriate.\n\nSigned-off-by: Milind Arun Choudhary \u003cmilindchoudhary@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e63340ae6b6205fef26b40a75673d1c9c0c8bb90",
      "tree": "8d3212705515edec73c3936bb9e23c71d34a7b41",
      "parents": [
        "04c9167f91e309c9c4ea982992aa08e83b2eb42e"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Tue May 08 00:28:08 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:07 2007 -0700"
      },
      "message": "header cleaning: don\u0027t include smp_lock.h when not used\n\nRemove includes of \u003clinux/smp_lock.h\u003e where it is not used/needed.\nSuggested by Al Viro.\n\nBuilds cleanly on x86_64, i386, alpha, ia64, powerpc, sparc,\nsparc64, and arm (all 59 defconfigs).\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bbea9f69668a3d0cf9feba15a724cd02896f8675",
      "tree": "bc58506e4daba4a04309181a5501ae4eb5424783",
      "parents": [
        "f3d19c90fb117a5f080310a4592929aa8e1ad8e9"
      ],
      "author": {
        "name": "Vadim Lobanov",
        "email": "vlobanov@speakeasy.net",
        "time": "Sun Dec 10 02:21:12 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Sun Dec 10 09:57:22 2006 -0800"
      },
      "message": "[PATCH] fdtable: Make fdarray and fdsets equal in size\n\nCurrently, each fdtable supports three dynamically-sized arrays of data: the\nfdarray and two fdsets.  The code allows the number of fds supported by the\nfdarray (fdtable-\u003emax_fds) to differ from the number of fds supported by each\nof the fdsets (fdtable-\u003emax_fdset).\n\nIn practice, it is wasteful for these two sizes to differ: whenever we hit a\nlimit on the smaller-capacity structure, we will reallocate the entire fdtable\nand all the dynamic arrays within it, so any delta in the memory used by the\nlarger-capacity structure will never be touched at all.\n\nRather than hogging this excess, we shouldn\u0027t even allocate it in the first\nplace, and keep the capacities of the fdarray and the fdsets equal.  This\npatch removes fdtable-\u003emax_fdset.  As an added bonus, most of the supporting\ncode becomes simpler.\n\nSigned-off-by: Vadim Lobanov \u003cvlobanov@speakeasy.net\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4e6fd33b75602ced4c5d43e99a10a1d13f33d4f4",
      "tree": "f22573e7d57532c4393ae26bea08866decad2813",
      "parents": [
        "8c6ba51bdad0de0dc2a2e2415d4dac2d0db6c1a1"
      ],
      "author": {
        "name": "Chris Snook",
        "email": "csnook@redhat.com",
        "time": "Fri Sep 29 02:01:33 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:23 2006 -0700"
      },
      "message": "[PATCH] enforce RLIMIT_NOFILE in poll()\n\nPOSIX states that poll() shall fail with EINVAL if nfds \u003e OPEN_MAX.  In\nthis context, POSIX is referring to sysconf(OPEN_MAX), which is the value\nof current-\u003esignal-\u003erlim[RLIMIT_NOFILE].rlim_cur in the linux kernel, not\nthe compile-time constant which happens to also be named OPEN_MAX.  In the\ncurrent code, an application may poll up to max_fdset file descriptors,\neven if this exceeds RLIMIT_NOFILE.  The current code also breaks\napplications which poll more than max_fdset descriptors, which worked circa\n2.4.18 when the check was against NR_OPEN, which is 1024*1024.  This patch\nenforces the limit precisely as POSIX defines, even if RLIMIT_NOFILE has\nbeen changed at run time with ulimit -n.\n\nTo elaborate on the rationale for this, there are three cases:\n\n1) RLIMIT_NOFILE is at the default value of 1024\n\nIn this (default) case, the patch changes nothing.  Calls with nfds \u003e 1024\nfail with EINVAL both before and after the patch, and calls with nfds \u003c\u003d\n1024 pass the check both before and after the patch, since 1024 is the\ninitial value of max_fdset.\n\n2) RLIMIT_NOFILE has been raised above the default\n\nIn this case, poll() becomes more permissive, allowing polling up to\nRLIMIT_NOFILE file descriptors even if less than 1024 have been opened.\nThe patch won\u0027t introduce new errors here.  If an application somehow\ndepends on poll() failing when it polls with duplicate or invalid file\ndescriptors, it\u0027s already broken, since this is already allowed below 1024,\nand will also work above 1024 if enough file descriptors have been open at\nsome point to cause max_fdset to have been increased above nfds.\n\n3) RLIMIT_NOFILE has been lowered below the default\n\nIn this case, the system administrator or the user has gone out of their\nway to protect the system from inefficient (or malicious) applications\nwasting kernel memory.  The current code allows polling up to 1024 file\ndescriptors even if RLIMIT_NOFILE is much lower, which is not what the user\nor administrator intended.  Well-written applications which only poll\nvalid, unique file descriptors will never notice the difference, because\nthey\u0027ll hit the limit on open() first.  If an application gets broken\nbecause of the patch in this case, then it was already poorly/maliciously\ndesigned, and allowing it to work in the past was a violation of POSIX and\na DoS risk on low-resource systems.\n\nWith this patch, poll() will permit exactly what POSIX suggests, no more,\nno less, and for any run-time value set with ulimit -n, not just 256 or\n1024.  There are existing apps which which poll a large number of file\ndescriptors, some of which may be invalid, and if those numbers stradle\n1024, they currently fail with or without the patch in -mm, though they\nworked fine under 2.4.18.\n\nSigned-off-by: Chris Snook \u003ccsnook@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "04a3446c90137a473837288b04b517b19dc67a0d",
      "tree": "874f1681da03441b021f81446e72ace451b0cb09",
      "parents": [
        "8bdd1d1250d55afe403ac4affa6ccc5f9e60468f"
      ],
      "author": {
        "name": "Frode Isaksen",
        "email": "frode.isaksen@gmail.com",
        "time": "Sun Jun 25 05:49:09 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jun 25 10:01:22 2006 -0700"
      },
      "message": "[PATCH] fs: sys_poll with timeout -1 bug fix\n\nIf you do a poll() call with timeout -1, the wait will be a big number\n(depending on HZ) instead of infinite wait, since -1 is passed to the\nmsecs_to_jiffies function.\n\nSigned-off-by: Frode Isaksen \u003cfrode.isaksen@gmail.com\u003e\nAcked-by: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4a4b69f79ba7286794765a856349e380f984a6cb",
      "tree": "e437752eb3f53b4e732595815aa5d24ff4bcbaab",
      "parents": [
        "2da132646358c853d5caf296d079aefc69358d46"
      ],
      "author": {
        "name": "Vadim Lobanov",
        "email": "vlobanov@speakeasy.net",
        "time": "Fri Jun 23 02:05:16 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:43:03 2006 -0700"
      },
      "message": "[PATCH] Poll cleanups/microoptimizations\n\nThe \"count\" and \"pt\" variables are declared and modified by do_poll(), as\nwell as accessed and written indirectly in the do_pollfd() subroutine.\n\nThis patch pulls all handling of these variables into the do_poll()\nfunction, thereby eliminating the odd use of indirection in do_pollfd().\nThis is done by pulling the \"struct pollfd\" traversal loop from do_pollfd()\ninto its only caller do_poll().  As an added bonus, the patch saves a few\nclock cycles, and also adds comments to make the code easier to follow.\n\nSigned-off-by: Vadim Lobanov \u003cvlobanov@speakeasy.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b04eb6aa08ecc3e24df2f78ebc486011ebd74feb",
      "tree": "8dbf6a2449f886f0db9c3082dabdf83d4c4f04f7",
      "parents": [
        "a9cdf410ca8f59b52bc7061a6751050010c7cc5b"
      ],
      "author": {
        "name": "Mitchell Blank Jr",
        "email": "mitch@sfgoth.com",
        "time": "Mon Apr 10 22:54:08 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Apr 11 06:18:41 2006 -0700"
      },
      "message": "[PATCH] select: don\u0027t overflow if (SELECT_STACK_ALLOC % sizeof(long) !\u003d 0)\n\nIf SELECT_STACK_ALLOC is not a multiple of sizeof(long) then stack_fds[]\nwould be shorter than SELECT_STACK_ALLOC bytes and could overflow later in\nthe function.  Fixed by simply rearranging the test later to work on\nsizeof(stack_fds) Currently SELECT_STACK_ALLOC is 256 so this doesn\u0027t\nhappen, but it\u0027s nasty to have things like this hidden in the code.  What\nif later someone decides to change SELECT_STACK_ALLOC to 300?\n\nSigned-off-by: Mitchell Blank Jr \u003cmitch@sfgoth.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "29ff2db55196717e2e67e0f04adc833ee7edd491",
      "tree": "7f68496e093a294d60939b60aa204ff16fb9633a",
      "parents": [
        "8a5bc075b8d8cf7a87b3f08fad2fba0f5d13295e"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Mon Apr 10 22:52:46 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Apr 11 06:18:30 2006 -0700"
      },
      "message": "[PATCH] select() warning fixes\n\nfs/select.c: In function `core_sys_select\u0027:\nfs/select.c:339: warning: assignment from incompatible pointer type\nfs/select.c:376: warning: comparison of distinct pointer types lacks a cast\n\nBy using a void* we can remove lots of casts rather than adding more.\n\nCc: Jes Sorensen \u003cjes@trained-monkey.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "30c14e40ed85469f166b5effdab6705c73c5cd5e",
      "tree": "31154f46c2c2acd0499b9ab8c849f009ac342641",
      "parents": [
        "d21c356b08820e60501ce7a42107a7f05863d91d"
      ],
      "author": {
        "name": "Jes Sorensen",
        "email": "jes@sgi.com",
        "time": "Fri Mar 31 11:18:57 2006 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:30:48 2006 -0800"
      },
      "message": "[PATCH] avoid unaligned access when accessing poll stack\n\nCommit 70674f95c0a2ea694d5c39f4e514f538a09be36f:\n\n  [PATCH] Optimize select/poll by putting small data sets on the stack\n\nresulted in the poll stack being 4-byte aligned on 64-bit architectures,\ncausing misaligned accesses to elements in the array.\n\nThis patch fixes it by declaring the stack in terms of \u0027long\u0027 instead\nof \u0027char\u0027.\n\nForce alignment of poll and select stacks to long to avoid unaligned\naccess on 64 bit architectures.\n\nSigned-off-by: Jes Sorensen \u003cjes@sgi.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "99ac48f54a91d02140c497edc31dc57d4bc5c85d",
      "tree": "68719391694a6914191bdf73d2071875f7653f6f",
      "parents": [
        "ec1b9466cb4f6ae6d950bd67055d9410d1056d2a"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Tue Mar 28 01:56:41 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 09:16:05 2006 -0800"
      },
      "message": "[PATCH] mark f_ops const in the inode\n\nMark the f_ops members of inodes as const, as well as fix the\nripple-through this causes by places that copy this f_ops and then \"do\nstuff\" with it.\n\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\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": "e4a1f129f9e43a5e5d28fe6d1b214246a398cdce",
      "tree": "9a8277520d5ef1bf8e86f11d76e6f0244efd9330",
      "parents": [
        "70674f95c0a2ea694d5c39f4e514f538a09be36f"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Tue Mar 28 01:56:34 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 09:16:04 2006 -0800"
      },
      "message": "[PATCH] use fget_light() in select/poll\n\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "70674f95c0a2ea694d5c39f4e514f538a09be36f",
      "tree": "906d109fafc5eafff6a90c8d866e0525fdaf6783",
      "parents": [
        "b02389e98a7b64ad5cd4823740defa8821f30bbd"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Tue Mar 28 01:56:33 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 09:16:04 2006 -0800"
      },
      "message": "[PATCH] Optimize select/poll by putting small data sets on the stack\n\nOptimize select and poll by a using stack space for small fd sets\n\nThis brings back an old optimization from Linux 2.0.  Using the stack is\nfaster than kmalloc.  On a Intel P4 system it speeds up a select of a\nsingle pty fd by about 13% (~4000 cycles -\u003e ~3500)\n\nIt also saves memory because a daemon hanging in select or poll will\nusually save one or two less pages.  This can add up - e.g.  if you have 10\ndaemons blocking in poll/select you save 40KB of memory.\n\nI did a patch for this long ago, but it was never applied.  This version is\na reimplementation of the old patch that tries to be less intrusive.  I\nonly did the minimal changes needed for the stack allocation.\n\nThe cut off point before external memory is allocated is currently at\n832bytes.  The system calls always allocate this much memory on the stack.\n\nThese 832 bytes are divided into 256 bytes frontend data (for the select\nbitmaps of the pollfds) and the rest of the space for the wait queues used\nby the low level drivers.  There are some extreme cases where this won\u0027t\nwork out for select and it falls back to allocating memory too early -\nespecially with very sparse large select bitmaps - but the majority of\nprocesses who only have a small number of file descriptors should be ok.\n[TBD: 832/256 might not be the best split for select or poll]\n\nI suspect more optimizations might be possible, but they would be more\ncomplicated.  One way would be to cache the select/poll context over\nmultiple system calls because typically the input values should be similar.\n Problem is when to flush the file descriptors out though.\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "74910e6c7dc7471b286a883c1a7af70483ffd2ba",
      "tree": "42314cf5882563b967284900a18e990b8a974a91",
      "parents": [
        "200a4552af34b9a32e1f68a881a9ed5c7ec699cc"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Fri Feb 17 13:52:58 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Feb 17 13:59:28 2006 -0800"
      },
      "message": "[PATCH] select: time comparison fixes\n\nI got all of these backwards.  We want to return\n\n\tmin(input timeout, new timeout)\n\nto userspace to prevent increasing the time-remaining value.\n\nThanks to Ernst Herzberg \u003cearny@net4u.de\u003e for reporting and diagnosing.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "643a654540579b0dcc7a206a4a7475276a41aff0",
      "tree": "e31d40e4362e4dc7823b7290c0de2a9353d3d117",
      "parents": [
        "33042a9ff4d126ba944b9dc3076665a2029e0a34"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Sat Feb 11 17:55:52 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Feb 11 21:41:11 2006 -0800"
      },
      "message": "[PATCH] select: fix returned timeval\n\nWith David Woodhouse \u003cdwmw2@infradead.org\u003e\n\nselect() presently has a habit of increasing the value of the user\u0027s\n`timeout\u0027 argument on return.\n\nWe were writing back a timeout larger than the original.  We _deliberately_\nround up, since we know we must wait at _least_ as long as the caller asks\nus to.\n\nThe patch adds a couple of helper functions for magnitude comparison of\ntimespecs and of timevals, and uses them to prevent the various poll and\nselect functions from returning a timeout which is larger than the one which\nwas passed in.\n\nThe patch also fixes a bug in compat_sys_pselect7(): it was adding the new\ntimeout value to the old one and was returning that.  It should just return\nthe new timeout value.\n\n(We have various handy timespec/timeval-to-from-nsec conversion functions in\ntime.h.  But this code open-codes it all).\n\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nCc: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: george anzinger \u003cgeorge@mvista.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e110ab94ebc714de57f75f0c7c576dde8cf80944",
      "tree": "c07b5f010d244cb11afeb50becdb1d7256a8560d",
      "parents": [
        "3023b438c4b6103d520690cfa8b790bdd3868dc2"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Feb 01 05:26:09 2006 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Feb 07 20:57:31 2006 -0500"
      },
      "message": "[PATCH] fix __user annotations in fs/select.c\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9f72949f679df06021c9e43886c9191494fdb007",
      "tree": "f4d76ed281b34e195db7741b69a7d095e168a864",
      "parents": [
        "36a7878a224c18aa4a5e098dc93d19cf5601462b"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed Jan 18 17:44:05 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 18 19:20:30 2006 -0800"
      },
      "message": "[PATCH] Add pselect/ppoll system call implementation\n\nThe following implementation of ppoll() and pselect() system calls\ndepends on the architecture providing a TIF_RESTORE_SIGMASK flag in the\nthread_info.\n\nThese system calls have to change the signal mask during their\noperation, and signal handlers must be invoked using the new, temporary\nsignal mask. The old signal mask must be restored either upon successful\nexit from the system call, or upon returning from the invoked signal\nhandler if the system call is interrupted. We can\u0027t simply restore the\noriginal signal mask and return to userspace, since the restored signal\nmask may actually block the signal which interrupted the system call.\n\nThe TIF_RESTORE_SIGMASK flag deals with this by causing the syscall exit\npath to trap into do_signal() just as TIF_SIGPENDING does, and by\ncausing do_signal() to use the saved signal mask instead of the current\nsignal mask when setting up the stack frame for the signal handler -- or\nby causing do_signal() to simply restore the saved signal mask in the\ncase where there is no handler to be invoked.\n\nThe first patch implements the sys_pselect() and sys_ppoll() system\ncalls, which are present only if TIF_RESTORE_SIGMASK is defined. That\n#ifdef should go away in time when all architectures have implemented\nit. The second patch implements TIF_RESTORE_SIGMASK for the PowerPC\nkernel (in the -mm tree), and the third patch then removes the\narch-specific implementations of sys_rt_sigsuspend() and replaces them\nwith generic versions using the same trick.\n\nThe fourth and fifth patches, provided by David Howells, implement\nTIF_RESTORE_SIGMASK for FR-V and i386 respectively, and the sixth patch\nadds the syscalls to the i386 syscall table.\n\nThis patch:\n\nAdd the pselect() and ppoll() system calls, providing core routines usable by\nthe original select() and poll() system calls and also the new calls (with\ntheir semantics w.r.t timeouts).\n\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Michael Kerrisk \u003cmtk-manpages@gmx.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b835996f628eadb55c5fb222ba46fe9395bf73c7",
      "tree": "d63d80585d197e1ffc299af4a0034049790fb197",
      "parents": [
        "ab2af1f5005069321c5d130f09cce577b03f43ef"
      ],
      "author": {
        "name": "Dipankar Sarma",
        "email": "dipankar@in.ibm.com",
        "time": "Fri Sep 09 13:04:14 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 13:57:55 2005 -0700"
      },
      "message": "[PATCH] files: lock-free fd look-up\n\nWith the use of RCU in files structure, the look-up of files using fds can now\nbe lock-free.  The lookup is protected by rcu_read_lock()/rcu_read_unlock().\nThis patch changes the readers to use lock-free lookup.\n\nSigned-off-by: Maneesh Soni \u003cmaneesh@in.ibm.com\u003e\nSigned-off-by: Ravikiran Thirumalai \u003ckiran_th@gmail.com\u003e\nSigned-off-by: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "badf16621c1f9d1ac753be056fce11b43d6e0be5",
      "tree": "3fdf833fdf2e3d3a439090743539680449ec3428",
      "parents": [
        "c0dfb2905126e9e94edebbce8d3e05001301f52d"
      ],
      "author": {
        "name": "Dipankar Sarma",
        "email": "dipankar@in.ibm.com",
        "time": "Fri Sep 09 13:04:10 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 13:57:55 2005 -0700"
      },
      "message": "[PATCH] files: break up files struct\n\nIn order for the RCU to work, the file table array, sets and their sizes must\nbe updated atomically.  Instead of ensuring this through too many memory\nbarriers, we put the arrays and their sizes in a separate structure.  This\npatch takes the first step of putting the file table elements in a separate\nstructure fdtable that is embedded withing files_struct.  It also changes all\nthe users to refer to the file table using files_fdtable() macro.  Subsequent\napplciation of RCU becomes easier after this.\n\nSigned-off-by: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "75c96f85845a6707b0f9916cb263cb3584f7d48f",
      "tree": "45a64d1c9bb71d7093db3a11e0f21465c2e3dec6",
      "parents": [
        "5e198d94dd0c3ec7f6138229e2e412c2c6268c38"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Thu May 05 16:16:09 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu May 05 16:36:47 2005 -0700"
      },
      "message": "[PATCH] make some things static\n\nThis patch makes some needlessly global identifiers static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nAcked-by: Arjan van de Ven \u003carjanv@infradead.org\u003e\nAcked-by: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\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"
    }
  ]
}
