)]}'
{
  "log": [
    {
      "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"
    },
    {
      "commit": "72a8cb30d10d4041c455a7054607a7d519167c87",
      "tree": "9b499f9c7f4de011ba5c8282df0b2280b7c21f0b",
      "parents": [
        "102a775e3647628727ae83a9a6abf0564c3ca7cb"
      ],
      "author": {
        "name": "Ben Blum",
        "email": "bblum@google.com",
        "time": "Wed Sep 23 15:56:27 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:20:58 2009 -0700"
      },
      "message": "cgroups: ensure correct concurrent opening/reading of pidlists across pid namespaces\n\nPreviously there was the problem in which two processes from different pid\nnamespaces reading the tasks or procs file could result in one process\nseeing results from the other\u0027s namespace.  Rather than one pidlist for\neach file in a cgroup, we now keep a list of pidlists keyed by namespace\nand file type (tasks versus procs) in which entries are placed on demand.\nEach pidlist has its own lock, and that the pidlists themselves are passed\naround in the seq_file\u0027s private pointer means we don\u0027t have to touch the\ncgroup or its master list except when creating and destroying entries.\n\nSigned-off-by: Ben Blum \u003cbblum@google.com\u003e\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: 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": "102a775e3647628727ae83a9a6abf0564c3ca7cb",
      "tree": "77a3d9717daa0f1dceccc0dcdf821aa12e684e07",
      "parents": [
        "8f3ff20862cfcb85500a2bb55ee64622bd59fd0c"
      ],
      "author": {
        "name": "Ben Blum",
        "email": "bblum@google.com",
        "time": "Wed Sep 23 15:56:26 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:20:58 2009 -0700"
      },
      "message": "cgroups: add a read-only \"procs\" file similar to \"tasks\" that shows only unique tgids\n\nstruct cgroup used to have a bunch of fields for keeping track of the\npidlist for the tasks file.  Those are now separated into a new struct\ncgroup_pidlist, of which two are had, one for procs and one for tasks.\nThe way the seq_file operations are set up is changed so that just the\npidlist struct gets passed around as the private data.\n\nInterface example: Suppose a multithreaded process has pid 1000 and other\nthreads with ids 1001, 1002, 1003:\n$ cat tasks\n1000\n1001\n1002\n1003\n$ cat cgroup.procs\n1000\n$\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"
    },
    {
      "commit": "8f3ff20862cfcb85500a2bb55ee64622bd59fd0c",
      "tree": "ccf408f52ee23b1c0130520a84c21bbd8f4077e7",
      "parents": [
        "2c6ab6d200827e1c41dc71fff3a2ac7473f51777"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Wed Sep 23 15:56:25 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:20:58 2009 -0700"
      },
      "message": "cgroups: revert \"cgroups: fix pid namespace bug\"\n\nThe following series adds a \"cgroup.procs\" file to each cgroup that\nreports unique tgids rather than pids, and allows all threads in a\nthreadgroup to be atomically moved to a new cgroup.\n\nThe subsystem \"attach\" interface is modified to support attaching whole\nthreadgroups at a time, which could introduce potential problems if any\nsubsystem were to need to access the old cgroup of every thread being\nmoved.  The attach interface may need to be revised if this becomes the\ncase.\n\nAlso added is functionality for read/write locking all CLONE_THREAD\nfork()ing within a threadgroup, by means of an rwsem that lives in the\nsighand_struct, for per-threadgroup-ness and also for sharing a cacheline\nwith the sighand\u0027s atomic count.  This scheme should introduce no extra\noverhead in the fork path when there\u0027s no contention.\n\nThe final patch reveals potential for a race when forking before a\nsubsystem\u0027s attach function is called - one potential solution in case any\nsubsystem has this problem is to hang on to the group\u0027s fork mutex through\nthe attach() calls, though no subsystem yet demonstrates need for an\nextended critical section.\n\nThis patch:\n\nRevert\n\ncommit 096b7fe012d66ed55e98bc8022405ede0cc80e96\nAuthor:     Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAuthorDate: Wed Jul 29 15:04:04 2009 -0700\nCommit:     Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCommitDate: Wed Jul 29 19:10:35 2009 -0700\n\n    cgroups: fix pid namespace bug\n\nThis is in preparation for some clashing cgroups changes that subsume the\noriginal commit\u0027s functionaliy.\n\nThe original commit fixed a pid namespace bug which Ben Blum fixed\nindependently (in the same way, but with different code) as part of a\nseries of patches.  I played around with trying to reconcile Ben\u0027s patch\nseries with Li\u0027s patch, but concluded that it was simpler to just revert\nLi\u0027s, given that Ben\u0027s patch series contained essentially the same fix.\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: 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": "2c6ab6d200827e1c41dc71fff3a2ac7473f51777",
      "tree": "1ea1e6b46356a0c350c6bc3b39cb852628263fd9",
      "parents": [
        "7717f7ba92de485bce8293419a20ffef130f4286"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Wed Sep 23 15:56:23 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:20:58 2009 -0700"
      },
      "message": "cgroups: allow cgroup hierarchies to be created with no bound subsystems\n\nThis patch removes the restriction that a cgroup hierarchy must have at\nleast one bound subsystem.  The mount option \"none\" is treated as an\nexplicit request for no bound subsystems.\n\nA hierarchy with no subsystems can be useful for plain task tracking, and\nis also a step towards the support for multiply-bindable subsystems.\n\nAs part of this change, the hierarchy id is no longer calculated from the\nbitmask of subsystems in the hierarchy (since this is not guaranteed to be\nunique) but is allocated via an ida.  Reference counts on cgroups from\ncss_set objects are now taken explicitly one per hierarchy, rather than\none per subsystem.\n\nExample usage:\n\nmount -t cgroup -o none,name\u003dfoo cgroup /mnt/cgroup\n\nBased on the \"no-op\"/\"none\" subsystem concept proposed by\nkamezawa.hiroyu@jp.fujitsu.com\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Dhaval Giani \u003cdhaval@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": "7717f7ba92de485bce8293419a20ffef130f4286",
      "tree": "dc3d164fbef69e8481126bfc9cf596d0895c11e8",
      "parents": [
        "fe6934354f8e287275500cd6ec73826d4d6ad457"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Wed Sep 23 15:56:22 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:20:58 2009 -0700"
      },
      "message": "cgroups: add a back-pointer from struct cg_cgroup_link to struct cgroup\n\nCurrently the cgroups code makes the assumption that the subsystem\npointers in a struct css_set uniquely identify the hierarchy-\u003ecgroup\nmappings associated with the css_set; and there\u0027s no way to directly\nidentify the associated set of cgroups other than by indirecting through\nthe appropriate subsystem state pointers.\n\nThis patch removes the need for that assumption by adding a back-pointer\nfrom struct cg_cgroup_link object to its associated cgroup; this allows\nthe set of cgroups to be determined by traversing the cg_links list in\nthe struct css_set.\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Dhaval Giani \u003cdhaval@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": "fe6934354f8e287275500cd6ec73826d4d6ad457",
      "tree": "f5ccab89d27472f5116257d1f7248594d3510882",
      "parents": [
        "c6d57f3312a6619d47c5557b5f6154a74d04ff80"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Wed Sep 23 15:56:20 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:20:57 2009 -0700"
      },
      "message": "cgroups: move the cgroup debug subsys into cgroup.c to access internal state\n\nWhile it\u0027s architecturally clean to have the cgroup debug subsystem be\ncompletely independent of the cgroups framework, it limits its usefulness\nfor debugging the contents of internal data structures.  Move the debug\nsubsystem code into the scope of all the cgroups data structures to make\nmore detailed debugging possible.\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Dhaval Giani \u003cdhaval@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": "c6d57f3312a6619d47c5557b5f6154a74d04ff80",
      "tree": "b2e9214e58120c5d91ed0039afd06def62bfdf54",
      "parents": [
        "34f77a90f79fca31802c2e942bd73f7f557fe28c"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Wed Sep 23 15:56:19 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:20:57 2009 -0700"
      },
      "message": "cgroups: support named cgroups hierarchies\n\nTo simplify referring to cgroup hierarchies in mount statements, and to\nallow disambiguation in the presence of empty hierarchies and\nmultiply-bindable subsystems this patch adds support for naming a new\ncgroup hierarchy via the \"name\u003d\" mount option\n\nA pre-existing hierarchy may be specified by either name or by subsystems;\na hierarchy\u0027s name cannot be changed by a remount operation.\n\nExample usage:\n\n# To create a hierarchy called \"foo\" containing the \"cpu\" subsystem\nmount -t cgroup -oname\u003dfoo,cpu cgroup /mnt/cgroup1\n\n# To mount the \"foo\" hierarchy on a second location\nmount -t cgroup -oname\u003dfoo cgroup /mnt/cgroup2\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Dhaval Giani \u003cdhaval@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": "34f77a90f79fca31802c2e942bd73f7f557fe28c",
      "tree": "e8f07fe8da83e346029ea7a4d90c1b1039cdef36",
      "parents": [
        "55dff4954ebdeba2be59e19398a607d799c5fa9f"
      ],
      "author": {
        "name": "Xiaotian Feng",
        "email": "dfeng@redhat.com",
        "time": "Wed Sep 23 15:56:18 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:20:57 2009 -0700"
      },
      "message": "cgroups: make unlock sequence in cgroup_get_sb consistent\n\nMake the last unlock sequence consistent with previous unlock sequeue.\n\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Xiaotian Feng \u003cdfeng@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": "55dff4954ebdeba2be59e19398a607d799c5fa9f",
      "tree": "b442f972d503de39bf0d4a3eed007294a45b4dc9",
      "parents": [
        "0b4b2ad5307c76c7105d6e7c724b1c14b8daf482"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Wed Sep 23 15:56:17 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:20:57 2009 -0700"
      },
      "message": "docs: fix various Documentation/ paths in header files\n\nFix various Documentation/ paths in include/linux/.\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nReviewed-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0b4b2ad5307c76c7105d6e7c724b1c14b8daf482",
      "tree": "4a86a9638905ebaad32d021da810e61ef09ae272",
      "parents": [
        "ba36c440ba9486b155c9254ce5e50f5f20eb1fcb"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Wed Sep 23 15:56:16 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:20:57 2009 -0700"
      },
      "message": "page-types: add feature for walking process address space\n\nIntroduce \"-p|--pid \u003cpid\u003e\" for walking the process address space.  The\ndefault action is to walk raw memory PFNs.\n\nBoth the virtual address and physical address of each present pages will\nbe listed:\n\n\t# ./tools/vm/page-types -lp $$ | head -3\n\tvoffset offset  len     flags\n\t400     11bebe  1       __RU_lA____M______________________\n\t402     11bebc  1       __RU_lA____M______________________\n\nNote that voffset/offset/len are now showed as hex numbers.\n\n[akpm@linux-foundation.org: coding-style fixes]\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ba36c440ba9486b155c9254ce5e50f5f20eb1fcb",
      "tree": "5d7d9a6cbc21c1a532cd872aedcc243494a6ce2c",
      "parents": [
        "2552a99b6e3c3f3c9ee1038e6c1f4669a856c59b"
      ],
      "author": {
        "name": "Josh Triplett",
        "email": "josh@joshtriplett.org",
        "time": "Wed Sep 23 15:56:15 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:20:57 2009 -0700"
      },
      "message": "Documentation/vm/.gitignore: add page-types\n\nSigned-off-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2552a99b6e3c3f3c9ee1038e6c1f4669a856c59b",
      "tree": "53109f89d32f686382806f304e2c2f4c4daedf8e",
      "parents": [
        "bcadbbd4c896c80c263c35ce94b763e5ff58cecd"
      ],
      "author": {
        "name": "Jaswinder Singh Rajput",
        "email": "jaswinder@kernel.org",
        "time": "Wed Sep 23 15:56:14 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:20:57 2009 -0700"
      },
      "message": "includecheck fix: Documentation, cfag12864b-example.c\n\nfix the following \u0027make includecheck\u0027 warning:\n\n  Documentation/auxdisplay/cfag12864b-example.c: string.h is included more than once.\n\nSigned-off-by: Jaswinder Singh Rajput \u003cjaswinderrajput@gmail.com\u003e\nAcked-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bcadbbd4c896c80c263c35ce94b763e5ff58cecd",
      "tree": "9163d1f30b65d16552a955822d99198ff901b7f9",
      "parents": [
        "16c01b20ae0572d5a1fe8059f1b4c09f79b73cbf"
      ],
      "author": {
        "name": "Xiaotian Feng",
        "email": "dfeng@redhat.com",
        "time": "Wed Sep 23 15:56:13 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:20:57 2009 -0700"
      },
      "message": "Documentation: update stale definition of file-nr in fs.txt\n\nIn \"documentation: update Documentation/filesystem/proc.txt and\nDocumentation/sysctls\" (commit 760df93ec) we merged /proc/sys/fs\ndocumentation in Documentation/sysctl/fs.txt and\nDocumentation/filesystem/proc.txt, but stale file-nr definition\nremained.\n\nThis patch adds back the right fs-nr definition for 2.6 kernel.\n\nSigned-off-by: Xiaotian Feng\u003cdfeng@redhat.com\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "16c01b20ae0572d5a1fe8059f1b4c09f79b73cbf",
      "tree": "922001d18936f99a9d9f12fc62aa1bb692f7e023",
      "parents": [
        "0288b95b432b88f9daf895b526f64beeaca9ac73"
      ],
      "author": {
        "name": "Peng Tao",
        "email": "bergwolf@gmail.com",
        "time": "Wed Sep 23 15:56:13 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:20:57 2009 -0700"
      },
      "message": "doc/filesystems: more mount cleanups\n\nDocumentation/filesystems/sharedsubtree.txt needs updating because the\nmount command in util-linux package is well aware of shared subtree\nfeatures now.  The patch also fixes two typos in sharedsubtree.txt.\n\nSigned-off-by: Peng Tao \u003cbergwolf@gmail.com\u003e\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0288b95b432b88f9daf895b526f64beeaca9ac73",
      "tree": "c101445baa2776f33a9a7c0688c263eba31c7bce",
      "parents": [
        "57f1f0874f426a9bdfc5cd3f886113dd5cd17834"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Wed Sep 23 15:56:11 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:20:57 2009 -0700"
      },
      "message": "doc/filesystems: remove smount program\n\nmount(8) handles shared subtrees just fine, so remove the smount program\nfrom Documentation/filesystems/sharedsubtree.txt.\n\nFix annoying \"Lets\" -\u003e \"Let\u0027s\".\nInsert space between \u0027#\u0027 prompt and \"mount\" command.\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nAcked-by: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "57f1f0874f426a9bdfc5cd3f886113dd5cd17834",
      "tree": "f7938f5c195f7733543d3d86c6ae3c902fd7adef",
      "parents": [
        "ef1ff6b8c08954bc203b59e887d1e580dd91755a"
      ],
      "author": {
        "name": "Zhaolei",
        "email": "zhaolei@cn.fujitsu.com",
        "time": "Wed Sep 23 15:56:10 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:20:56 2009 -0700"
      },
      "message": "time: add function to convert between calendar time and broken-down time for universal use\n\nThere are many similar code in kernel for one object: convert time between\ncalendar time and broken-down time.\n\nHere is some source I found:\n  fs/ncpfs/dir.c\n  fs/smbfs/proc.c\n  fs/fat/misc.c\n  fs/udf/udftime.c\n  fs/cifs/netmisc.c\n  net/netfilter/xt_time.c\n  drivers/scsi/ips.c\n  drivers/input/misc/hp_sdc_rtc.c\n  drivers/rtc/rtc-lib.c\n  arch/ia64/hp/sim/boot/fw-emu.c\n  arch/m68k/mac/misc.c\n  arch/powerpc/kernel/time.c\n  arch/parisc/include/asm/rtc.h\n  ...\n\nWe can make a common function for this type of conversion, At least we\ncan get following benefit:\n\n1: Make kernel simple and unify\n2: Easy to fix bug in converting code\n3: Reduce clone of code in future\n   For example, I\u0027m trying to make ftrace display walltime,\n   this patch will make me easy.\n\nThis code is based on code from glibc-2.6\n\nSigned-off-by: Zhao Lei \u003czhaolei@cn.fujitsu.com\u003e\nCc: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ef1ff6b8c08954bc203b59e887d1e580dd91755a",
      "tree": "6bffcfc02cb57087362defe4cf045c6f70f62a6d",
      "parents": [
        "2c6854fdadf940678fd54779b778f6faafb870bb"
      ],
      "author": {
        "name": "From: Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Wed Sep 23 15:56:05 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:20:56 2009 -0700"
      },
      "message": "hugetlbfs: do not call user_shm_lock() for MAP_HUGETLB fix\n\nCommit 6bfde05bf5c (\"hugetlbfs: allow the creation of files suitable for\nMAP_PRIVATE on the vfs internal mount\") altered can_do_hugetlb_shm() to\ncheck if a file is being created for shared memory or mmap().  If this\nreturns false, we then unconditionally call user_shm_lock() triggering a\nwarning.  This block should never be entered for MAP_HUGETLB.  This\npatch partially reverts the problem and fixes the check.\n\nSigned-off-by: Eric B Munson \u003cebmunson@us.ibm.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Adam Litke \u003cagl@us.ibm.com\u003e\nCc: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.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": "2c6854fdadf940678fd54779b778f6faafb870bb",
      "tree": "0ed3efb3651813593e38e7976d1201a738b300a6",
      "parents": [
        "d2b5ec3aa0784335f031239e71fb50924cac9e0d"
      ],
      "author": {
        "name": "Izik Eidus",
        "email": "ieidus@redhat.com",
        "time": "Wed Sep 23 15:56:04 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:20:56 2009 -0700"
      },
      "message": "ksm: change default values to better fit into mainline kernel\n\nNow that ksm is in mainline it is better to change the default values to\nbetter fit to most of the users.\n\nThis patch change the ksm default values to be:\n\n\tksm_thread_pages_to_scan \u003d 100 (instead of 200)\n\tksm_thread_sleep_millisecs \u003d 20 (like before)\n\tksm_run \u003d KSM_RUN_STOP (instead of KSM_RUN_MERGE - meaning ksm is\n\t                        disabled by default)\n\tksm_max_kernel_pages \u003d nr_free_buffer_pages / 4 (instead of 2046)\n\nThe important aspect of this patch is: it disables ksm by default, and sets\nthe number of the kernel_pages that can be allocated to be a reasonable\nnumber.\n\nSigned-off-by: Izik Eidus \u003cieidus@redhat.com\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: Andrea Arcangeli \u003caarcange@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": "d2b5ec3aa0784335f031239e71fb50924cac9e0d",
      "tree": "7c7d319031f2a3b5eec1430cde100ca28b29d9ac",
      "parents": [
        "94a8d5caba74211ec76dac80fc6e2d5c391530df"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 23 15:56:02 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:20:56 2009 -0700"
      },
      "message": "input: fix build failures caused by Kconfig Winbond WPCD376I Consumer IR hardware driver Kconfig entry\n\nFix these warnings:\n\n  drivers/built-in.o: In function `apanel_remove\u0027:\n  apanel.c:(.text+0x56e852): undefined reference to `led_classdev_unregister\u0027\n  drivers/built-in.o: In function `apanel_probe\u0027:\n  apanel.c:(.text+0x56eae3): undefined reference to `led_classdev_register\u0027\n  drivers/built-in.o: In function `acpi_fujitsu_hotkey_add\u0027:\n  fujitsu-laptop.c:(.text+0x5d7647): undefined reference to `led_classdev_register\u0027\n  fujitsu-laptop.c:(.text+0x5d76b5): undefined reference to `led_classdev_register\u0027\n  drivers/built-in.o: In function `wbcir_probe\u0027:\n  winbond-cir.c:(.devinit.text+0x5f375): undefined reference to `led_classdev_register\u0027\n  winbond-cir.c:(.devinit.text+0x5f663): undefined reference to `led_classdev_unregister\u0027\n  drivers/built-in.o: In function `wbcir_remove\u0027:\n  winbond-cir.c:(.devexit.text+0x7f23): undefined reference to `led_classdev_unregister\u0027\n  drivers/built-in.o: In function `fujitsu_cleanup\u0027:\n  fujitsu-laptop.c:(.exit.text+0xbe37): undefined reference to `led_classdev_unregister\u0027\n  fujitsu-laptop.c:(.exit.text+0xbe53): undefined reference to `led_classdev_unregister\u0027\n\nIt happens because the new INPUT_WINBOND_CIR driver relies on new-leds\ninfrastructure - but does not select it in drivers/input/misc/Kconfig.\nBut it selects LEDS_CLASS, which confuses a number of other drivers into\nthinking that all the leds infrastructure is in place.\n\nFix this by selecting NEW_LEDS as well, like similar drivers do.\n\nEventually, this whole leds infrastructure complexity should be\ncleaned up, it\u0027s been going on for years.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\nCc: Dmitry Torokhov \u003cdtor@mail.ru\u003e\nCc: David Härdeman \u003cdavid@hardeman.nu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "94a8d5caba74211ec76dac80fc6e2d5c391530df",
      "tree": "21d17d214a354ae00ae27217d82b67bfc5bff3a3",
      "parents": [
        "2bcd57ab61e7cabed626226a3771617981c11ce1",
        "6ba2ef7baac23a5d9bb85e28b882d16b439a2293"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 18:14:11 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 18:14:11 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: (39 commits)\n  cpumask: Move deprecated functions to end of header.\n  cpumask: remove unused deprecated functions, avoid accusations of insanity\n  cpumask: use new-style cpumask ops in mm/quicklist.\n  cpumask: use mm_cpumask() wrapper: x86\n  cpumask: use mm_cpumask() wrapper: um\n  cpumask: use mm_cpumask() wrapper: mips\n  cpumask: use mm_cpumask() wrapper: mn10300\n  cpumask: use mm_cpumask() wrapper: m32r\n  cpumask: use mm_cpumask() wrapper: arm\n  cpumask: Use accessors for cpu_*_mask: um\n  cpumask: Use accessors for cpu_*_mask: powerpc\n  cpumask: Use accessors for cpu_*_mask: mips\n  cpumask: Use accessors for cpu_*_mask: m32r\n  cpumask: remove arch_send_call_function_ipi\n  cpumask: arch_send_call_function_ipi_mask: s390\n  cpumask: arch_send_call_function_ipi_mask: powerpc\n  cpumask: arch_send_call_function_ipi_mask: mips\n  cpumask: arch_send_call_function_ipi_mask: m32r\n  cpumask: arch_send_call_function_ipi_mask: alpha\n  cpumask: remove obsolete topology_core_siblings and topology_thread_siblings: ia64\n  ...\n"
    },
    {
      "commit": "2bcd57ab61e7cabed626226a3771617981c11ce1",
      "tree": "687c0c35fb2a632cb8c56b2729f9c3873c9461bd",
      "parents": [
        "95e0d86badc410d525ea7218fd32df7bfbf9c837"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Sep 24 04:22:25 2009 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 18:13:10 2009 -0700"
      },
      "message": "headers: utsname.h redux\n\n* remove asm/atomic.h inclusion from linux/utsname.h --\n   not needed after kref conversion\n * remove linux/utsname.h inclusion from files which do not need it\n\nNOTE: it looks like fs/binfmt_elf.c do not need utsname.h, however\ndue to some personality stuff it _is_ needed -- cowardly leave ELF-related\nheaders and files alone.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "95e0d86badc410d525ea7218fd32df7bfbf9c837",
      "tree": "26764a72a3bc8bfcd2ece90f6faaae928f345066",
      "parents": [
        "0dd52d0df02733dfc2d5f3824e41b96492305384"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "sebastian@breakpoint.cc",
        "time": "Thu Sep 24 01:02:55 2009 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 18:12:10 2009 -0700"
      },
      "message": "Revert \"kmod: fix race in usermodehelper code\"\n\nThis reverts commit c02e3f361c7 (\"kmod: fix race in usermodehelper code\")\n\nThe patch is wrong.  UMH_WAIT_EXEC is called with VFORK what ensures\nthat the child finishes prior returing back to the parent.  No race.\n\nIn fact, the patch makes it even worse because it does the thing it\nclaims not do:\n\n - It calls -\u003ecomplete() on UMH_WAIT_EXEC\n\n - the complete() callback may de-allocated subinfo as seen in the\n   following call chain:\n\n    [\u003cc009f904\u003e] (__link_path_walk+0x20/0xeb4) from [\u003cc00a094c\u003e] (path_walk+0x48/0x94)\n    [\u003cc00a094c\u003e] (path_walk+0x48/0x94) from [\u003cc00a0a34\u003e] (do_path_lookup+0x24/0x4c)\n    [\u003cc00a0a34\u003e] (do_path_lookup+0x24/0x4c) from [\u003cc00a158c\u003e] (do_filp_open+0xa4/0x83c)\n    [\u003cc00a158c\u003e] (do_filp_open+0xa4/0x83c) from [\u003cc009ba90\u003e] (open_exec+0x24/0xe0)\n    [\u003cc009ba90\u003e] (open_exec+0x24/0xe0) from [\u003cc009bfa8\u003e] (do_execve+0x7c/0x2e4)\n    [\u003cc009bfa8\u003e] (do_execve+0x7c/0x2e4) from [\u003cc0026a80\u003e] (kernel_execve+0x34/0x80)\n    [\u003cc0026a80\u003e] (kernel_execve+0x34/0x80) from [\u003cc004b514\u003e] (____call_usermodehelper+0x130/0x148)\n    [\u003cc004b514\u003e] (____call_usermodehelper+0x130/0x148) from [\u003cc0024858\u003e] (kernel_thread_exit+0x0/0x8)\n\n   and the path pointer was NULL.  Good that ARM\u0027s kernel_execve()\n   doesn\u0027t check the pointer for NULL or else I wouldn\u0027t notice it.\n\nThe only race there might be is with UMH_NO_WAIT but it is too late for\nme to investigate it now.  UMH_WAIT_PROC could probably also use VFORK\nand we could save one exec.  So the only race I see is with UMH_NO_WAIT\nand recent scheduler changes where the child does not always run first\nmight have trigger here something but as I said, it is late....\n\nSigned-off-by: Sebastian Andrzej Siewior \u003csebastian@breakpoint.cc\u003e\nAcked-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6ba2ef7baac23a5d9bb85e28b882d16b439a2293",
      "tree": "609150ce473b6466d53d42bd7bf9353b7a65ab66",
      "parents": [
        "4b805b17382c11a8b1c9bb8053ce9d1dcde0701a"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Sep 24 09:34:53 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Sep 24 09:34:53 2009 +0930"
      },
      "message": "cpumask: Move deprecated functions to end of header.\n\nThe new ones have pretty kerneldoc.  Move the old ones to the end to\navoid confusing people.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: benh@kernel.crashing.org\n"
    },
    {
      "commit": "4b805b17382c11a8b1c9bb8053ce9d1dcde0701a",
      "tree": "7d602732c50015b0ff2a7b88ef80555bc9074b3c",
      "parents": [
        "db7907865817137bfa3d5b4b30de9cc859b41bf1"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Sep 24 09:34:52 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Sep 24 09:34:53 2009 +0930"
      },
      "message": "cpumask: remove unused deprecated functions, avoid accusations of insanity\n\nWe\u0027re not forcing removal of the old cpu_ functions, but we might as\nwell delete the now-unused ones.\n\nEspecially CPUMASK_ALLOC and friends.  I actually got a phone call (!)\nfrom a hacker who thought I had introduced them as the new cpumask\nAPI.  He seemed bewildered that I had lost all taste.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: benh@kernel.crashing.org\n"
    },
    {
      "commit": "db7907865817137bfa3d5b4b30de9cc859b41bf1",
      "tree": "06a03dc68b8792ddb75bf900325e195d9d72c26a",
      "parents": [
        "78f1c4d6b027993763a5aba83873b0462d06db8f"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Sep 24 09:34:52 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Sep 24 09:34:52 2009 +0930"
      },
      "message": "cpumask: use new-style cpumask ops in mm/quicklist.\n\nThis slipped past the previous sweeps.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\n"
    },
    {
      "commit": "78f1c4d6b027993763a5aba83873b0462d06db8f",
      "tree": "d7a97d02e838b32c458c4ef23e9583d6faedc648",
      "parents": [
        "fa40699b975131028a61aa8e095b0b17f350da40"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Sep 24 09:34:51 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Sep 24 09:34:52 2009 +0930"
      },
      "message": "cpumask: use mm_cpumask() wrapper: x86\n\nMakes code futureproof against the impending change to mm-\u003ecpu_vm_mask (to be a pointer).\n\nIt\u0027s also a chance to use the new cpumask_ ops which take a pointer\n(the older ones are deprecated, but there\u0027s no hurry for arch code).\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "fa40699b975131028a61aa8e095b0b17f350da40",
      "tree": "56d02bbeb105757667f8279956328ad41c58d591",
      "parents": [
        "55b8cab49dd43d227f0dd49e3524406fdc46d37b"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Sep 24 09:34:51 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Sep 24 09:34:51 2009 +0930"
      },
      "message": "cpumask: use mm_cpumask() wrapper: um\n\nMakes code futureproof against the impending change to mm-\u003ecpu_vm_mask.\n\nIt\u0027s also a chance to use the new cpumask_ ops which take a pointer\n(the older ones are deprecated, but there\u0027s no hurry for arch code).\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "55b8cab49dd43d227f0dd49e3524406fdc46d37b",
      "tree": "d12ddec7ae2ee5f0dd2d8dbea84ec834a0f42c53",
      "parents": [
        "7ce1df49e1b1b004ff15fb0af9a02c6b1ff71f70"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Sep 24 09:34:50 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Sep 24 09:34:51 2009 +0930"
      },
      "message": "cpumask: use mm_cpumask() wrapper: mips\n\nMakes code futureproof against the impending change to mm-\u003ecpu_vm_mask.\n\nIt\u0027s also a chance to use the new cpumask_ ops which take a pointer\n(the older ones are deprecated, but there\u0027s no hurry for arch code).\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "7ce1df49e1b1b004ff15fb0af9a02c6b1ff71f70",
      "tree": "c8b1f58c08969d5ea8f527d6d2c3a3d5cbe9a369",
      "parents": [
        "49b92050f6ce436cde7f495bbb27437bcb09e238"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Sep 24 09:34:50 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Sep 24 09:34:50 2009 +0930"
      },
      "message": "cpumask: use mm_cpumask() wrapper: mn10300\n\nMakes code futureproof against the impending change to mm-\u003ecpu_vm_mask\n(to be a pointer).\n\nIt\u0027s also a chance to use the new cpumask_ ops which take a pointer\n(the older ones are deprecated, but there\u0027s no hurry for arch code).\n\nAlso change the actual arg name here to \"mm\" (which it is), not \"task\".\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "49b92050f6ce436cde7f495bbb27437bcb09e238",
      "tree": "6f4ce2326a870f4494fa72d6be0fdf42c4c749d5",
      "parents": [
        "56f8ba83a52b9f9e3711eff8e54168ac14aa288f"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Sep 24 09:34:49 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Sep 24 09:34:50 2009 +0930"
      },
      "message": "cpumask: use mm_cpumask() wrapper: m32r\n\nMakes code futureproof against the impending change to mm-\u003ecpu_vm_mask.\n\nIt\u0027s also a chance to use the new cpumask_ ops which take a pointer\n(the older ones are deprecated, but there\u0027s no hurry for arch code).\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Hirokazu Takata \u003ctakata@linux-m32r.org\u003e (fixes)\n"
    },
    {
      "commit": "56f8ba83a52b9f9e3711eff8e54168ac14aa288f",
      "tree": "e030f7f3a191384268d86863ca43237a137e8f51",
      "parents": [
        "a6a01063de6298c60f2506dc7659403e02b4b224"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Sep 24 09:34:49 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Sep 24 09:34:49 2009 +0930"
      },
      "message": "cpumask: use mm_cpumask() wrapper: arm\n\nMakes code futureproof against the impending change to mm-\u003ecpu_vm_mask.\n\nIt\u0027s also a chance to use the new cpumask_ ops which take a pointer\n(the older ones are deprecated, but there\u0027s no hurry for arch code).\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "a6a01063de6298c60f2506dc7659403e02b4b224",
      "tree": "afbe616ebeea96ff0a47abdd3aac83d559bab051",
      "parents": [
        "ea0f1cab6ed43121ff6f24c1bb02e88a8d11a2d6"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Sep 24 09:34:48 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Sep 24 09:34:49 2009 +0930"
      },
      "message": "cpumask: Use accessors for cpu_*_mask: um\n\nUse the accessors rather than frobbing bits directly (the new versions\nare const).\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\n"
    },
    {
      "commit": "ea0f1cab6ed43121ff6f24c1bb02e88a8d11a2d6",
      "tree": "2d4052d4c485478b251367645a4299280e9482f5",
      "parents": [
        "4037ac6e2cb4e3148c25124b431eead4e704a4ff"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Sep 24 09:34:48 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Sep 24 09:34:48 2009 +0930"
      },
      "message": "cpumask: Use accessors for cpu_*_mask: powerpc\n\nUse the accessors rather than frobbing bits directly (the new versions\nare const).\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\n"
    },
    {
      "commit": "4037ac6e2cb4e3148c25124b431eead4e704a4ff",
      "tree": "d903d818bd2484a57e081b4afdeb38aadaa2beb1",
      "parents": [
        "2377afdde16a50b72e0b7ddb96d6b905f73754e2"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Sep 24 09:34:47 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Sep 24 09:34:48 2009 +0930"
      },
      "message": "cpumask: Use accessors for cpu_*_mask: mips\n\nUse the accessors rather than frobbing bits directly (the new versions\nare const).\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\n"
    },
    {
      "commit": "2377afdde16a50b72e0b7ddb96d6b905f73754e2",
      "tree": "c268e81c9691ca7fe7aaaedbc242ce6cc289cfd1",
      "parents": [
        "0748bd01773395003208996c4c0b3f80caf80976"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Sep 24 09:34:47 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Sep 24 09:34:47 2009 +0930"
      },
      "message": "cpumask: Use accessors for cpu_*_mask: m32r\n\nUse the accessors rather than frobbing bits directly (the new versions\nare const).\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\n"
    },
    {
      "commit": "0748bd01773395003208996c4c0b3f80caf80976",
      "tree": "99abf2a49d66c4890f4cc6b114bfd47684bab68e",
      "parents": [
        "630cd0460724e286d3c5cb2c33930b0ae9cd6645"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Sep 24 09:34:46 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Sep 24 09:34:47 2009 +0930"
      },
      "message": "cpumask: remove arch_send_call_function_ipi\n\nNow everyone is converted to arch_send_call_function_ipi_mask, remove\nthe shim and the #defines.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "630cd0460724e286d3c5cb2c33930b0ae9cd6645",
      "tree": "1fea9eaf0bd64fd020ea5aee1330ac96bbba71e6",
      "parents": [
        "f063ea02fba5782099b6730d5733ee44638df8f9"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Sep 24 09:34:45 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Sep 24 09:34:46 2009 +0930"
      },
      "message": "cpumask: arch_send_call_function_ipi_mask: s390\n\nWe\u0027re weaning the core code off handing cpumask\u0027s around on-stack.\nThis introduces arch_send_call_function_ipi_mask().\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "f063ea02fba5782099b6730d5733ee44638df8f9",
      "tree": "db922e0019466c62e9794033ac4890c6a8d55eaa",
      "parents": [
        "48a048fed82a8e5fdd8618574f6d3de1a0d67a50"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Sep 24 09:34:45 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Sep 24 09:34:45 2009 +0930"
      },
      "message": "cpumask: arch_send_call_function_ipi_mask: powerpc\n\nWe\u0027re weaning the core code off handing cpumask\u0027s around on-stack.\nThis introduces arch_send_call_function_ipi_mask(), and by defining\nit, the old arch_send_call_function_ipi is defined by the core code.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "48a048fed82a8e5fdd8618574f6d3de1a0d67a50",
      "tree": "0d1af3d63494feb3f21bc9e288c748fdd3b9601e",
      "parents": [
        "c2a3a4881dc851ec9b5bdc83fdc03afa31d6fbed"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Sep 24 09:34:44 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Sep 24 09:34:45 2009 +0930"
      },
      "message": "cpumask: arch_send_call_function_ipi_mask: mips\n\nWe\u0027re weaning the core code off handing cpumask\u0027s around on-stack.\nThis introduces arch_send_call_function_ipi_mask(), and by defining\nit, the old arch_send_call_function_ipi is defined by the core code.\n\nWe also take the chance to wean the implementations off the\nobsolescent for_each_cpu_mask(): making send_ipi_mask take the pointer\nseemed the most natural way to ensure all implementations used\nfor_each_cpu.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "c2a3a4881dc851ec9b5bdc83fdc03afa31d6fbed",
      "tree": "9396074904e54ff4aef723ce367b088839df65e7",
      "parents": [
        "81065e4f2b525410d0c80040140e086abfbf7de2"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Sep 24 09:34:43 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Sep 24 09:34:44 2009 +0930"
      },
      "message": "cpumask: arch_send_call_function_ipi_mask: m32r\n\nWe\u0027re weaning the core code off handing cpumask\u0027s around on-stack.\nThis introduces arch_send_call_function_ipi_mask(), and by defining\nit, the old arch_send_call_function_ipi is defined by the core code.\n\nWe also take the chance to wean the implementations off the\nobsolescent for_each_cpu_mask(): making send_ipi_mask take the pointer\nseemed the most natural way to ensure all implementations used\nfor_each_cpu.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "81065e4f2b525410d0c80040140e086abfbf7de2",
      "tree": "519fc9f0a8905abfb03198ef29a0fbf7326b0ee2",
      "parents": [
        "e50a6f19537362ed61f7f74af724345975e602ed"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Sep 24 09:34:43 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Sep 24 09:34:43 2009 +0930"
      },
      "message": "cpumask: arch_send_call_function_ipi_mask: alpha\n\nWe\u0027re weaning the core code off handing cpumask\u0027s around on-stack.\nThis introduces arch_send_call_function_ipi_mask().\n\nWe also take the chance to wean the send_ipi_message off the\nobsolescent for_each_cpu_mask(): making it take a pointer seemed the\nmost natural way to do this.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "e50a6f19537362ed61f7f74af724345975e602ed",
      "tree": "1943a93d8b5600cead8050a7d25bc70f5fd15edd",
      "parents": [
        "399d0682704144ddadb27164343a265774d8b301"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Sep 24 09:34:42 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Sep 24 09:34:43 2009 +0930"
      },
      "message": "cpumask: remove obsolete topology_core_siblings and topology_thread_siblings: ia64\n\nThere were replaced by topology_core_cpumask and topology_thread_cpumask.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "399d0682704144ddadb27164343a265774d8b301",
      "tree": "43a69cea0f19d68365ccda1bba0e1199755bdb82",
      "parents": [
        "4f269bf5e1652370164a0b4b04db7c47c0c96a8a"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Sep 24 09:34:42 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Sep 24 09:34:42 2009 +0930"
      },
      "message": "cpumask: remove obsolete topology_core_siblings and topology_thread_siblings: powerpc\n\nThere were replaced by topology_core_cpumask and topology_thread_cpumask.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    }
  ],
  "next": "4f269bf5e1652370164a0b4b04db7c47c0c96a8a"
}
