)]}'
{
  "log": [
    {
      "commit": "cdd7549e27bf5e8abc4e19d5e8d110b8252b4fe4",
      "tree": "20682463abca2954c6a50ec1ac77971e989becc3",
      "parents": [
        "be0f071956e2142e2e88e9d6d5655ba1c75d07c8"
      ],
      "author": {
        "name": "Jesse Brandeburg",
        "email": "jesse.brandeburg@intel.com",
        "time": "Fri Sep 25 12:18:07 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Sep 26 20:15:42 2009 -0700"
      },
      "message": "e1000: fix tx waking queue after queue stopped during shutdown\n\nThis fix closes a race where the adapter can be shutting down while\nhard_start_xmit is being called and interrupts are being handled.\n\nSigned-off-by: Jesse Brandeburg \u003cjesse.brandeburg@intel.com\u003e\nSigned-off-by: Don Skidmore \u003cdonald.c.skidmore@intel.com\u003e\nSigned-off-by: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "be0f071956e2142e2e88e9d6d5655ba1c75d07c8",
      "tree": "e0b1be3f259841aaabcfbb02c4495dd2580d0130",
      "parents": [
        "baa34745fe6263c733f43feddb0b8100d6538f37"
      ],
      "author": {
        "name": "Jesse Brandeburg",
        "email": "jesse.brandeburg@intel.com",
        "time": "Fri Sep 25 12:17:44 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Sep 26 20:15:36 2009 -0700"
      },
      "message": "e1000: test link state conclusively\n\ne1000 was using one particular way to detect link, but with the advent\nof some of the newer hardware designs using SERDES connections, tests\nfor link must completely cover all cases.\n\nSigned-off-by: Jesse Brandeburg \u003cjesse.brandeburg@intel.com\u003e\nSigned-off-by: Don Skidmore \u003cdonald.c.skidmore@intel.com\u003e\nSigned-off-by: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "baa34745fe6263c733f43feddb0b8100d6538f37",
      "tree": "c77d8e304a958f01f9665a51e1703e1f20c499dd",
      "parents": [
        "51851073093f36a626de5f5eb1b87db9cae7e0d2"
      ],
      "author": {
        "name": "Jesse Brandeburg",
        "email": "jesse.brandeburg@intel.com",
        "time": "Fri Sep 25 12:17:23 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Sep 26 20:15:34 2009 -0700"
      },
      "message": "e1000: stop timers at appropriate times\n\nthere were some hotplug cases that made timers still run after the driver\nhad been removed, make sure to stop all the timers and not allow racy\nreschedules.\n\nSigned-off-by: Jesse Brandeburg \u003cjesse.brandeburg@intel.com\u003e\nSigned-off-by: Don Skidmore \u003cdonald.c.skidmore@intel.com\u003e\nSigned-off-by: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "51851073093f36a626de5f5eb1b87db9cae7e0d2",
      "tree": "b78b351ca6531e8efd531db04795627d7f0d6891",
      "parents": [
        "282b177782b6bea756f9d46f72422a7304693179"
      ],
      "author": {
        "name": "Jesse Brandeburg",
        "email": "jesse.brandeburg@intel.com",
        "time": "Fri Sep 25 12:17:01 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Sep 26 20:15:29 2009 -0700"
      },
      "message": "e1000: use netif_tx_disable\n\nwe can use netif_tx_disable now because LLTX has been removed.\n\nSigned-off-by: Jesse Brandeburg \u003cjesse.brandeburg@intel.com\u003e\nSigned-off-by: Don Skidmore \u003cdonald.c.skidmore@intel.com\u003e\nSigned-off-by: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "282b177782b6bea756f9d46f72422a7304693179",
      "tree": "efee753d4b0f0a57542c5b5f77739862874380f1",
      "parents": [
        "1532ecea1debf8d2cd50c99e299ad35f43a55291"
      ],
      "author": {
        "name": "Jesse Brandeburg",
        "email": "jesse.brandeburg@intel.com",
        "time": "Fri Sep 25 12:16:39 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Sep 26 20:15:26 2009 -0700"
      },
      "message": "e1000: remove unused functions\n\nafter removal of pcie, need to remove some unnecessary functions\n\nSigned-off-by: Jesse Brandeburg \u003cjesse.brandeburg@intel.com\u003e\nSigned-off-by: Don Skidmore \u003cdonald.c.skidmore@intel.com\u003e\nSigned-off-by: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1532ecea1debf8d2cd50c99e299ad35f43a55291",
      "tree": "f7a0e1a201e8f596a259f0808e93c181e5f119d9",
      "parents": [
        "99c4a6344f6574c97019ac16e8d54bfe5ad21f2d"
      ],
      "author": {
        "name": "Jesse Brandeburg",
        "email": "jesse.brandeburg@intel.com",
        "time": "Fri Sep 25 12:16:14 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Sep 26 20:15:23 2009 -0700"
      },
      "message": "e1000: drop dead pcie code from e1000\n\nthis patch is the first in a series of clean up patches for e1000 to drop\nunused code, and update the driver to kernel spec, and then, to update the\ndriver to have all available bug fixes.\n\nCall it the e1000 weight loss plan.\n\nSigned-off-by: Jesse Brandeburg \u003cjesse.brandeburg@intel.com\u003e\nSigned-off-by: Don Skidmore \u003cdonald.c.skidmore@intel.com\u003e\nSigned-off-by: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "99c4a6344f6574c97019ac16e8d54bfe5ad21f2d",
      "tree": "dd2427ad6f4759561a81a01253051450e8d6d058",
      "parents": [
        "43c2ed8e9e2d285be49d7ea1afc05071d5d7b0f9"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Sep 25 12:14:43 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Sep 25 13:43:54 2009 -0700"
      },
      "message": "at91_can: Forgotten git \u0027add\u0027 of at91_can.c\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "43c2ed8e9e2d285be49d7ea1afc05071d5d7b0f9",
      "tree": "dea325fefb4e6c1b80f2d10f8a509c18706bd905",
      "parents": [
        "c0181d420cc1a506ca4418ce90e2ad89831eee2c"
      ],
      "author": {
        "name": "Sriram",
        "email": "srk@ti.com",
        "time": "Thu Sep 24 19:15:18 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Sep 25 13:43:49 2009 -0700"
      },
      "message": "TI Davinci EMAC: Fix in vector definition for EMAC_VERSION_2\n\nIn the emac_poll function when looking for interrupt status masks\ncorrect definition must be chosen based on EMAC_VERSION(the bit\nmask has changed from version 1 to version 2).\n\nSigned-off-by: Sriram \u003csrk@ti.com\u003e\nAcked-by: Chaithrika U S \u003cchaithrika@ti.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c0181d420cc1a506ca4418ce90e2ad89831eee2c",
      "tree": "2c28009e8312427a2d934352c8c1c3363941d8af",
      "parents": [
        "a91eba5b9db4c09f53c8f23327915c7c75d3235f"
      ],
      "author": {
        "name": "Jarek Poplawski",
        "email": "jarkao2@gmail.com",
        "time": "Fri Sep 25 03:10:38 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Sep 25 13:43:48 2009 -0700"
      },
      "message": "ax25: Fix ax25_cb refcounting in ax25_ctl_ioctl\n\nUse ax25_cb_put after ax25_find_cb in ax25_ctl_ioctl.\n\nReported-by: Bernard Pidoux F6BVP \u003cf6bvp@free.fr\u003e\nSigned-off-by: Jarek Poplawski \u003cjarkao2@gmail.com\u003e\nReviewed-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a91eba5b9db4c09f53c8f23327915c7c75d3235f",
      "tree": "12e9336f873772b1c0880e7110234852589370bf",
      "parents": [
        "b8273570f802a7658827dcb077b0b517ba75a289",
        "0aea51c37fc5868cd723f670af9056c2ef694fee"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Sep 25 11:09:08 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Sep 25 11:09:08 2009 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of ssh://master.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-davem\n"
    },
    {
      "commit": "b8273570f802a7658827dcb077b0b517ba75a289",
      "tree": "06fcee4433089cdb16504f40b1975ebbdf69e241",
      "parents": [
        "704cc92e9ffe29458ea8831ae097c631b1160c01"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Thu Sep 24 15:44:05 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Sep 24 15:44:05 2009 -0700"
      },
      "message": "genetlink: fix netns vs. netlink table locking (2)\n\nSimilar to commit d136f1bd366fdb7e747ca7e0218171e7a00a98a5,\nthere\u0027s a bug when unregistering a generic netlink family,\nwhich is caught by the might_sleep() added in that commit:\n\n    BUG: sleeping function called from invalid context at net/netlink/af_netlink.c:183\n    in_atomic(): 1, irqs_disabled(): 0, pid: 1510, name: rmmod\n    2 locks held by rmmod/1510:\n     #0:  (genl_mutex){+.+.+.}, at: [\u003cffffffff8138283b\u003e] genl_unregister_family+0x2b/0x130\n     #1:  (rcu_read_lock){.+.+..}, at: [\u003cffffffff8138270c\u003e] __genl_unregister_mc_group+0x1c/0x120\n    Pid: 1510, comm: rmmod Not tainted 2.6.31-wl #444\n    Call Trace:\n     [\u003cffffffff81044ff9\u003e] __might_sleep+0x119/0x150\n     [\u003cffffffff81380501\u003e] netlink_table_grab+0x21/0x100\n     [\u003cffffffff813813a3\u003e] netlink_clear_multicast_users+0x23/0x60\n     [\u003cffffffff81382761\u003e] __genl_unregister_mc_group+0x71/0x120\n     [\u003cffffffff81382866\u003e] genl_unregister_family+0x56/0x130\n     [\u003cffffffffa0007d85\u003e] nl80211_exit+0x15/0x20 [cfg80211]\n     [\u003cffffffffa000005a\u003e] cfg80211_exit+0x1a/0x40 [cfg80211]\n\nFix in the same way by grabbing the netlink table lock\nbefore doing rcu_read_lock().\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "704cc92e9ffe29458ea8831ae097c631b1160c01",
      "tree": "5ef8846d23a73deb54e9694a936185402986e250",
      "parents": [
        "a43912ab1925788765208da5cd664b6f8e011d08"
      ],
      "author": {
        "name": "Anton Vorontsov",
        "email": "avorontsov@ru.mvista.com",
        "time": "Thu Sep 24 08:31:52 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Sep 24 15:39:26 2009 -0700"
      },
      "message": "3c59x: Get rid of \"Trying to free already-free IRQ\"\n\nFollowing trace pops up if we try to suspend with 3c59x ethernet NIC\nbrought down:\n\n  root@b1:~# ifconfig eth16 down\n  root@b1:~# echo mem \u003e /sys/power/state\n  ...\n  3c59x 0000:00:10.0: suspend\n  3c59x 0000:00:10.0: PME# disabled\n  Trying to free already-free IRQ 48\n  ------------[ cut here ]------------\n  Badness at c00554e4 [verbose debug info unavailable]\n  NIP: c00554e4 LR: c00554e4 CTR: c019a098\n  REGS: c7975c60 TRAP: 0700   Not tainted  (2.6.31-rc4)\n  MSR: 00021032 \u003cME,CE,IR,DR\u003e  CR: 28242422  XER: 20000000\n  TASK \u003d c79cb0c0[1746] \u0027bash\u0027 THREAD: c7974000\n  ...\n  NIP [c00554e4] __free_irq+0x108/0x1b0\n  LR [c00554e4] __free_irq+0x108/0x1b0\n  Call Trace:\n  [c7975d10] [c00554e4] __free_irq+0x108/0x1b0 (unreliable)\n  [c7975d30] [c005559c] free_irq+0x10/0x24\n  [c7975d40] [c01e21ec] vortex_suspend+0x70/0xc4\n  [c7975d60] [c017e584] pci_legacy_suspend+0x58/0x100\n\nThis is because the driver manages interrupts without checking for\nnetif_running().\n\nThough, there are few other issues with suspend/resume in this driver.\nThe intention of calling free_irq() in suspend() was to avoid any\npossible spurious interrupts (see commit 5b039e681b8c5f30aac9cc04385\n\"3c59x PM fixes\"). But,\n\n- On resume, the driver was requesting IRQ just after pci_set_master(),\n  but before vortex_up() (which actually resets 3c59x chips).\n\n- Issuing free_irq() on a shared IRQ doesn\u0027t guarantee that a buggy\n  HW won\u0027t trigger spurious interrupts in another driver that\n  requested the same interrupt. So, if we want to protect from\n  unexpected interrupts, then on suspend we should issue disable_irq(),\n  not free_irq().\n\nSigned-off-by: Anton Vorontsov \u003cavorontsov@ru.mvista.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a43912ab1925788765208da5cd664b6f8e011d08",
      "tree": "6f522dba1fd414b7da3999fa2da062d80a550874",
      "parents": [
        "edf42a27e8e242e543716663e54aa2b592ea070a"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Sep 23 10:28:33 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Sep 24 15:39:22 2009 -0700"
      },
      "message": "tunnel: eliminate recursion field\n\nIt seems recursion field from \"struct ip_tunnel\" is not anymore needed.\nrecursion prevention is done at the upper level (in dev_queue_xmit()),\nsince we use HARD_TX_LOCK protection for tunnels.\n\nThis avoids a cache line ping pong on \"struct ip_tunnel\" : This structure\nshould be now mostly read on xmit and receive paths.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "edf42a27e8e242e543716663e54aa2b592ea070a",
      "tree": "c18ca7f0564e94a7c09cb25b03627798cc4454ae",
      "parents": [
        "0c01695dabe508ecf3a619c36f0918e8d24c0d05"
      ],
      "author": {
        "name": "Sebastian Haas",
        "email": "haas@ems-wuensche.com",
        "time": "Thu Sep 24 03:55:05 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Sep 24 15:39:18 2009 -0700"
      },
      "message": "ems_pci: fix size of CAN controllers BAR mapping for CPC-PCI v2\n\nThe driver mapped only 128 bytes of the CAN controller address space when a\nCPC-PCI v2 was detected (incl. CPC-104P). This patch will fix it by always\nmapping the whole address space (4096 bytes on all boards) of the\ncorresponding PCI BAR.\n\nSigned-off-by: Sebastian Haas \u003chaas@ems-wuensche.com\u003e\nSigned-off-by: Wolfgang Grandegger \u003cwg@grandegger.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0c01695dabe508ecf3a619c36f0918e8d24c0d05",
      "tree": "2e0696cc842dc1ffbb1f0863a92381d6f72d70f8",
      "parents": [
        "18a1166de994685d770425086b2bcc1ba567f7ed"
      ],
      "author": {
        "name": "Jaswinder Singh Rajput",
        "email": "jaswinder@kernel.org",
        "time": "Thu Sep 24 02:19:41 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Sep 24 15:39:14 2009 -0700"
      },
      "message": "net: fix htmldocs sunrpc, clnt.c\n\nDOCPROC Documentation/DocBook/networking.xml\n  Warning(net/sunrpc/clnt.c:647): No description found for parameter \u0027req\u0027\n  Warning(net/sunrpc/clnt.c:647): No description found for parameter \u0027tk_ops\u0027\n  Warning(net/sunrpc/clnt.c:647): Excess function parameter \u0027ops\u0027 description in \u0027rpc_run_bc_task\u0027\n\nSigned-off-by: Jaswinder Singh Rajput \u003cjaswinderrajput@gmail.com\u003e\nCc: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\nCc: Benny Halevy \u003cbhalevy@panasas.com\u003e\nCc: Andy Adamson \u003candros@netapp.com\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "18a1166de994685d770425086b2bcc1ba567f7ed",
      "tree": "748916e0e5640506b438b7bcafb863153a4c0816",
      "parents": [
        "582b0b611345fc8d9ab8a0605d2f14c468902719"
      ],
      "author": {
        "name": "Rémi Denis-Courmont",
        "email": "remi.denis-courmont@nokia.com",
        "time": "Wed Sep 23 03:17:11 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Sep 24 15:38:57 2009 -0700"
      },
      "message": "Phonet: error on broadcast sending (unimplemented)\n\nIf we ever implement this, then we can stop returning an error.\n\nSigned-off-by: Rémi Denis-Courmont \u003cremi.denis-courmont@nokia.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "582b0b611345fc8d9ab8a0605d2f14c468902719",
      "tree": "3e051d3777171b7f708f5fd89c910d7a62eedfad",
      "parents": [
        "ef87979c273a2348430648ad1d5c2a5e5df50b6e"
      ],
      "author": {
        "name": "Rémi Denis-Courmont",
        "email": "remi.denis-courmont@nokia.com",
        "time": "Wed Sep 23 03:17:10 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Sep 24 15:38:54 2009 -0700"
      },
      "message": "Phonet: fix race for port number in concurrent bind()\n\nAllocating a port number to a socket and hashing that socket shall be\nan atomic operation with regards to other port allocation. Otherwise,\nwe could allocate a port that is already being allocated to another\nsocket.\n\nSigned-off-by: Rémi Denis-Courmont \u003cremi.denis-courmont@nokia.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ef87979c273a2348430648ad1d5c2a5e5df50b6e",
      "tree": "944be9878e1a54d68f612374d4896d7e61820c0b",
      "parents": [
        "6b80d6a6b4e27fd355641823c5f4ac3f96d072e5"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Tue Sep 22 19:41:43 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Sep 24 15:38:50 2009 -0700"
      },
      "message": "pktgen: better scheduler friendliness\n\nPrevious update did not resched in inner loop causing watchdogs.\nRewrite inner loop to:\n  * account for delays better with less clock calls\n  * more accurate timing of delay:\n    - only delay if packet was successfully sent\n    - if delay is 100ns and it takes 10ns to build packet then\n      account for that\n  * use wait_event_interruptible_timeout rather than open coding it.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6b80d6a6b4e27fd355641823c5f4ac3f96d072e5",
      "tree": "e2b8701061efd7cd1cc9734e78f3e14b0126d69b",
      "parents": [
        "0915921bde4eb5d943b17c175febac58a254d7b6"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Tue Sep 22 19:41:42 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Sep 24 15:38:46 2009 -0700"
      },
      "message": "pktgen: T_TERMINATE flag is unused\n\nGet rid of unused flag bit.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0915921bde4eb5d943b17c175febac58a254d7b6",
      "tree": "cd6a6845d0a340f4aa06a3b5f28118ae8d7e66bb",
      "parents": [
        "8b3f6af86378d0a10ca2f1ded1da124aef13b62c"
      ],
      "author": {
        "name": "Shan Wei",
        "email": "shanwei@cn.fujitsu.com",
        "time": "Tue Sep 22 15:41:10 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Sep 24 15:38:44 2009 -0700"
      },
      "message": "ipv4: check optlen for IP_MULTICAST_IF option\n\nDue to man page of setsockopt, if optlen is not valid, kernel should return\n-EINVAL. But a simple testcase as following, errno is 0, which means setsockopt\nis successful.\n\taddr.s_addr \u003d inet_addr(\"192.1.2.3\");\n\tsetsockopt(s, IPPROTO_IP, IP_MULTICAST_IF, \u0026addr, 1);\n\tprintf(\"errno is %d\\n\", errno);\n\nXiaotian Feng(dfeng@redhat.com) caught the bug. We fix it firstly checking\nthe availability of optlen and then dealing with the logic like other options.\n\nReported-by: Xiaotian Feng \u003cdfeng@redhat.com\u003e\nSigned-off-by: Shan Wei \u003cshanwei@cn.fujitsu.com\u003e\nAcked-by: Alexey Kuznetsov \u003ckuznet@ms2.inr.ac.ru\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8b3f6af86378d0a10ca2f1ded1da124aef13b62c",
      "tree": "de6ca90295730343c495be8d98be8efa322140ef",
      "parents": [
        "139d6065c83071d5f66cd013a274a43699f8e2c1",
        "94e0fb086fc5663c38bbc0fe86d698be8314f82f"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Sep 24 15:13:11 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Sep 24 15:13:11 2009 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of /home/davem/src/GIT/linux-2.6/\n\nConflicts:\n\tdrivers/staging/Kconfig\n\tdrivers/staging/Makefile\n\tdrivers/staging/cpc-usb/TODO\n\tdrivers/staging/cpc-usb/cpc-usb_drv.c\n\tdrivers/staging/cpc-usb/cpc.h\n\tdrivers/staging/cpc-usb/cpc_int.h\n\tdrivers/staging/cpc-usb/cpcusb.h\n"
    },
    {
      "commit": "94e0fb086fc5663c38bbc0fe86d698be8314f82f",
      "tree": "1c3be6c71ec3511aa2a4eb6dfa25f35677464ebb",
      "parents": [
        "b7f21bb2e23b4fec16b448a34889f467465be659",
        "c715089f49844260f1eeae8e3b55af9468ba1325"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 10:30:41 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 10:30:41 2009 -0700"
      },
      "message": "Merge branch \u0027drm-intel-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/anholt/drm-intel\n\n* \u0027drm-intel-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/anholt/drm-intel: (57 commits)\n  drm/i915: Handle ERESTARTSYS during page fault\n  drm/i915: Warn before mmaping a purgeable buffer.\n  drm/i915: Track purged state.\n  drm/i915: Remove eviction debug spam\n  drm/i915: Immediately discard any backing storage for uneeded objects\n  drm/i915: Do not mis-classify clean objects as purgeable\n  drm/i915: Whitespace correction for madv\n  drm/i915: BUG_ON page refleak during unbind\n  drm/i915: Search harder for a reusable object\n  drm/i915: Clean up evict from list.\n  drm/i915: Add tracepoints\n  drm/i915: framebuffer compression for GM45+\n  drm/i915: split display functions by chip type\n  drm/i915: Skip the sanity checks if the current relocation is valid\n  drm/i915: Check that the relocation points to within the target\n  drm/i915: correct FBC update when pipe base update occurs\n  drm/i915: blacklist Acer AspireOne lid status\n  ACPI: make ACPI button funcs no-ops if not built in\n  drm/i915: prevent FIFO calculation overflows on 32 bits with high dotclocks\n  drm/i915: intel_display.c handle latency variable efficiently\n  ...\n\nFix up trivial conflicts in drivers/gpu/drm/i915/{i915_dma.c|i915_drv.h}\n"
    },
    {
      "commit": "b7f21bb2e23b4fec16b448a34889f467465be659",
      "tree": "3569f95b5ebf5bcce03aad976ef69b9b818de832",
      "parents": [
        "7ca263cdf8cf74d0f1c6f48d07d556de92e3bec9",
        "76baeebf7df493703eeb4428eac015bdb7fabda6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 09:57:08 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 09:57:08 2009 -0700"
      },
      "message": "Merge branch \u0027linux-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6\n\n* \u0027linux-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6: (21 commits)\n  x86/PCI: make 32 bit NUMA node array int, not unsigned char\n  x86/PCI: default pcibus cpumask to all cpus if it lacks affinity\n  MAINTAINTERS: remove hotplug driver entries\n  PCI: pciehp: remove slot capabilities definitions\n  PCI: pciehp: remove error message definitions\n  PCI: pciehp: remove number field\n  PCI: pciehp: remove hpc_ops\n  PCI: pciehp: remove pci_dev field\n  PCI: pciehp: remove crit_sect mutex\n  PCI: pciehp: remove slot_bus field\n  PCI: pciehp: remove first_slot field\n  PCI: pciehp: remove slot_device_offset field\n  PCI: pciehp: remove hp_slot field\n  PCI: pciehp: remove device field\n  PCI: pciehp: remove bus field\n  PCI: pciehp: remove slot_num_inc field\n  PCI: pciehp: remove num_slots field\n  PCI: pciehp: remove slot_list field\n  PCI: fix VGA arbiter header file\n  PCI: Disable AER with pci\u003dnomsi\n  ...\n\nFixed up trivial conflicts in MAINTAINERS\n"
    },
    {
      "commit": "7ca263cdf8cf74d0f1c6f48d07d556de92e3bec9",
      "tree": "409ed34476208f714e0d4c529a642d8fd21feaa5",
      "parents": [
        "a6b49cb210f878709bdc0bddc16a853f18790d02",
        "96830a57de1197519b62af6a4c9ceea556c18c3d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 09:04:24 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 09:04:24 2009 -0700"
      },
      "message": "Merge branch \u0027cputime\u0027 of git://git390.marist.edu/pub/scm/linux-2.6\n\n* \u0027cputime\u0027 of git://git390.marist.edu/pub/scm/linux-2.6:\n  [PATCH] Fix idle time field in /proc/uptime\n"
    },
    {
      "commit": "a6b49cb210f878709bdc0bddc16a853f18790d02",
      "tree": "6147078ef0ce584cb6a8dae7468f060ef5838d12",
      "parents": [
        "2c9871de0ae89a0e2c365ea6e277135fe031d8b4",
        "bfc8125858d777bd5bdba03a091c07cc2e0e17c0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 09:01:44 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 09:01:44 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.monstr.eu/linux-2.6-microblaze\n\n* \u0027for-linus\u0027 of git://git.monstr.eu/linux-2.6-microblaze: (24 commits)\n  microblaze: Disable heartbeat/enable emaclite in defconfigs\n  microblaze: Support simpleImage.dts make target\n  microblaze: Fix _start symbol to physical address\n  microblaze: Use LOAD_OFFSET macro to get correct LMA for all sections\n  microblaze: Create the LOAD_OFFSET macro used to compute VMA vs LMA offsets\n  microblaze: Copy ppc asm-compat.h for clean handling of constants in asm and C\n  microblaze: Actually show KiB rather than pages in \"Freeing initrd memory:\"\n  microblaze: Support ptrace syscall tracing.\n  microblaze: Updated CPU version and FPGA family codes in PVR\n  microblaze: Generate correct signal and siginfo for integer div-by-zero\n  microblaze: Don\u0027t be noisy when userspace causes hardware exceptions\n  microblaze: Remove ipc.h file which points to non-existing asm-generic file\n  microblaze: Clear sticky FSR register after generating exception signals\n  microblaze: Ensure CPU usermode is set on new userspace processes\n  microblaze: Use correct kbuild variable KBUILD_CFLAGS\n  microblaze: Save and restore msr in hw exception\n  microblaze: Add architectural support for USB EHCI host controllers\n  microblaze: Implement include/asm/syscall.h.\n  microblaze: Improve checking mechanism for MSR instruction\n  microblaze: Add checking mechanism for MSR instruction\n  ...\n"
    },
    {
      "commit": "2c9871de0ae89a0e2c365ea6e277135fe031d8b4",
      "tree": "1b5a05333f53c9eebb4d89924944201ec6e1f400",
      "parents": [
        "dc2af6a6bcf3abdf44ac545759a6547dfe12070e",
        "ffa9f12a41ec117207e8d953f90b9c179546c8d7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 09:01:05 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 09:01:05 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus:\n  module: don\u0027t call percpu_modfree on NULL pointer.\n  module: fix memory leak when load fails after srcversion/version allocated\n  module: preferred way to use MODULE_AUTHOR\n  param: allow whitespace as kernel parameter separator\n  module: reduce string table for loaded modules (v2)\n  module: reduce symbol table for loaded modules (v2)\n"
    },
    {
      "commit": "dc2af6a6bcf3abdf44ac545759a6547dfe12070e",
      "tree": "068ea2c5f5df55f72167ab3b51e001a98b7300e4",
      "parents": [
        "6c5daf012c9155aafd2c7973e4278766c30dfad0",
        "54bcf382daf08c1396edb8b81e650b58930ccaef"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 08:57:29 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 08:57:29 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable: (42 commits)\n  Btrfs: hash the btree inode during  fill_super\n  Btrfs: relocate file extents in clusters\n  Btrfs: don\u0027t rename file into dummy directory\n  Btrfs: check size of inode backref before adding hardlink\n  Btrfs: fix releasepage to avoid unlocking extents we haven\u0027t locked\n  Btrfs: Fix test_range_bit for whole file extents\n  Btrfs: fix errors handling cached state in set/clear_extent_bit\n  Btrfs: fix early enospc during balancing\n  Btrfs: deal with NULL space info\n  Btrfs: account for space used by the super mirrors\n  Btrfs: fix extent entry threshold calculation\n  Btrfs: remove dead code\n  Btrfs: fix bitmap size tracking\n  Btrfs: don\u0027t keep retrying a block group if we fail to allocate a cluster\n  Btrfs: make balance code choose more wisely when relocating\n  Btrfs: fix arithmetic error in clone ioctl\n  Btrfs: add snapshot/subvolume destroy ioctl\n  Btrfs: change how subvolumes are organized\n  Btrfs: do not reuse objectid of deleted snapshot/subvol\n  Btrfs: speed up snapshot dropping\n  ...\n"
    },
    {
      "commit": "6c5daf012c9155aafd2c7973e4278766c30dfad0",
      "tree": "33959d7b36d03e1610615641a2940cb2de5e8603",
      "parents": [
        "6d39b27f0ac7e805ae3bd9efa51d7da04bec0360",
        "c08d3b0e33edce28e9cfa7b64f7fe5bdeeb29248"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 08:32:11 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 08:32:11 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:\n  truncate: use new helpers\n  truncate: new helpers\n  fs: fix overflow in sys_mount() for in-kernel calls\n  fs: Make unload_nls() NULL pointer safe\n  freeze_bdev: grab active reference to frozen superblocks\n  freeze_bdev: kill bd_mount_sem\n  exofs: remove BKL from super operations\n  fs/romfs: correct error-handling code\n  vfs: seq_file: add helpers for data filling\n  vfs: remove redundant position check in do_sendfile\n  vfs: change sb-\u003es_maxbytes to a loff_t\n  vfs: explicitly cast s_maxbytes in fiemap_check_ranges\n  libfs: return error code on failed attr set\n  seq_file: return a negative error code when seq_path_root() fails.\n  vfs: optimize touch_time() too\n  vfs: optimization for touch_atime()\n  vfs: split generic_forget_inode() so that hugetlbfs does not have to copy it\n  fs/inode.c: add dev-id and inode number for debugging in init_special_inode()\n  libfs: make simple_read_from_buffer conventional\n"
    },
    {
      "commit": "6d39b27f0ac7e805ae3bd9efa51d7da04bec0360",
      "tree": "21a9cd29a07dd1afe70fe88f1343a0fa0fb0ed26",
      "parents": [
        "a487b6705a811087c182c8cab7e3b5845dfa6ccb",
        "d81165919ebf6e1cb9eeb612150f9287ad414659"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 08:31:04 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 08:31:04 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current:\n  lsm: Use a compressed IPv6 string format in audit events\n  Audit: send signal info if selinux is disabled\n  Audit: rearrange audit_context to save 16 bytes per struct\n  Audit: reorganize struct audit_watch to save 8 bytes\n"
    },
    {
      "commit": "ffa9f12a41ec117207e8d953f90b9c179546c8d7",
      "tree": "c587166a485b631bc8645caec4eff6f2e9f295fe",
      "parents": [
        "a263f7763c364015f92e7c097fa46c6673f6fcb0"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Sep 25 00:32:59 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Sep 25 00:32:59 2009 +0930"
      },
      "message": "module: don\u0027t call percpu_modfree on NULL pointer.\n\nThe general one handles NULL, the static obsolescent\n(CONFIG_HAVE_LEGACY_PER_CPU_AREA) one in module.c doesn\u0027t; Eric\u0027s\ncommit 720eba31 assumed it did, and various frobbings since then kept\nthat assumption.\n\nAll other callers in module.c all protect it with an if; this effectively\ndoes the same as free_init is only goto if we fail percpu_modalloc().\n\nReported-by: Kamalesh Babulal \u003ckamalesh@linux.vnet.ibm.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nCc: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: Américo Wang \u003cxiyou.wangcong@gmail.com\u003e\nTested-by: Kamalesh Babulal \u003ckamalesh@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "a263f7763c364015f92e7c097fa46c6673f6fcb0",
      "tree": "3fecc1a81f60ef71bc59c751f298496f9b0b1da6",
      "parents": [
        "1d7015caa082d465faeae5d6fd1be077ee6dfa87"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Sep 25 00:32:58 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Sep 25 00:32:59 2009 +0930"
      },
      "message": "module: fix memory leak when load fails after srcversion/version allocated\n\nNormally the twisty paths of sysfs will free the attributes, but not if\nwe fail before we hook it into sysfs (which is the last thing we do in\nload_module).\n\n(This sysfs code is a turd, no doubt there are other issues lurking too).\n\nReported-by: Tetsuo Handa \u003cpenguin-kernel@i-love.sakura.ne.jp\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nTested-by: Tetsuo Handa \u003cpenguin-kernel@i-love.sakura.ne.jp\u003e\n"
    },
    {
      "commit": "1d7015caa082d465faeae5d6fd1be077ee6dfa87",
      "tree": "db04698fc032f1a480c12e293558f87643c1533d",
      "parents": [
        "26d052bfce799ef0e7262695b46e3525ca4d381d"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Fri Sep 25 00:32:58 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Sep 25 00:32:58 2009 +0930"
      },
      "message": "module: preferred way to use MODULE_AUTHOR\n\nFor the longest time now we\u0027ve been using multiple MODULE_AUTHOR()\nstatements when a module has more than one author, but the comment here\ndisagrees.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nCc: Jiri Kosina \u003cjkosina@suse.cz\u003e\nCc: Luciano Coelho \u003cluciano.coelho@nokia.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "26d052bfce799ef0e7262695b46e3525ca4d381d",
      "tree": "4244565b8a687f52fa2b7375cc8435fd1bb41e98",
      "parents": [
        "554bdfe5acf3715e87c8d5e25a4f9a896ac9f014"
      ],
      "author": {
        "name": "Peter Oberparleiter",
        "email": "oberpar@linux.vnet.ibm.com",
        "time": "Mon Jul 06 17:11:22 2009 +0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Sep 25 00:32:58 2009 +0930"
      },
      "message": "param: allow whitespace as kernel parameter separator\n\nSome boot mechanisms require that kernel parameters are stored in a\nseparate file which is loaded to memory without further processing\n(e.g. the \"Load from FTP\" method on s390). When such a file contains\nnewline characters, the kernel parameter preceding the newline might\nnot be correctly parsed (due to the newline being stuck to the end of\nthe actual parameter value) which can lead to boot failures.\n\nThis patch improves kernel command line usability in such a situation\nby allowing generic whitespace characters as separators between kernel\nparameters.\n\nSigned-off-by: Peter Oberparleiter \u003coberpar@linux.vnet.ibm.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "554bdfe5acf3715e87c8d5e25a4f9a896ac9f014",
      "tree": "8a03f9799114c8100a3e54d230d9e31703248f7a",
      "parents": [
        "4a4962263f07d14660849ec134ee42b63e95ea9a"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "JBeulich@novell.com",
        "time": "Mon Jul 06 14:51:44 2009 +0100"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Sep 25 00:32:57 2009 +0930"
      },
      "message": "module: reduce string table for loaded modules (v2)\n\nAlso remove all parts of the string table (referenced by the symbol\ntable) that are not needed for kallsyms use (i.e. which were only\nreferenced by symbols discarded by the previous patch, or not\nreferenced at all for whatever reason).\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "4a4962263f07d14660849ec134ee42b63e95ea9a",
      "tree": "0edfe694167c224a6d9e48901743edd478a71c29",
      "parents": [
        "94a8d5caba74211ec76dac80fc6e2d5c391530df"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "JBeulich@novell.com",
        "time": "Mon Jul 06 14:50:42 2009 +0100"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Sep 25 00:32:57 2009 +0930"
      },
      "message": "module: reduce symbol table for loaded modules (v2)\n\nDiscard all symbols not interesting for kallsyms use: absolute,\nsection, and in the common case (!KALLSYMS_ALL) data ones.\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "a487b6705a811087c182c8cab7e3b5845dfa6ccb",
      "tree": "c9c1e41b7105b5ac9de7a74416d15f12433ed6ff",
      "parents": [
        "9f6ac7850a9c6363f4117fd2248e232a2d534627",
        "4b3df5668c8ebaebd8d66a5a94374be3e3b2ef0c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:55:29 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:55:29 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://neil.brown.name/md\n\n* \u0027for-linus\u0027 of git://neil.brown.name/md: (97 commits)\n  md: raid-1/10: fix RW bits manipulation\n  md: remove unnecessary memset from multipath.\n  md: report device as congested when suspended\n  md: Improve name of threads created by md_register_thread\n  md: remove sparse warnings about lock context.\n  md: remove sparse waring \"symbol xxx shadows an earlier one\"\n  async_tx/raid6: add missing dma_unmap calls to the async fail case\n  ioat3: fix uninitialized var warnings\n  drivers/dma/ioat/dma_v2.c: fix warnings\n  raid6test: fix stack overflow\n  ioat2: clarify ring size limits\n  md/raid6: cleanup ops_run_compute6_2\n  md/raid6: eliminate BUG_ON with side effect\n  dca: module load should not be an error message\n  ioat: driver version 4.0\n  dca: registering requesters in multiple dca domains\n  async_tx: remove HIGHMEM64G restriction\n  dmaengine: sh: Add Support SuperH DMA Engine driver\n  dmaengine: Move all map_sg/unmap_sg for slave channel to its client\n  fsldma: Add DMA_SLAVE support\n  ...\n"
    },
    {
      "commit": "9f6ac7850a9c6363f4117fd2248e232a2d534627",
      "tree": "7eac24b3b406f0bc9cb06eb8fe7cd19254275cba",
      "parents": [
        "db16826367fefcb0ddb93d76b66adc52eb4e6339",
        "3f48258e50ef44d92a0e5c69c0cc5e663162d246"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:54:16 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:54:16 2009 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6:\n  V4L/DVB (13039): dib0700: not building CONFIG_DVB_TUNER_DIB0070 breaks compilation\n  V4L/DVB (13038): dvbdev: Remove an anoying/uneeded warning\n  V4L/DVB (13037): go7007: Revert compatibility code added at the wrong place\n  media: video: Fix build in saa7164\n"
    },
    {
      "commit": "db16826367fefcb0ddb93d76b66adc52eb4e6339",
      "tree": "626224c1eb1eb79c522714591f208b4fdbdcd9d4",
      "parents": [
        "cd6045138ed1bb5d8773e940d51c34318eef3ef2",
        "465fdd97cbe16ef8727221857e96ef62dd352017"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:53:22 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:53:22 2009 -0700"
      },
      "message": "Merge branch \u0027hwpoison\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-mce-2.6\n\n* \u0027hwpoison\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-mce-2.6: (21 commits)\n  HWPOISON: Enable error_remove_page on btrfs\n  HWPOISON: Add simple debugfs interface to inject hwpoison on arbitary PFNs\n  HWPOISON: Add madvise() based injector for hardware poisoned pages v4\n  HWPOISON: Enable error_remove_page for NFS\n  HWPOISON: Enable .remove_error_page for migration aware file systems\n  HWPOISON: The high level memory error handler in the VM v7\n  HWPOISON: Add PR_MCE_KILL prctl to control early kill behaviour per process\n  HWPOISON: shmem: call set_page_dirty() with locked page\n  HWPOISON: Define a new error_remove_page address space op for async truncation\n  HWPOISON: Add invalidate_inode_page\n  HWPOISON: Refactor truncate to allow direct truncating of page v2\n  HWPOISON: check and isolate corrupted free pages v2\n  HWPOISON: Handle hardware poisoned pages in try_to_unmap\n  HWPOISON: Use bitmask/action code for try_to_unmap behaviour\n  HWPOISON: x86: Add VM_FAULT_HWPOISON handling to x86 page fault handler v2\n  HWPOISON: Add poison check to page fault handling\n  HWPOISON: Add basic support for poisoned pages in fault handler v3\n  HWPOISON: Add new SIGBUS error codes for hardware poison signals\n  HWPOISON: Add support for poison swap entries v2\n  HWPOISON: Export some rmap vma locking to outside world\n  ...\n"
    },
    {
      "commit": "cd6045138ed1bb5d8773e940d51c34318eef3ef2",
      "tree": "8b50c92193e25c2b6108c738ff925551f36601a4",
      "parents": [
        "d68721eb339e9237c11c1fea5f73f86211d14918"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Wed Sep 23 15:57:43 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:06 2009 -0700"
      },
      "message": "drivers/usb/serial/sierra.c: fix CONFIG_PM\u003dn build\n\ndrivers/usb/serial/sierra.c: In function \u0027sierra_suspend\u0027:\ndrivers/usb/serial/sierra.c:936: error: \u0027struct usb_device\u0027 has no member named \u0027auto_pm\u0027\n\nRepairs\n\ncommit e6929a9020acbeb04d9a3ad9a88234c15be808fd\nAuthor: Oliver Neukum \u003coliver@neukum.org\u003e\nDate:   Fri Sep 4 23:19:53 2009 +0200\n\n    USB: support for autosuspend in sierra while online\n\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: Oliver Neukum \u003coliver@neukum.org\u003e\nCc: Elina Pasheva \u003cepasheva@sierrawireless.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d68721eb339e9237c11c1fea5f73f86211d14918",
      "tree": "6999b5626ba61e17763b2058b83be6bcd57269db",
      "parents": [
        "801460d0cf5c5288153b722565773059b0f44348"
      ],
      "author": {
        "name": "Ivan Kokshaysky",
        "email": "ink@jurassic.park.msu.ru",
        "time": "Wed Sep 23 15:57:42 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:06 2009 -0700"
      },
      "message": "alpha: AGP update (fixes compile failure)\n\nThis brings Alpha AGP platforms in sync with the change to struct\nagp_memory (unsigned long *memory \u003d\u003e struct page **pages).\n\nOnly compile tested (I don\u0027t have titan/marvel hardware), but this change\nlooks pretty straightforward, so hopefully it\u0027s ok.\n\nSigned-off-by: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Dave Airlie \u003cairlied@linux.ie\u003e\nCc: \u003cstable@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": "801460d0cf5c5288153b722565773059b0f44348",
      "tree": "ff2542903572a546ac59e92f295e9a18e718afa0",
      "parents": [
        "2fa4341074cd02fb39aa23410740764948755635"
      ],
      "author": {
        "name": "Hiroshi Shimamoto",
        "email": "h-shimamoto@ct.jp.nec.com",
        "time": "Wed Sep 23 15:57:41 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:05 2009 -0700"
      },
      "message": "task_struct cleanup: move binfmt field to mm_struct\n\nBecause the binfmt is not different between threads in the same process,\nit can be moved from task_struct to mm_struct.  And binfmt moudle is\nhandled per mm_struct instead of task_struct.\n\nSigned-off-by: Hiroshi Shimamoto \u003ch-shimamoto@ct.jp.nec.com\u003e\nAcked-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Roland McGrath \u003croland@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": "2fa4341074cd02fb39aa23410740764948755635",
      "tree": "0b01f80d461ca836c686acf218677568c66abdbe",
      "parents": [
        "6a8811629e9aa611aa710162f9e02020bba52c87"
      ],
      "author": {
        "name": "Albin Tonnerre",
        "email": "albin.tonnerre@free-electrons.com",
        "time": "Wed Sep 23 15:57:38 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:05 2009 -0700"
      },
      "message": "include/linux/unaligned/{l,b}e_byteshift.h: fix usage for compressed kernels\n\nWhen unaligned accesses are required for uncompressing a kernel (such as\nfor LZO decompression on ARM in a patch that follows), including\n\u003clinux/kernel.h\u003e causes issues as it brings in a lot of things that are\nnot available in the decompression environment.\n\nlinux/kernel.h brings at least:\nextern int console_printk[];\nextern const char hex_asc[];\nwhich causes errors at link-time as they are not available when\ncompiling the pre-boot environement. There are also a few others:\n\n  arch/arm/boot/compressed/misc.o: In function `valid_user_regs\u0027:\n   arch/arm/include/asm/ptrace.h:158: undefined reference to `elf_hwcap\u0027\n  arch/arm/boot/compressed/misc.o: In function `console_silent\u0027:\n   include/linux/kernel.h:292: undefined reference to `console_printk\u0027\n  arch/arm/boot/compressed/misc.o: In function `console_verbose\u0027:\n   include/linux/kernel.h:297: undefined reference to `console_printk\u0027\n  arch/arm/boot/compressed/misc.o: In function `pack_hex_byte\u0027:\n   include/linux/kernel.h:360: undefined reference to `hex_asc\u0027\n  arch/arm/boot/compressed/misc.o: In function `hweight_long\u0027:\n   include/linux/bitops.h:45: undefined reference to `hweight32\u0027\n  arch/arm/boot/compressed/misc.o: In function `__cmpxchg_local_generic\u0027:\n   include/asm-generic/cmpxchg-local.h:21: undefined reference to `wrong_size_cmpxchg\u0027\n   include/asm-generic/cmpxchg-local.h:42: undefined reference to `wrong_size_cmpxchg\u0027\n  arch/arm/boot/compressed/misc.o: In function `__xchg\u0027:\n   arch/arm/include/asm/system.h:309: undefined reference to `__bad_xchg\u0027\n\nHowever, those files apparently use nothing from \u003clinux/kernel.h\u003e, all\nthey need is the declaration of types such as u32 or u64, so\n\u003clinux/types.h\u003e should be enough\n\nSigned-off-by: Albin Tonnerre \u003calbin.tonnerre@free-electrons.com\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Phillip Lougher \u003cphillip@lougher.demon.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6a8811629e9aa611aa710162f9e02020bba52c87",
      "tree": "d3b8ff16950f5cda94b3259fbfa097aea9cb1e5f",
      "parents": [
        "3354f73b24c6d392ed7fd5583cfcc7604c1934ae"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@lougher.demon.co.uk",
        "time": "Wed Sep 23 15:57:37 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:05 2009 -0700"
      },
      "message": "lzma/gzip: fix potential oops when input data is truncated\n\nIf the lzma/gzip decompressors are called with insufficient input data\n(len \u003e 0 \u0026 fill \u003d NULL), they will attempt to call the fill function to\nobtain more data, leading to a kernel oops.\n\nSigned-off-by: Phillip Lougher \u003cphillip@lougher.demon.co.uk\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": "3354f73b24c6d392ed7fd5583cfcc7604c1934ae",
      "tree": "b1c72139bef6d31eebcc72af5634f303c5242e69",
      "parents": [
        "a21f3c2a04d8a8d26b4bf3523368380feb8742b7"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Wed Sep 23 15:57:36 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:05 2009 -0700"
      },
      "message": "drivers/vlynq/vlynq.c: fix resource size off by 1 error\n\nIn this case, the calls to request_mem_region, ioremap, and\nrelease_mem_region all have a consistent length argument, len, but since\nin other files (res-\u003eend - res-\u003estart) + 1, equivalent to\nresource_size(res), is used for a resource-typed structure res, one could\nconsider whether the same should be done here.\n\nThe problem was found using the following semantic patch:\n(http://www.emn.fr/x-info/coccinelle/)\n\n// \u003csmpl\u003e\n@@\nstruct resource *res;\n@@\n\n- (res-\u003eend - res-\u003estart) + 1\n+ resource_size(res)\n\n@@\nstruct resource *res;\n@@\n\n- res-\u003eend - res-\u003estart\n+ BAD(resource_size(res))\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nAcked-by: Florian Fainelli \u003cflorian@openwrt.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a21f3c2a04d8a8d26b4bf3523368380feb8742b7",
      "tree": "9cb49488e75959254e49fa03197f548b6ee1e33f",
      "parents": [
        "9e5f1138d76e45b0ce56314ba0587e5942b55dcc"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Wed Sep 23 15:57:35 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:05 2009 -0700"
      },
      "message": "fs/romfs: correct error-handling code\n\nromfs_iget returns an ERR_PTR value in an error case instead of NULL.\n\nA simplified version of the semantic match that finds this problem is as\nfollows: (http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@match exists@\nexpression x, E;\nstatement S1, S2;\n@@\n\nx \u003d romfs_iget(...)\n... when !\u003d x \u003d E\n(\n*  if (x \u003d\u003d NULL || ...) S1 else S2\n|\n*  if (x \u003d\u003d NULL \u0026\u0026 ...) S1 else S2\n)\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9e5f1138d76e45b0ce56314ba0587e5942b55dcc",
      "tree": "992d0406fafc53738f5c1f42b9e28682d3cb5dee",
      "parents": [
        "f8679af874b604db78d59d2a0a873a7f3d542842"
      ],
      "author": {
        "name": "Roel Kluin",
        "email": "roel.kluin@gmail.com",
        "time": "Wed Sep 23 15:57:33 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:05 2009 -0700"
      },
      "message": "gru: allocation may fail in quicktest1()\n\nThe allocation may fail.\n\nSigned-off-by: Roel Kluin \u003croel.kluin@gmail.com\u003e\nAcked-by: Jack Steiner \u003csteiner@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f8679af874b604db78d59d2a0a873a7f3d542842",
      "tree": "06e42d7e155223d20dfb722718d8acc430c5c710",
      "parents": [
        "858f09930b32c11b40fd0c5c467982ba09b10894"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Sep 23 15:57:33 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:05 2009 -0700"
      },
      "message": "gru: use proc_create()\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Jack Steiner \u003csteiner@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "858f09930b32c11b40fd0c5c467982ba09b10894",
      "tree": "43972de84d69d61904f4f24ff78f99a3a82c2ff3",
      "parents": [
        "b873c2f34ecd4a5a69b41b852cbc365694541c5f"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Sep 23 15:57:32 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:05 2009 -0700"
      },
      "message": "aio: ifdef fields in mm_struct\n\n-\u003eioctx_lock and -\u003eioctx_list are used only under CONFIG_AIO.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Zach Brown \u003czach.brown@oracle.com\u003e\nCc: Benjamin LaHaise \u003cbcrl@kvack.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b873c2f34ecd4a5a69b41b852cbc365694541c5f",
      "tree": "01daaa2aadfa8e88206129ee13d363d009df5a51",
      "parents": [
        "3886de938cc23d5208a34064d8363d6d7b54b461"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jirislaby@gmail.com",
        "time": "Wed Sep 23 15:57:31 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:05 2009 -0700"
      },
      "message": "memstick: move dev_dbg\n\nid_reg.if_mode might be unitialized when (*mrq)-\u003eerror is nonzero.  move\ndev_dbg() inside the if so that we are sure we can use id_reg values.\n\nSigned-off-by: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nCc: Alex Dubov \u003coakad@yahoo.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3886de938cc23d5208a34064d8363d6d7b54b461",
      "tree": "8a01235eb668c9eb0d3ec200fe26bfc7c0834ba1",
      "parents": [
        "458e5ff13e1bed050990d97e9aa55bcdafc951a7"
      ],
      "author": {
        "name": "Roel Kluin",
        "email": "roel.kluin@gmail.com",
        "time": "Wed Sep 23 15:57:30 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:05 2009 -0700"
      },
      "message": "adfs: remove redundant test on unsigned\n\nunsigned block cannot be less than 0.\n\nSigned-off-by: Roel Kluin \u003croel.kluin@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": "458e5ff13e1bed050990d97e9aa55bcdafc951a7",
      "tree": "521d837beabe5265f070351a8ea42d48408ec5d7",
      "parents": [
        "dd8ef1db87a486577b3a76e6ad45df52e12d0145"
      ],
      "author": {
        "name": "Jesper Dangaard Brouer",
        "email": "hawk@comx.dk",
        "time": "Wed Sep 23 15:57:29 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:05 2009 -0700"
      },
      "message": "edac: core: remove completion-wait for complete with rcu_barrier\n\nModule edac_core.ko uses call_rcu() callbacks in edac_device.c, edac_mc.c\nand edac_pci.c.\n\nThey all use a wait_for_completion() scheme, but this scheme it not 100%\nsafe on multiple CPUs.  See the _rcu_barrier() implementation which\nexplains why extra precausion is needed.\n\nThe patch adds a comment about rcu_barrier() and as a precausion calls\nrcu_barrier().  A maintainer needs to look at removing the\nwait_for_completion code.\n\n[dougthompson@xmission.com: remove the wait_for_completion code]\nSigned-off-by Jesper Dangaard Brouer \u003chawk@comx.dk\u003e\nSigned-off-by: Doug Thompson \u003cdougthompson@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": "dd8ef1db87a486577b3a76e6ad45df52e12d0145",
      "tree": "66d3c2f464743d8f9a1b19c9f709fb4782db0769",
      "parents": [
        "30a61fff3a2b19506c66ea81fecb6a7747af3d47"
      ],
      "author": {
        "name": "Jason Uhlenkott",
        "email": "juhlenko@akamai.com",
        "time": "Wed Sep 23 15:57:27 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:04 2009 -0700"
      },
      "message": "edac: i3200 memory controller driver\n\nA driver for the Intel 3200 and 3210 memory controllers.  It has only had\nlight testing so far, and currently makes no attempt to decode error\naddresses at anything finer than csrow granularity.\n\nSigned-off-by: Jason Uhlenkott \u003cjuhlenko@akamai.com\u003e\nSigned-off-by: Doug Thompson \u003cdougthompson@xmission.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\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": "30a61fff3a2b19506c66ea81fecb6a7747af3d47",
      "tree": "541f2337616caa095e517af0d4a0549a174818bd",
      "parents": [
        "b4846251727a38a7f248e41308c060995371dd05"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Wed Sep 23 15:57:26 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:04 2009 -0700"
      },
      "message": "edac: fix resource size calculation\n\nUse the function resource_size, which reduces the chance of introducing\noff-by-one errors in calculating the resource size.\n\nThe semantic patch that makes this change is as follows:\n(http://www.emn.fr/x-info/coccinelle/)\n\n// \u003csmpl\u003e\n@@\nstruct resource *res;\n@@\n\n- (res-\u003eend - res-\u003estart) + 1\n+ resource_size(res)\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nSigned-off-by: Doug Thompson \u003cdougthompson@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": "b4846251727a38a7f248e41308c060995371dd05",
      "tree": "6fc1356be42c88ce3dfc373a8eb9fd97ed1377f7",
      "parents": [
        "a014554e667d702a3a7ae1cf500ebd358e7991be"
      ],
      "author": {
        "name": "Ira W. Snyder",
        "email": "iws@ovro.caltech.edu",
        "time": "Wed Sep 23 15:57:25 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:04 2009 -0700"
      },
      "message": "edac: mpc85xx add mpc83xx support\n\nAdd support for the Freescale MPC83xx memory controller to the existing\ndriver for the Freescale MPC85xx memory controller.  The only difference\nbetween the two processors are in the CS_BNDS register parsing code, which\nhas been changed so it will work on both processors.\n\nThe L2 cache controller does not exist on the MPC83xx, but the OF\nsubsystem will not use the driver if the device is not present in the OF\ndevice tree.\n\nI had to change the nr_pages calculation to make the math work out.  I\nchecked it on my board and did the math by hand for a 64GB 85xx using 64K\npages.  In both cases, nr_pages * PAGE_SIZE comes out to the correct\nvalue.\n\nSigned-off-by: Ira W. Snyder \u003ciws@ovro.caltech.edu\u003e\nSigned-off-by: Doug Thompson \u003cdougthompson@xmission.com\u003e\nCc: Kumar Gala \u003cgalak@gate.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a014554e667d702a3a7ae1cf500ebd358e7991be",
      "tree": "d9e6685ddff49dbb2af0a2f1f3fc71f165b66f5a",
      "parents": [
        "9064a6787aa1d8ceaf5ba16fe1dfedb0755dc7eb"
      ],
      "author": {
        "name": "Yang Shi",
        "email": "yang.shi@windriver.com",
        "time": "Wed Sep 23 15:57:24 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:04 2009 -0700"
      },
      "message": "edac: mpc85xx add P2020DS support\n\nBased on Kumar\u0027s new compatible types patch, add P2020 into MPC85xx EDAC\ncompatible lists so that EDAC can recognize P2020 meomry controller and L2\ncache controller and export the relevant fields to sysfs.\n\nEDAC MPC85xx DDR3 support is needed if DDR3 memory stick is installed on a\nP2020DS board so that EDAC core can recognize DDR3 memory type.\n\nSigned-off-by: Yang Shi \u003cyang.shi@windriver.com\u003e\nAcked-by: Dave Jiang \u003cdjiang@mvista.com\u003e\nSigned-off-by: Doug Thompson \u003cdougthompson@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": "9064a6787aa1d8ceaf5ba16fe1dfedb0755dc7eb",
      "tree": "9d9e556b736a5e91edfddaebd478d453a2392b81",
      "parents": [
        "e5a4738699d6eca408dcb225bd350413927701e2"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Wed Sep 23 15:57:23 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:04 2009 -0700"
      },
      "message": "linux/futex.h: place kernel types behind __KERNEL__\n\nThe forward decls for some kernel types are only needed by the code behind\n__KERNEL__, so don\u0027t bleed these types to userspace.\n\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e5a4738699d6eca408dcb225bd350413927701e2",
      "tree": "1a24e5d7d5eb85affbaf435dbe626ba0a401bb62",
      "parents": [
        "123be07b0b399670a7cc3d82fef0cb4f93ef885c"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@linux.vnet.ibm.com",
        "time": "Wed Sep 23 15:57:22 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:04 2009 -0700"
      },
      "message": "pidns: deny CLONE_PARENT|CLONE_NEWPID combination\n\nCLONE_PARENT was used to implement an older threading model.  For\nconsistency with the CLONE_THREAD check in copy_pid_ns(), disable\nCLONE_PARENT with CLONE_NEWPID, at least until the required semantics of\npid namespaces are clear.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Oren Laadan \u003corenl@cs.columbia.edu\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": "123be07b0b399670a7cc3d82fef0cb4f93ef885c",
      "tree": "b6edc440be85cf312f7c35ad7b01c7ce7d9241a7",
      "parents": [
        "8d65af789f3e2cf4cfbdbf71a0f7a61ebcd41d38"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@linux.vnet.ibm.com",
        "time": "Wed Sep 23 15:57:20 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:04 2009 -0700"
      },
      "message": "fork(): disable CLONE_PARENT for init\n\nWhen global or container-init processes use CLONE_PARENT, they create a\nmulti-rooted process tree.  Besides siblings of global init remain as\nzombies on exit since they are not reaped by their parent (swapper).  So\nprevent global and container-inits from creating siblings.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nAcked-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oren Laadan \u003corenl@cs.columbia.edu\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8d65af789f3e2cf4cfbdbf71a0f7a61ebcd41d38",
      "tree": "121df3bfffc7853ac6d2c514ad514d4a748a0933",
      "parents": [
        "c0d0787b6d47d9f4d5e8bd321921104e854a9135"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Sep 23 15:57:19 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:04 2009 -0700"
      },
      "message": "sysctl: remove \"struct file *\" argument of -\u003eproc_handler\n\nIt\u0027s unused.\n\nIt isn\u0027t needed -- read or write flag is already passed and sysctl\nshouldn\u0027t care about the rest.\n\nIt _was_ used in two places at arch/frv for some reason.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c0d0787b6d47d9f4d5e8bd321921104e854a9135",
      "tree": "20f78b94c9ec22775903dcf7f2f92de3b5a00638",
      "parents": [
        "156dd635e26ab2b356be139ec4b5651afd3805e2"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Wed Sep 23 15:57:17 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:03 2009 -0700"
      },
      "message": "MAINTAINERS: add Matt Mackall and Herbert Xu to HARDWARE RANDOM NUMBER GENERATOR\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nCc: David Daney \u003cddaney@caviumnetworks.com\u003e\nCc: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "156dd635e26ab2b356be139ec4b5651afd3805e2",
      "tree": "5bf47aea1c4eb9129e044402bd12be9b0ad1cb9a",
      "parents": [
        "fbd8ae106850b6a0215c2776e70a75a1b93cafc2"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Wed Sep 23 15:57:16 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:03 2009 -0700"
      },
      "message": "bfin-otp: add writing support\n\nThe on-chip OTP may be written at runtime, so enable support for it in the\ndriver.  However, since writing should really be done only on development\nsystems, don\u0027t bend over backwards to make sure the simple software lock\nis per-fd -- per-device is OK.\n\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Bryan Wu \u003ccooloney@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": "fbd8ae106850b6a0215c2776e70a75a1b93cafc2",
      "tree": "88c63571c3daf7da4ce5779db4b12e99c9d90dff",
      "parents": [
        "459ca8b4ed1889b0a69bbe21888e6af136d495f3"
      ],
      "author": {
        "name": "Dimitri Sivanich",
        "email": "sivanich@sgi.com",
        "time": "Wed Sep 23 15:57:15 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:03 2009 -0700"
      },
      "message": "drivers/char/uv_mmtimer.c: add memory mapped RTC driver for UV\n\nThis driver memory maps the UV Hub RTC.\n\nSigned-off-by: Dimitri Sivanich \u003csivanich@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "459ca8b4ed1889b0a69bbe21888e6af136d495f3",
      "tree": "c83e78fe8da1c42e45ea5fcdbee2b93469f2bf3b",
      "parents": [
        "ae21cf9248584d9b3776bfe2ebec47256bf098f8"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Wed Sep 23 15:57:14 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:03 2009 -0700"
      },
      "message": "drivers/char/rio/rioctrl.c: off by one error in rioctrl.c\n\nIf DownLoad.ProductCode \u003d\u003d MAX_PRODUCT, that would be a problem when we do\nRIOBootTable[DownLoad.ProductCode] a couple lines down.\n\nFound by smatch (http://repo.or.cz/w/smatch.git).\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nCc: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ae21cf9248584d9b3776bfe2ebec47256bf098f8",
      "tree": "2f32a87f8e23c70d7fc9f73bc58195510df4561d",
      "parents": [
        "dc80df567dd04738ee8b3922feacf099ae81645e"
      ],
      "author": {
        "name": "Nils Carlson",
        "email": "nils.carlson@ericsson.com",
        "time": "Wed Sep 23 15:57:13 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:03 2009 -0700"
      },
      "message": "hpet: hpet driver periodic timer setup bug fixes\n\nThe periodic interrupt from drivers/char/hpet.c does not work correctly,\nboth when using the periodic capability of the hardware and while\nemulating the periodic interrupt (when hardware does not support periodic\nmode).\n\nWith timers capable of periodic interrupts, the comparator field is first\nset with the period value followed by set of hidden accumulator, which has\nthe side effect of overwriting the comparator value.  This results in\nwrong periodicity for the interrupts.  For, periodic interrupts to work,\nfollowing steps are necessary, in that order.\n\n* Set config with Tn_VAL_SET_CNF bit\n\n* Write to hidden accumulator, the value written is the time when the\n  first interrupt should be generated\n\n* Write compartor with period interval for subsequent interrupts\n  (http://www.intel.com/hardwaredesign/hpetspec_1.pdf )\n\nWhen emulating periodic timer with timers not capable of periodic\ninterrupt, driver is adding the period to counter value instead of\ncomparator value, which causes slow drift when using this emulation.\n\nAlso, driver seems to add hpetp-\u003ehp_delta both while setting up periodic\ninterrupt and while emulating periodic interrupts with timers not capable\nof doing periodic interrupts.  This hp_delta will result in slower than\nexpected interrupt rate and should not be used while setting the interval.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nSigned-off-by: Nils Carlson \u003cnils.carlson@ericsson.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dc80df567dd04738ee8b3922feacf099ae81645e",
      "tree": "709c209b063b72ed2c152ebfe3240210f1b2937e",
      "parents": [
        "dd5d81f326da8d151939b833993b799c0d0d1d6e"
      ],
      "author": {
        "name": "Roel Kluin",
        "email": "roel.kluin@gmail.com",
        "time": "Wed Sep 23 15:57:11 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:03 2009 -0700"
      },
      "message": "mwave: fix read buffer overflow\n\nCheck whether index is within bounds before grabbing the element.\n\nSigned-off-by: Roel Kluin \u003croel.kluin@gmail.com\u003e\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nCc: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dd5d81f326da8d151939b833993b799c0d0d1d6e",
      "tree": "068f6c1ca7386d6da9bc353b2b62dc6fc01e32bd",
      "parents": [
        "bb521c5de070b86a1e049e2dbf62328f717ff1e8"
      ],
      "author": {
        "name": "Renzo Davoli",
        "email": "renzo@cs.unibo.it",
        "time": "Wed Sep 23 15:57:10 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:03 2009 -0700"
      },
      "message": "fs/char_dev.c: remove useless loop\n\nThere are two useless lines in fs/char_dev.c.\n\nIn register_chrdev there is a loop to change all \u0027/\u0027 into \u0027!\u0027 in the\nkernel object name.\nThis code is useless as the same substitution is in kobject_set_name_vargs in\nlib/kobject.c:\n228         /* ewww... some of these buggers have \u0027/\u0027 in the name ... */\n229         while ((s \u003d strchr(kobj-\u003ename, \u0027/\u0027)))\n230                 s[0] \u003d \u0027!\u0027;\n\nkobject_set_name_vargs is called by kobject_set_name.\nkobject_set_name is called just above the useless loop.\n\n[hidave.darkstar@gmail.com: fix warning, remove the unused char *s]\nSigned-off-by: Renzo Davoli \u003crenzo@cs.unibo.it\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Dave Young \u003chidave.darkstar@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": "bb521c5de070b86a1e049e2dbf62328f717ff1e8",
      "tree": "e2a4416f35e84873f75c0e86ebae5552cf4ae2b2",
      "parents": [
        "0b8c78f2bfa6ebed0f47794b5995a0d4b3fe456d"
      ],
      "author": {
        "name": "Nikanth Karthikesan",
        "email": "knikanth@suse.de",
        "time": "Wed Sep 23 15:57:09 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:03 2009 -0700"
      },
      "message": "/dev/zero: avoid repeated access_ok() checks\n\nIn read_zero, we check for access_ok() once for the count bytes.  It is\nunnecessarily checked again in clear_user.  Use __clear_user, which does\nnot check for access_ok().\n\nSigned-off-by: Nikanth Karthikesan \u003cknikanth@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0b8c78f2bfa6ebed0f47794b5995a0d4b3fe456d",
      "tree": "ee8d1b3f8bd3cab2deebede1d1aa48609ea3d50a",
      "parents": [
        "8e8b63a68c7ec95ef23770813120f4f98c76e08b"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Wed Sep 23 15:57:07 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:03 2009 -0700"
      },
      "message": "flat: use IS_ERR_VALUE() helper macro\n\nThere is a common macro now for testing mixed pointer/errno values, so use\nthat rather than handling the casts ourself.\n\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nAcked-by: David McCullough \u003cdavid_mccullough@securecomputing.com\u003e\nAcked-by: Greg Ungerer \u003cgerg@uclinux.org\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8e8b63a68c7ec95ef23770813120f4f98c76e08b",
      "tree": "82339b06388b2002557ec5fab7dcfa72c918b3c6",
      "parents": [
        "0cf062d0ffa33d491e2695b0d298ccf9cbb58d3d"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Sep 23 15:57:06 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:02 2009 -0700"
      },
      "message": "fdpic: ignore the loader\u0027s PT_GNU_STACK when calculating the stack size\n\nIgnore the loader\u0027s PT_GNU_STACK when calculating the stack size, and only\nconsider the executable\u0027s PT_GNU_STACK, assuming the executable has one.\n\nCurrently the behaviour is to take the largest stack size and use that,\nbut that means you can\u0027t reduce the stack size in the executable.  The\nloader\u0027s stack size should probably only be used when executing the loader\ndirectly.\n\nWARNING: This patch is slightly dangerous - it may render a system\ninoperable if the loader\u0027s stack size is larger than that of important\nexecutables, and the system relies unknowingly on this increasing the size\nof the stack.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nAcked-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0cf062d0ffa33d491e2695b0d298ccf9cbb58d3d",
      "tree": "f936d4c0a9ee6c15f76266d5d0b9cbdec3cafc8c",
      "parents": [
        "d9588725e52650e82989707f8fd2feb67ad2dc8e"
      ],
      "author": {
        "name": "Amerigo Wang",
        "email": "amwang@redhat.com",
        "time": "Wed Sep 23 15:57:05 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:01 2009 -0700"
      },
      "message": "elf: clean up fill_note_info()\n\nIntroduce a helper function elf_note_info_init() to help fill_note_info()\nto do initializations, also fix the potential memory leaks.\n\n[akpm@linux-foundation.org: remove NUM_NOTES]\nSigned-off-by: WANG Cong \u003camwang@redhat.com\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Roland McGrath \u003croland@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": "d9588725e52650e82989707f8fd2feb67ad2dc8e",
      "tree": "39a9f9f5e8ba6a6e008b9ada310347e24ede400e",
      "parents": [
        "ba0a6c9f6fceed11c6a99e8326f0477fe383e6b5"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Wed Sep 23 15:57:04 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:01 2009 -0700"
      },
      "message": "signals: inline __fatal_signal_pending\n\n__fatal_signal_pending inlines to one instruction on x86, probably two\ninstructions on other machines.  It takes two longer x86 instructions just\nto call it and test its return value, not to mention the function itself.\n\nOn my random x86_64 config, this saved 70 bytes of text (59 of those being\n__fatal_signal_pending itself).\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\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": "ba0a6c9f6fceed11c6a99e8326f0477fe383e6b5",
      "tree": "5c9967735f19b7b3332de90cae2cdd6c4457d30c",
      "parents": [
        "06f1631a1671bce2d59d58cb1debdf23e1803ebf"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Sep 23 15:57:03 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:01 2009 -0700"
      },
      "message": "fcntl: add F_[SG]ETOWN_EX\n\nIn order to direct the SIGIO signal to a particular thread of a\nmulti-threaded application we cannot, like suggested by the manpage, put a\nTID into the regular fcntl(F_SETOWN) call.  It will still be send to the\nwhole process of which that thread is part.\n\nSince people do want to properly direct SIGIO we introduce F_SETOWN_EX.\n\nThe need to direct SIGIO comes from self-monitoring profiling such as with\nperf-counters.  Perf-counters uses SIGIO to notify that new sample data is\navailable.  If the signal is delivered to the same task that generated the\nnew sample it can augment that data by inspecting the task\u0027s user-space\nstate right after it returns from the kernel.  This is esp.  convenient\nfor interpreted or virtual machine driven environments.\n\nBoth F_SETOWN_EX and F_GETOWN_EX take a pointer to a struct f_owner_ex\nas argument:\n\nstruct f_owner_ex {\n\tint   type;\n\tpid_t pid;\n};\n\nWhere type is one of F_OWNER_TID, F_OWNER_PID or F_OWNER_GID.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nReviewed-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nTested-by: stephane eranian \u003ceranian@googlemail.com\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@googlemail.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "06f1631a1671bce2d59d58cb1debdf23e1803ebf",
      "tree": "d1c5cc02d8ceff4c50c098dce957ad63a09e84a5",
      "parents": [
        "4a30debfb778240a4b1767d4b0c5a5b25ab97160"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Sep 23 15:57:01 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:01 2009 -0700"
      },
      "message": "signals: send_sigio: use do_send_sig_info() to avoid check_kill_permission()\n\ngroup_send_sig_info()-\u003echeck_kill_permission() assumes that current is the\nsender and uses current_cred().\n\nThis is not true in send_sigio_to_task() case.  From the security pov the\nsender is not current, but the task which did fcntl(F_SETOWN), that is why\nwe have sigio_perm() which uses the right creds to check.\n\nFortunately, send_sigio() always sends either SEND_SIG_PRIV or\nSI_FROMKERNEL() signal, so check_kill_permission() does nothing.  But\nstill it would be tidier to avoid this bogus security check and save a\ncouple of cycles.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: stephane eranian \u003ceranian@googlemail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Roland McGrath \u003croland@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": "4a30debfb778240a4b1767d4b0c5a5b25ab97160",
      "tree": "bc4fed4ebb8368ebbfa719a004b15101b0a71d53",
      "parents": [
        "964ee7df90d799e38fb1556c57cd5c45fc736436"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Sep 23 15:57:00 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:01 2009 -0700"
      },
      "message": "signals: introduce do_send_sig_info() helper\n\nIntroduce do_send_sig_info() and convert group_send_sig_info(),\nsend_sig_info(), do_send_specific() to use this helper.\n\nHopefully it will have more users soon, it allows to specify\nspecific/group behaviour via \"bool group\" argument.\n\nShaves 80 bytes from .text.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: stephane eranian \u003ceranian@googlemail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Roland McGrath \u003croland@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": "964ee7df90d799e38fb1556c57cd5c45fc736436",
      "tree": "58ae7325f80394cb86409d5876c710376dde8e1a",
      "parents": [
        "61be228a06dc6e8662f30e89eda3c12083c1f379"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Sep 23 15:56:59 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:01 2009 -0700"
      },
      "message": "exec: fix set_binfmt() vs sys_delete_module() race\n\nsys_delete_module() can set MODULE_STATE_GOING after\nsearch_binary_handler() does try_module_get().  In this case\nset_binfmt()-\u003etry_module_get() fails but since none of the callers\ncheck the returned error, the task will run with the wrong old\n-\u003ebinfmt.\n\nThe proper fix should change all -\u003eload_binary() methods, but we can\nrely on fact that the caller must hold a reference to binfmt-\u003emodule\nand use __module_get() which never fails.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Hiroshi Shimamoto \u003ch-shimamoto@ct.jp.nec.com\u003e\nCc: Roland McGrath \u003croland@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": "61be228a06dc6e8662f30e89eda3c12083c1f379",
      "tree": "be481a4f2dcb2ab4fded8d72d42601e360fc89df",
      "parents": [
        "a293980c2e261bd5b0d2a77340dd04f684caff58"
      ],
      "author": {
        "name": "Neil Horman",
        "email": "nhorman@tuxdriver.com",
        "time": "Wed Sep 23 15:56:58 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:00 2009 -0700"
      },
      "message": "exec: allow do_coredump() to wait for user space pipe readers to complete\n\nAllow core_pattern pipes to wait for user space to complete\n\nOne of the things that user space processes like to do is look at metadata\nfor a crashing process in their /proc/\u003cpid\u003e directory.  this is racy\nhowever, since do_coredump in the kernel doesn\u0027t wait for the user space\nprocess to complete before it reaps the crashing process.  This patch\ncorrects that.  Allowing the kernel to wait for the user space process to\ncomplete before cleaning up the crashing process.  This is a bit tricky to\ndo for a few reasons:\n\n1) The user space process isn\u0027t our child, so we can\u0027t sys_wait4 on it\n2) We need to close the pipe before waiting for the user process to complete,\nsince the user process may rely on an EOF condition\n\nI\u0027ve discussed several solutions with Oleg Nesterov off-list about this,\nand this is the one we\u0027ve come up with.  We add ourselves as a pipe reader\n(to prevent premature cleanup of the pipe_inode_info), and remove\nourselves as a writer (to provide an EOF condition to the writer in user\nspace), then we iterate until the user space process exits (which we\ndetect by pipe-\u003ereaders \u003d\u003d 1, hence the \u003e 1 check in the loop).  When we\nexit the loop, we restore the proper reader/writer values, then we return\nand let filp_close in do_coredump clean up the pipe data properly.\n\nSigned-off-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nReported-by: Earl Chew \u003cearl_chew@agilent.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a293980c2e261bd5b0d2a77340dd04f684caff58",
      "tree": "69f2b2747548deafb146c18953ebce21ae1f02d4",
      "parents": [
        "725eae32df7754044809973034429a47e6035158"
      ],
      "author": {
        "name": "Neil Horman",
        "email": "nhorman@tuxdriver.com",
        "time": "Wed Sep 23 15:56:56 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:00 2009 -0700"
      },
      "message": "exec: let do_coredump() limit the number of concurrent dumps to pipes\n\nIntroduce core pipe limiting sysctl.\n\nSince we can dump cores to pipe, rather than directly to the filesystem,\nwe create a condition in which a user can create a very high load on the\nsystem simply by running bad applications.\n\nIf the pipe reader specified in core_pattern is poorly written, we can\nhave lots of ourstandig resources and processes in the system.\n\nThis sysctl introduces an ability to limit that resource consumption.\ncore_pipe_limit defines how many in-flight dumps may be run in parallel,\ndumps beyond this value are skipped and a note is made in the kernel log.\nA special value of 0 in core_pipe_limit denotes unlimited core dumps may\nbe handled (this is the default value).\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nReported-by: Earl Chew \u003cearl_chew@agilent.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "725eae32df7754044809973034429a47e6035158",
      "tree": "96a66c65a085940a19374ee02c26fb8f1931a6be",
      "parents": [
        "ae6d2ed7bb3877ff35b9569402025f40ea2e1803"
      ],
      "author": {
        "name": "Neil Horman",
        "email": "nhorman@tuxdriver.com",
        "time": "Wed Sep 23 15:56:54 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:00 2009 -0700"
      },
      "message": "exec: make do_coredump() more resilient to recursive crashes\n\nChange how we detect recursive dumps.\n\nCurrently we have a mechanism by which we try to compare pathnames of the\ncrashing process to the core_pattern path.  This is broken for a dozen\nreasons, and just doesn\u0027t work in any sort of robust way.\n\nI\u0027m replacing it with the use of a 0 RLIMIT_CORE value.  Since helper apps\nset RLIMIT_CORE to zero, we don\u0027t write out core files for any process\nwith that particular limit set.  It the core_pattern is a pipe, any\nnon-zero limit is translated to RLIM_INFINITY.\n\nThis allows complete dumps to be captured, but prevents infinite recursion\nin the event that the core_pattern process itself crashes.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nReported-by: Earl Chew \u003cearl_chew@agilent.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ae6d2ed7bb3877ff35b9569402025f40ea2e1803",
      "tree": "80527061ab7615cd890236b777b2be6e909a1573",
      "parents": [
        "b6fe2d117e98805ee76352e6468f87d494a97292"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Wed Sep 23 15:56:53 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:00 2009 -0700"
      },
      "message": "signals: tracehook_notify_jctl change\n\nThis changes tracehook_notify_jctl() so it\u0027s called with the siglock held,\nand changes its argument and return value definition.  These clean-ups\nmake it a better fit for what new tracing hooks need to check.\n\nTracing needs the siglock here, held from the time TASK_STOPPED was set,\nto avoid potential SIGCONT races if it wants to allow any blocking in its\ntracing hooks.\n\nThis also folds the finish_stop() function into its caller\ndo_signal_stop().  The function is short, called only once and only\nunconditionally.  It aids readability to fold it in.\n\n[oleg@redhat.com: do not call tracehook_notify_jctl() in TASK_STOPPED state]\n[oleg@redhat.com: introduce tracehook_finish_jctl() helper]\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: 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": "b6fe2d117e98805ee76352e6468f87d494a97292",
      "tree": "3de99eb7652647000b53bca1f6ea740c926ccfca",
      "parents": [
        "dfe16dfa4ac178d9a10b489a73d535c6976e48d2"
      ],
      "author": {
        "name": "Vitaly Mayatskikh",
        "email": "v.mayatskih@gmail.com",
        "time": "Wed Sep 23 15:56:52 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:00 2009 -0700"
      },
      "message": "wait_noreap_copyout(): check for -\u003ewo_info !\u003d NULL\n\nCurrent behaviour of sys_waitid() looks odd.  If user passes infop \u003d\u003d\nNULL, sys_waitid() returns success.  When user additionally specifies flag\nWNOWAIT, sys_waitid() returns -EFAULT on the same conditions.  When user\ncombines WNOWAIT with WCONTINUED, sys_waitid() again returns success.\n\nThis patch adds check for -\u003ewo_info in wait_noreap_copyout().\n\nUser-visible change: starting from this commit, sys_waitid() always checks\ninfop !\u003d NULL and does not fail if it is NULL.\n\nSigned-off-by: Vitaly Mayatskikh \u003cv.mayatskih@gmail.com\u003e\nReviewed-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Roland McGrath \u003croland@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": "dfe16dfa4ac178d9a10b489a73d535c6976e48d2",
      "tree": "0ebd7bddf7e99915baed4955faeed2af5bba4203",
      "parents": [
        "b6e763f07fba6243d2a553ed9a4f3e10a789932a"
      ],
      "author": {
        "name": "Vitaly Mayatskikh",
        "email": "v.mayatskih@gmail.com",
        "time": "Wed Sep 23 15:56:51 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:00 2009 -0700"
      },
      "message": "do_wait: fix sys_waitid()-specific behaviour\n\ndo_wait() checks -\u003ewo_info to figure out who is the caller.  If it\u0027s not\nNULL the caller should be sys_waitid(), in that case do_wait() fixes up\nthe retval or zeros -\u003ewo_info, depending on retval from underlying\nfunction.\n\nThis is bug: user can pass -\u003ewo_info \u003d\u003d NULL and sys_waitid() will return\nincorrect value.\n\nman 2 waitid says:\n\n\twaitid(): returns 0 on success\n\nTest-case:\n\n\tint main(void)\n\t{\n\t\tif (fork())\n\t\t\tassert(waitid(P_ALL, 0, NULL, WEXITED) \u003d\u003d 0);\n\n\t\treturn 0;\n\t}\n\nResult:\n\n\tAssertion `waitid(P_ALL, 0, ((void *)0), 4) \u003d\u003d 0\u0027 failed.\n\nMove that code to sys_waitid().\n\nUser-visible change: sys_waitid() will return 0 on success, either\ninfop is set or not.\n\nNote, there\u0027s another bug in wait_noreap_copyout() which affects\nreturn value of sys_waitid(). It will be fixed in next patch.\n\nSigned-off-by: Vitaly Mayatskikh \u003cv.mayatskih@gmail.com\u003e\nReviewed-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Roland McGrath \u003croland@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": "b6e763f07fba6243d2a553ed9a4f3e10a789932a",
      "tree": "10f2f4c8dc44400eb8e1ac1d4875b517f02f4f17",
      "parents": [
        "989264f4645c183331a1279d513f4b1ddc06e1f5"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Sep 23 15:56:50 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:00 2009 -0700"
      },
      "message": "wait_consider_task: kill \"parent\" argument\n\nKill the unused \"parent\" argument in wait_consider_task(), it was never used.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Ratan Nalumasu \u003crnalumasu@gmail.com\u003e\nCc: Vitaly Mayatskikh \u003cvmayatsk@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": "989264f4645c183331a1279d513f4b1ddc06e1f5",
      "tree": "44dc1d6ae0ba66229a6b9e85ac22a3edc87a4b8d",
      "parents": [
        "5c01ba49e6647d86bc7576105f82027200d1f303"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Sep 23 15:56:49 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:00 2009 -0700"
      },
      "message": "do_wait-wakeup-optimization: simplify task_pid_type()\n\ntask_pid_type() is only used by eligible_pid() which has to check wo_type\n!\u003d PIDTYPE_MAX anyway.  Remove this check from task_pid_type() and factor\nout -\u003epids[type] access, this shrinks .text a bit and simplifies the code.\n\nThe matches the behaviour of other similar helpers, say get_task_pid().\nThe caller must ensure that pid_type is valid, not the callee.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5c01ba49e6647d86bc7576105f82027200d1f303",
      "tree": "700aa5dbda7c726e8b60803225587a1bc4fdbdb5",
      "parents": [
        "b4fe51823d797d6959b2eee7868023e61606daa9"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Sep 23 15:56:48 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:00 2009 -0700"
      },
      "message": "do_wait-wakeup-optimization: fix child_wait_callback()-\u003eeligible_child() usage\n\nchild_wait_callback()-\u003eeligible_child() is not right, we can miss the\nwakeup if the task was detached before __wake_up_parent() and the caller\nof do_wait() didn\u0027t use __WALL.\n\nMove -\u003ewo_pid checks from eligible_child() to the new helper,\neligible_pid(), and change child_wait_callback() to use it instead of\neligible_child().\n\nNote: actually I think it would be better to fix the __WCLONE check in\neligible_child(), it doesn\u0027t look exactly right.  But it is not clear what\nis the supposed behaviour, and any change is user-visible.\n\nReported-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nTested-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Roland McGrath \u003croland@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": "b4fe51823d797d6959b2eee7868023e61606daa9",
      "tree": "e078feaa1cdfbbdc98b5f5f668fecc37c1907b2e",
      "parents": [
        "0b7570e77f7c3abd43107dabc47ea89daf9a1cba"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Sep 23 15:56:47 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:00 2009 -0700"
      },
      "message": "do_wait() wakeup optimization: child_wait_callback: check __WNOTHREAD case\n\nSuggested by Roland.\n\ndo_wait(__WNOTHREAD) can only succeed if the caller is either ptracer, or\nit is -\u003ereal_parent and the child is not traced. IOW, caller \u003d\u003d p-\u003eparent\notherwise we should not wake up.\n\nChange child_wait_callback() to check this. Ratan reports the workload with\nCPU load \u003e99% caused by unnecessary wakeups, should be fixed by this patch.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Ratan Nalumasu \u003crnalumasu@gmail.com\u003e\nCc: Vitaly Mayatskikh \u003cvmayatsk@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": "0b7570e77f7c3abd43107dabc47ea89daf9a1cba",
      "tree": "8dd93b4a189b4e98384d4470a289ecfb7818cc26",
      "parents": [
        "a2322e1d272938d192d8c24cdacf57c0c7a2683f"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Sep 23 15:56:46 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:20:59 2009 -0700"
      },
      "message": "do_wait() wakeup optimization: change __wake_up_parent() to use filtered wakeup\n\nRatan Nalumasu reported that in a process with many threads doing\nunnecessary wakeups.  Every waiting thread in the process wakes up to loop\nthrough the children and see that the only ones it cares about are still\nnot ready.\n\nNow that we have struct wait_opts we can change do_wait/__wake_up_parent\nto use filtered wakeups.\n\nWe can make child_wait_callback() more clever later, right now it only\nchecks eligible_child().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Ratan Nalumasu \u003crnalumasu@gmail.com\u003e\nCc: Vitaly Mayatskikh \u003cvmayatsk@redhat.com\u003e\nAcked-by: James Morris \u003cjmorris@namei.org\u003e\nTested-by: Valdis Kletnieks \u003cvaldis.kletnieks@vt.edu\u003e\nAcked-by: David Howells \u003cdhowells@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": "a2322e1d272938d192d8c24cdacf57c0c7a2683f",
      "tree": "f53bbed32d44a190df42cddc9f3635371272e329",
      "parents": [
        "a7f0765edfd53aed09cb7b0e15863688b39447de"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Sep 23 15:56:45 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:20:59 2009 -0700"
      },
      "message": "do_wait() wakeup optimization: shift security_task_wait() from eligible_child() to wait_consider_task()\n\nPreparation, no functional changes.\n\neligible_child() has a single caller, wait_consider_task(). We can move\nsecurity_task_wait() out from eligible_child(), this allows us to use it\nfor filtered wake_up().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Ratan Nalumasu \u003crnalumasu@gmail.com\u003e\nCc: Vitaly Mayatskikh \u003cvmayatsk@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": "a7f0765edfd53aed09cb7b0e15863688b39447de",
      "tree": "c89adfe418f9988ad4044e0f22827458bdf6b155",
      "parents": [
        "1dd3a27326d307952f8ad2499478c84dc7311517"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Sep 23 15:56:44 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:20:59 2009 -0700"
      },
      "message": "ptrace: __ptrace_detach: do __wake_up_parent() if we reap the tracee\n\nThe bug is old, it wasn\u0027t cause by recent changes.\n\nTest case:\n\n\tstatic void *tfunc(void *arg)\n\t{\n\t\tint pid \u003d (long)arg;\n\n\t\tassert(ptrace(PTRACE_ATTACH, pid, NULL, NULL) \u003d\u003d 0);\n\t\tkill(pid, SIGKILL);\n\n\t\tsleep(1);\n\t\treturn NULL;\n\t}\n\n\tint main(void)\n\t{\n\t\tpthread_t th;\n\t\tlong pid \u003d fork();\n\n\t\tif (!pid)\n\t\t\tpause();\n\n\t\tsignal(SIGCHLD, SIG_IGN);\n\t\tassert(pthread_create(\u0026th, NULL, tfunc, (void*)pid) \u003d\u003d 0);\n\n\t\tint r \u003d waitpid(-1, NULL, __WNOTHREAD);\n\t\tprintf(\"waitpid: %d %m\\n\", r);\n\n\t\treturn 0;\n\t}\n\nBefore the patch this program hangs, after this patch waitpid() correctly\nfails with errno \u003d\u003d -ECHILD.\n\nThe problem is, __ptrace_detach() reaps the EXIT_ZOMBIE tracee if its\n-\u003ereal_parent is our sub-thread and we ignore SIGCHLD.  But in this case\nwe should wake up other threads which can sleep in do_wait().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Vitaly Mayatskikh \u003cvmayatsk@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": "1dd3a27326d307952f8ad2499478c84dc7311517",
      "tree": "ae59d52935c790dd3fd0c8e12af5855cfe1abfcb",
      "parents": [
        "0c3e73e84fe3f64cf1c2e8bb4e91e8901cbcdc38"
      ],
      "author": {
        "name": "Daisuke Nishimura",
        "email": "nishimura@mxp.nes.nec.co.jp",
        "time": "Wed Sep 23 15:56:43 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:20:59 2009 -0700"
      },
      "message": "memcg: show swap usage in stat file\n\nWe now count MEM_CGROUP_STAT_SWAPOUT, so we can show swap usage.  It would\nbe useful for users to show swap usage in memory.stat file, because they\ndon\u0027t need calculate memsw.usage - res.usage to know swap usage.\n\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0c3e73e84fe3f64cf1c2e8bb4e91e8901cbcdc38",
      "tree": "1c3e27fce3babd3703b34c9a353f253fcefb6325",
      "parents": [
        "4e41695356fb4e0b153be1440ad027e46e0a7ea2"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Wed Sep 23 15:56:42 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:20:59 2009 -0700"
      },
      "message": "memcg: improve resource counter scalability\n\nReduce the resource counter overhead (mostly spinlock) associated with the\nroot cgroup.  This is a part of the several patches to reduce mem cgroup\noverhead.  I had posted other approaches earlier (including using percpu\ncounters).  Those patches will be a natural addition and will be added\niteratively on top of these.\n\nThe patch stops resource counter accounting for the root cgroup.  The data\nfor display is derived from the statisitcs we maintain via\nmem_cgroup_charge_statistics (which is more scalable).  What happens today\nis that, we do double accounting, once using res_counter_charge() and once\nusing memory_cgroup_charge_statistics().  For the root, since we don\u0027t\nimplement limits any more, we don\u0027t need to track every charge via\nres_counter_charge() and check for limit being exceeded and reclaim.\n\nThe main mem-\u003eres usage_in_bytes can be derived by summing the cache and\nrss usage data from memory statistics (MEM_CGROUP_STAT_RSS and\nMEM_CGROUP_STAT_CACHE).  However, for memsw-\u003eres usage_in_bytes, we need\nadditional data about swapped out memory.  This patch adds a\nMEM_CGROUP_STAT_SWAPOUT and uses that along with MEM_CGROUP_STAT_RSS and\nMEM_CGROUP_STAT_CACHE to derive the memsw data.  This data is computed\nrecursively when hierarchy is enabled.\n\nThe tests results I see on a 24 way show that\n\n1. The lock contention disappears from /proc/lock_stats\n2. The results of the test are comparable to running with\n   cgroup_disable\u003dmemory.\n\nHere is a sample of my program runs\n\nWithout Patch\n\n Performance counter stats for \u0027/home/balbir/parallel_pagefault\u0027:\n\n 7192804.124144  task-clock-msecs         #     23.937 CPUs\n         424691  context-switches         #      0.000 M/sec\n            267  CPU-migrations           #      0.000 M/sec\n       28498113  page-faults              #      0.004 M/sec\n  5826093739340  cycles                   #    809.989 M/sec\n   408883496292  instructions             #      0.070 IPC\n     7057079452  cache-references         #      0.981 M/sec\n     3036086243  cache-misses             #      0.422 M/sec\n\n  300.485365680  seconds time elapsed\n\nWith cgroup_disable\u003dmemory\n\n Performance counter stats for \u0027/home/balbir/parallel_pagefault\u0027:\n\n 7182183.546587  task-clock-msecs         #     23.915 CPUs\n         425458  context-switches         #      0.000 M/sec\n            203  CPU-migrations           #      0.000 M/sec\n       92545093  page-faults              #      0.013 M/sec\n  6034363609986  cycles                   #    840.185 M/sec\n   437204346785  instructions             #      0.072 IPC\n     6636073192  cache-references         #      0.924 M/sec\n     2358117732  cache-misses             #      0.328 M/sec\n\n  300.320905827  seconds time elapsed\n\nWith this patch applied\n\n Performance counter stats for \u0027/home/balbir/parallel_pagefault\u0027:\n\n 7191619.223977  task-clock-msecs         #     23.955 CPUs\n         422579  context-switches         #      0.000 M/sec\n             88  CPU-migrations           #      0.000 M/sec\n       91946060  page-faults              #      0.013 M/sec\n  5957054385619  cycles                   #    828.333 M/sec\n  1058117350365  instructions             #      0.178 IPC\n     9161776218  cache-references         #      1.274 M/sec\n     1920494280  cache-misses             #      0.267 M/sec\n\n  300.218764862  seconds time elapsed\n\nData from Prarit (kernel compile with make -j64 on a 64\nCPU/32G machine)\n\nFor a single run\n\nWithout patch\n\nreal 27m8.988s\nuser 87m24.916s\nsys 382m6.037s\n\nWith patch\n\nreal    4m18.607s\nuser    84m58.943s\nsys     50m52.682s\n\nWith config turned off\n\nreal    4m54.972s\nuser    90m13.456s\nsys     50m19.711s\n\nNOTE: The data looks counterintuitive due to the increased performance\nwith the patch, even over the config being turned off. We probably need\nmore runs, but so far all testing has shown that the patches definitely\nhelp.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Prarit Bhargava \u003cprarit@redhat.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4e41695356fb4e0b153be1440ad027e46e0a7ea2",
      "tree": "547dae77d1655a1acb260ea8b266c7b8a48f2d2c",
      "parents": [
        "75822b4495b62e8721e9b88e3cf9e653a0c85b73"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Wed Sep 23 15:56:39 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:20:59 2009 -0700"
      },
      "message": "memory controller: soft limit reclaim on contention\n\nImplement reclaim from groups over their soft limit\n\nPermit reclaim from memory cgroups on contention (via the direct reclaim\npath).\n\nmemory cgroup soft limit reclaim finds the group that exceeds its soft\nlimit by the largest number of pages and reclaims pages from it and then\nreinserts the cgroup into its correct place in the rbtree.\n\nAdd additional checks to mem_cgroup_hierarchical_reclaim() to detect long\nloops in case all swap is turned off.  The code has been refactored and\nthe loop check (loop \u003c 2) has been enhanced for soft limits.  For soft\nlimits, we try to do more targetted reclaim.  Instead of bailing out after\ntwo loops, the routine now reclaims memory proportional to the size by\nwhich the soft limit is exceeded.  The proportion has been empirically\ndetermined.\n\n[akpm@linux-foundation.org: build fix]\n[kamezawa.hiroyu@jp.fujitsu.com: fix softlimit css refcnt handling]\n[nishimura@mxp.nes.nec.co.jp: refcount of the \"victim\" should be decremented before exiting the loop]\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "75822b4495b62e8721e9b88e3cf9e653a0c85b73",
      "tree": "b8d4c10f03a4e289f0a66b982243fd8980f9df07",
      "parents": [
        "f64c3f54940d6929a2b6dcffaab942bd62be2e66"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Wed Sep 23 15:56:38 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:20:59 2009 -0700"
      },
      "message": "memory controller: soft limit refactor reclaim flags\n\nRefactor mem_cgroup_hierarchical_reclaim()\n\nRefactor the arguments passed to mem_cgroup_hierarchical_reclaim() into\nflags, so that new parameters don\u0027t have to be passed as we make the\nreclaim routine more flexible\n\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f64c3f54940d6929a2b6dcffaab942bd62be2e66",
      "tree": "7b3587700b08639970580be6c87f36df80ca8c74",
      "parents": [
        "296c81d89f4f14269f7346f81442910158c0a83a"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Wed Sep 23 15:56:37 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:20:59 2009 -0700"
      },
      "message": "memory controller: soft limit organize cgroups\n\nOrganize cgroups over soft limit in a RB-Tree\n\nIntroduce an RB-Tree for storing memory cgroups that are over their soft\nlimit.  The overall goal is to\n\n1. Add a memory cgroup to the RB-Tree when the soft limit is exceeded.\n   We are careful about updates, updates take place only after a particular\n   time interval has passed\n2. We remove the node from the RB-Tree when the usage goes below the soft\n   limit\n\nThe next set of patches will exploit the RB-Tree to get the group that is\nover its soft limit by the largest amount and reclaim from it, when we\nface memory contention.\n\n[hugh.dickins@tiscali.co.uk: CONFIG_CGROUP_MEM_RES_CTLR\u003dy CONFIG_PREEMPT\u003dy fails to boot]\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: 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": "296c81d89f4f14269f7346f81442910158c0a83a",
      "tree": "cf0e1facd1fed8282c1885bc4126e7bca1928712",
      "parents": [
        "a6df63615b943dbef22df04c19f4506330fe835e"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Wed Sep 23 15:56:36 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:20:59 2009 -0700"
      },
      "message": "memory controller: soft limit interface\n\nAdd an interface to allow get/set of soft limits.  Soft limits for memory\nplus swap controller (memsw) is currently not supported.  Resource\ncounters have been enhanced to support soft limits and new type\nRES_SOFT_LIMIT has been added.  Unlike hard limits, soft limits can be\ndirectly set and do not need any reclaim or checks before setting them to\na newer value.\n\nKamezawa-San raised a question as to whether soft limit should belong to\nres_counter.  Since all resources understand the basic concepts of hard\nand soft limits, it is justified to add soft limits here.  Soft limits are\na generic resource usage feature, even file system quotas support soft\nlimits.\n\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a6df63615b943dbef22df04c19f4506330fe835e",
      "tree": "cd1b0ca72533a37d224d1424a5309f1924afe20b",
      "parents": [
        "261fb61a8bf6d3bd964ae6f1e6af49585d30db51"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Wed Sep 23 15:56:34 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:20:59 2009 -0700"
      },
      "message": "memory controller: soft limit documentation\n\nSoft limits is a new feature for the memory resource controller, something\nsimilar has existed in the group scheduler in the form of shares.  The CPU\ncontrollers interpretation of shares is very different though.\n\nSoft limits are the most useful feature to have for environments where the\nadministrator wants to overcommit the system, such that only on memory\ncontention do the limits become active.  The current soft limits\nimplementation provides a soft_limit_in_bytes interface for the memory\ncontroller and not for memory+swap controller.  The implementation\nmaintains an RB-Tree of groups that exceed their soft limit and starts\nreclaiming from the group that exceeds this limit by the maximum amount.\n\nThis patch:\n\nAdd documentation for soft limits\n\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "261fb61a8bf6d3bd964ae6f1e6af49585d30db51",
      "tree": "417cebd2e18bc2457b5b09d8359ad71ba6afd56d",
      "parents": [
        "4b3bde4c983de36c59e6c1a24701f6fe816f9f55"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Sep 23 15:56:33 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:20:58 2009 -0700"
      },
      "message": "memcg: add comments explaining memory barriers\n\nAdd comments for the reason of smp_wmb() in mem_cgroup_commit_charge().\n\n[akpm@linux-foundation.org: coding-style fixes]\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4b3bde4c983de36c59e6c1a24701f6fe816f9f55",
      "tree": "e759c5ceccf57331b868b7feac61cae5e932c6d4",
      "parents": [
        "be367d09927023d081f9199665c8500f69f14d22"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Wed Sep 23 15:56:32 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:20:58 2009 -0700"
      },
      "message": "memcg: remove the overhead associated with the root cgroup\n\nChange the memory cgroup to remove the overhead associated with accounting\nall pages in the root cgroup.  As a side-effect, we can no longer set a\nmemory hard limit in the root cgroup.\n\nA new flag to track whether the page has been accounted or not has been\nadded as well.  Flags are now set atomically for page_cgroup,\npcg_default_flags is now obsolete and removed.\n\n[akpm@linux-foundation.org: fix a few documentation glitches]\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "be367d09927023d081f9199665c8500f69f14d22",
      "tree": "f0c5b9da037506da3c5890cf11b51b39a7d3c427",
      "parents": [
        "c378369d8b4fa516ff2b1e79c3eded4e0e955ebb"
      ],
      "author": {
        "name": "Ben Blum",
        "email": "bblum@google.com",
        "time": "Wed Sep 23 15:56:31 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:20:58 2009 -0700"
      },
      "message": "cgroups: let ss-\u003ecan_attach and ss-\u003eattach do whole threadgroups at a time\n\nAlter the ss-\u003ecan_attach and ss-\u003eattach functions to be able to deal with\na whole threadgroup at a time, for use in cgroup_attach_proc.  (This is a\npre-patch to cgroup-procs-writable.patch.)\n\nCurrently, new mode of the attach function can only tell the subsystem\nabout the old cgroup of the threadgroup leader.  No subsystem currently\nneeds that information for each thread that\u0027s being moved, but if one were\nto be added (for example, one that counts tasks within a group) this bit\nwould need to be reworked a bit to tell the subsystem the right\ninformation.\n\n[hidave.darkstar@gmail.com: fix build]\nSigned-off-by: Ben Blum \u003cbblum@google.com\u003e\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nReviewed-by: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Dave Young \u003chidave.darkstar@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": "c378369d8b4fa516ff2b1e79c3eded4e0e955ebb",
      "tree": "33dff6fa14c5b70cf25368b1bde57e5610a308b3",
      "parents": [
        "d1d9fd3308fdef6b4bf564fa3d6cfe35b68b50bc"
      ],
      "author": {
        "name": "Ben Blum",
        "email": "bblum@google.com",
        "time": "Wed Sep 23 15:56:29 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:20:58 2009 -0700"
      },
      "message": "cgroups: change css_set freeing mechanism to be under RCU\n\nChanges css_set freeing mechanism to be under RCU\n\nThis is a prepatch for making the procs file writable. In order to free the\nold css_sets for each task to be moved as they\u0027re being moved, the freeing\nmechanism must be RCU-protected, or else we would have to have a call to\nsynchronize_rcu() for each task before freeing its old css_set.\n\nSigned-off-by: Ben Blum \u003cbblum@google.com\u003e\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\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": "d1d9fd3308fdef6b4bf564fa3d6cfe35b68b50bc",
      "tree": "8de392166f2edb696950a90e468ef27f043be509",
      "parents": [
        "72a8cb30d10d4041c455a7054607a7d519167c87"
      ],
      "author": {
        "name": "Ben Blum",
        "email": "bblum@google.com",
        "time": "Wed Sep 23 15:56:28 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:20:58 2009 -0700"
      },
      "message": "cgroups: use vmalloc for large cgroups pidlist allocations\n\nSeparates all pidlist allocation requests to a separate function that\njudges based on the requested size whether or not the array needs to be\nvmalloced or can be gotten via kmalloc, and similar for kfree/vfree.\n\nSigned-off-by: Ben Blum \u003cbblum@google.com\u003e\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\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"
    }
  ],
  "next": "72a8cb30d10d4041c455a7054607a7d519167c87"
}
