)]}'
{
  "log": [
    {
      "commit": "aa9b60bb87a69ba2e0472fbfb04a8c056690936f",
      "tree": "c60ee3953ba6498a6f8d6e91edb329f75d3f6823",
      "parents": [
        "96a0760091ed47fc1b914f78bb46116b2dd8bb94"
      ],
      "author": {
        "name": "Laura Abbott",
        "email": "lauraa@codeaurora.org",
        "time": "Mon Jan 23 13:06:20 2012 -0800"
      },
      "committer": {
        "name": "Laura Abbott",
        "email": "lauraa@codeaurora.org",
        "time": "Tue Feb 07 09:04:00 2012 -0800"
      },
      "message": "printk: Log printk events\n\nLog printk events to the uncached buffer. If a reset occurs\nand printk data is still present in the cache, information will\nbe lost. This doesn\u0027t store the actual printk, but it at least\ngives information on who the last caller was.\n\nChange-Id: If1bd414a44b19b45c157d23a7ddde8f16b30e780\nSigned-off-by: Laura Abbott \u003clauraa@codeaurora.org\u003e\nSigned-off-by: Trevor Bourget \u003ctbourget@codeaurora.org\u003e\n"
    },
    {
      "commit": "7b103970375e6857f11122f5176a7a1185eabe8b",
      "tree": "96b336d654b2df2c88e46b63abff38a224a50683",
      "parents": [
        "67272e1a35796787a403eab000cd6c374f0ef556",
        "cf68d7a3f7f7dfb5f51a34c843bddbe176799ce9"
      ],
      "author": {
        "name": "Linux Build Service Account",
        "email": "lnxbuild@localhost",
        "time": "Tue Jan 17 09:24:09 2012 -0800"
      },
      "committer": {
        "name": "QuIC Gerrit Code Review",
        "email": "code-review@localhost",
        "time": "Tue Jan 17 09:24:09 2012 -0800"
      },
      "message": "Merge changes I8b0f5d25,I2835dacf,Idef697db,I34c6a1f5,Ie3340d07 into msm-3.0\n\n* changes:\n  irq: irqdomain: Add API to find free irq range\n  arm: gic: Check for error code on irq_domain_add\n  irq: irqdomain: Change irq_domain_add to detect errors\n  arm: gic: Register irqdomain after adding it\n  irq: irqdomain: Add support for dynamic irq_desc allocations\n"
    },
    {
      "commit": "cf68d7a3f7f7dfb5f51a34c843bddbe176799ce9",
      "tree": "1c330c5fc8ae7ad42c65515895eb2e0657bd8f0b",
      "parents": [
        "33efecf03dc975a818685ee3d74a47ab93b483d2"
      ],
      "author": {
        "name": "Michael Bohan",
        "email": "mbohan@codeaurora.org",
        "time": "Wed Jan 11 17:53:05 2012 -0800"
      },
      "committer": {
        "name": "Michael Bohan",
        "email": "mbohan@codeaurora.org",
        "time": "Mon Jan 16 14:25:55 2012 -0800"
      },
      "message": "irq: irqdomain: Add API to find free irq range\n\nWhen registering irq chip drivers, one common requirement is to\nspecify the irq_domain irq_base and nr_irq. These fields represent\nthe system wide logical interrupt range the domain occupies.\nFor systems with only one interrupt controller, it\u0027s trivial to\nknow these values. But for systems with several irq chip drivers,\nit becomes painful to keep track of interrupt ranges in platform\ndefines. These create needless compile time dependencies, of\nwhich the Device Tree aims to solve.\n\nirq_alloc_desc() can search for a free irq, but is very\ninefficient for determining the availability of large ranges.\nAdditionally, some irq chip drivers allocate irq descriptors\nlazily. For example, portions of the Device Tree may not be parsed\nuntil a particular bus is probed. But of_irq_init() is intended to\nbe run at init time, and this is a natural time to allocate irq\ndomains. Thus by the time we allocate our irq descriptors, we already\nneed to know a range of acceptable irqs to use for the domain.\n\nTo solve these problems, let\u0027s introduce\nirq_domain_find_free_range(), which will return to the caller the\nfirst available irq domain range not used already by the system.\nThis range can then be specified with irq_domain_add().\n\nChange-Id: I8b0f5d25b173c76b8fc5d4f46b3fe9c6bf5c3c8f\nSigned-off-by: Michael Bohan \u003cmbohan@codeaurora.org\u003e\n"
    },
    {
      "commit": "6f4df41a29fadd17da7fdca722a8e07e02bb4829",
      "tree": "ac1835fb7c133656cd5b2d54d3f5ab9ab73cec95",
      "parents": [
        "b8635c3f53352d245f146ffa1facd13a6db3bea3"
      ],
      "author": {
        "name": "Michael Bohan",
        "email": "mbohan@codeaurora.org",
        "time": "Wed Jan 11 11:45:16 2012 -0800"
      },
      "committer": {
        "name": "Michael Bohan",
        "email": "mbohan@codeaurora.org",
        "time": "Mon Jan 16 14:25:54 2012 -0800"
      },
      "message": "irq: irqdomain: Change irq_domain_add to detect errors\n\nIt should not be valid to add an irq_domain with a logical irq\nrange that overlaps with another already registered to the\nsystem. Return an error on such an occurrence.\n\nThis change also inherently sorts the irq_domains by logical\nirq_base as they are added.\n\nChange-Id: Idef697dbe4584d783703d053fbf09f1b17e62ab0\nSigned-off-by: Michael Bohan \u003cmbohan@codeaurora.org\u003e\n"
    },
    {
      "commit": "e6717fdd1fbc2bbc3fb7c7a9932a195eee6b1522",
      "tree": "d0bf06a3d2bd0268969d7d26c2a8de5e58a4ea9a",
      "parents": [
        "56b42db68ddf6aac9bc33130535e2a52d309ceea"
      ],
      "author": {
        "name": "Michael Bohan",
        "email": "mbohan@codeaurora.org",
        "time": "Tue Jan 03 16:37:43 2012 -0800"
      },
      "committer": {
        "name": "Michael Bohan",
        "email": "mbohan@codeaurora.org",
        "time": "Mon Jan 16 14:25:42 2012 -0800"
      },
      "message": "irq: irqdomain: Add support for dynamic irq_desc allocations\n\nThe current irq_domain_add() design assumes the underlying\nirq_descs are valid when irq_domain_add() is called. It also\nassumes that every hwirq enlisted in the irq_domain is valid.\nOften, these assumptions are not correct.\n\nTypically, irq_domain_add() is called at board_init time, but\nsometimes interrupt chip drivers are not initialized until an\nunderlying bus is probed. When using SPARSE_IRQ, it\u0027s quite\nnatural to hold off allocating irq_descs until the board\ntopology specifies them as included.\n\nAnd in such device topologies, there\u0027s no guarantee that chip\ninterrupt numbers will be contiguous. For example, each hwirq may\nmap to a particular device, but that device may or may not be\npresent in the actual hardware configuration. In order to support\nthis, we need the concept of an irq_domain that supports holes\nin it.\n\nIn order to solve these problems, let\u0027s break the irq_domain\ncreation from the irq registration process. The irq_domain\ncreation can occur at init time and then have no dependencies. An\ninterrupt is not \u0027registered\u0027 with the domain until its resources\nhave already been allocated by the chip driver. For simple cases,\nan additional API is provided to register the entire\nlogical irq_domain range to provide feature parity with what\nalready exists.\n\nChange-Id: Ie3340d07ba8663196dc87d1185e3bb7fbed4be4d\nSigned-off-by: Michael Bohan \u003cmbohan@codeaurora.org\u003e\n"
    },
    {
      "commit": "72153812cf48340558f6436dabd3390b987ed5f5",
      "tree": "01d05853512e0512b15bda3de26e542383fd0025",
      "parents": [
        "56b42db68ddf6aac9bc33130535e2a52d309ceea"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Sat Jan 14 22:53:54 2012 -0800"
      },
      "committer": {
        "name": "Rohit Vaswani",
        "email": "rvaswani@codeaurora.org",
        "time": "Mon Jan 16 13:20:27 2012 -0800"
      },
      "message": "tracing: Clean up tb_fmt to not give faulty compile warning\n\ngcc incorrectly states that the variable \"fmt\" is uninitialized when\nCC_OPITMIZE_FOR_SIZE is set.\n\nInstead of just blindly setting fmt to NULL, the code is cleaned up\na little to be a bit easier for humans to follow, as well as gcc\nto know the variables are initialized.\n\nChange-Id: Ia5fb9cc6be8eadae9af3a5636a2459ed7cd48662\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Rohit Vaswani \u003crvaswani@codeaurora.org\u003e\n"
    },
    {
      "commit": "3ccc82179dc70e4aa3f47481b10f9b74f40146ee",
      "tree": "bb86708c96ce0cc534b79df614d0764af487d98c",
      "parents": [
        "af1546d43ccc86853e0855525b4c9955c10d58bb",
        "c1105e186a86b18b2966f42e098000fdb50c0fb5"
      ],
      "author": {
        "name": "Linux Build Service Account",
        "email": "lnxbuild@localhost",
        "time": "Wed Jan 11 08:03:55 2012 -0800"
      },
      "committer": {
        "name": "QuIC Gerrit Code Review",
        "email": "code-review@localhost",
        "time": "Wed Jan 11 08:03:55 2012 -0800"
      },
      "message": "Merge changes I0059a438,Ic6455ac0,I3ac329f2 into msm-3.0\n\n* changes:\n  Revert \"cpu-hotplug: Add the function \u0027cpu_hotplug_inprogress\u0027\"\n  Revert \"printk: Don\u0027t allow cpu to get console lock during hotplugging\"\n  Revert \"partition_sched_domains: Do not destroy old sched domain on cpu_up\"\n"
    },
    {
      "commit": "c1105e186a86b18b2966f42e098000fdb50c0fb5",
      "tree": "e1b87a89119a2aeaacbad14868bd8b8983613a4c",
      "parents": [
        "140260eef19ebcf2db5789070b29359f0f711b53"
      ],
      "author": {
        "name": "Michael Bohan",
        "email": "mbohan@codeaurora.org",
        "time": "Mon Dec 19 14:57:04 2011 -0800"
      },
      "committer": {
        "name": "Michael Bohan",
        "email": "mbohan@codeaurora.org",
        "time": "Thu Jan 05 10:15:53 2012 -0800"
      },
      "message": "Revert \"cpu-hotplug: Add the function \u0027cpu_hotplug_inprogress\u0027\"\n\nThis reverts commit 3d321a35703d041a11f25f7abc27cc6c1ef8cd13.\n\nSince sched domains are allocated dynamically now these\nchanges are N/A for 3.0. Hence the revert.\n\nChange-Id: I0059a4384c871815c01455d4b6f5c8be582a5d73\nSigned-off-by: Michael Bohan \u003cmbohan@codeaurora.org\u003e\n"
    },
    {
      "commit": "140260eef19ebcf2db5789070b29359f0f711b53",
      "tree": "11b49d9e0d1a7b2f45edb818f669c27202d4b4a0",
      "parents": [
        "6c0389f123f5377c885ef49574c270785c3a8589"
      ],
      "author": {
        "name": "Michael Bohan",
        "email": "mbohan@codeaurora.org",
        "time": "Mon Dec 19 14:55:43 2011 -0800"
      },
      "committer": {
        "name": "Michael Bohan",
        "email": "mbohan@codeaurora.org",
        "time": "Thu Jan 05 10:15:53 2012 -0800"
      },
      "message": "Revert \"printk: Don\u0027t allow cpu to get console lock during hotplugging\"\n\nThis reverts commit 2aba4e8b5e3aaac879ab2f0f88ee6396cdab30a7.\n\nSince sched domains are allocated dynamically now these\nchanges are N/A for 3.0. Hence the revert.\n\nChange-Id: Ic6455ac02afd4191dc071343ebc303ab68df2bf9\nSigned-off-by: Michael Bohan \u003cmbohan@codeaurora.org\u003e\n"
    },
    {
      "commit": "6c0389f123f5377c885ef49574c270785c3a8589",
      "tree": "79f24bc1f4736f96a746c95463cbd77aa447f079",
      "parents": [
        "4a948998dbc53b801cb26a107b1a0ef720c0bfc2"
      ],
      "author": {
        "name": "Michael Bohan",
        "email": "mbohan@codeaurora.org",
        "time": "Mon Dec 19 14:53:47 2011 -0800"
      },
      "committer": {
        "name": "Michael Bohan",
        "email": "mbohan@codeaurora.org",
        "time": "Thu Jan 05 10:15:53 2012 -0800"
      },
      "message": "Revert \"partition_sched_domains: Do not destroy old sched domain on cpu_up\"\n\nThis reverts commit e0473b4aafe9013a27749518afd449594f158b04.\n\nSince sched domains are allocated dynamically now, these\nchanges are N/A for 3.0. Hence the revert.\n\nChange-Id: I3ac329f298107f4ebdee6a1aab771d2be8ca5f5c\nSigned-off-by: Michael Bohan \u003cmbohan@codeaurora.org\u003e\n"
    },
    {
      "commit": "f10f2a8bad44078c11378d9a0da025bc4a8e0f15",
      "tree": "b486463f6c5278b8fe1ab0641ab5da20c11e8591",
      "parents": [
        "0c629385aede73f6121148cdddb791d384d6ca9d"
      ],
      "author": {
        "name": "Amar Singhal",
        "email": "asinghal@codeaurora.org",
        "time": "Mon Dec 19 13:17:51 2011 -0800"
      },
      "committer": {
        "name": "Amar Singhal",
        "email": "asinghal@codeaurora.org",
        "time": "Wed Jan 04 12:24:24 2012 -0800"
      },
      "message": "tick-sched: change the cpu that updates rq_stats\n\nIt can happen that the scheduler tick stops on cpu 0 but keeps\nrunning on some other cpu. Make the cpu in-charge of updating\nthe jiffies also update the rq_stats.\n\nChange-Id: Idb1a8132bd96500c68c516b4a99663965cec28e1\nSigned-off-by: Amar Singhal \u003casinghal@codeaurora.org\u003e\n"
    },
    {
      "commit": "60fe460c072b19aeda65adf17cd59bf3a946db8d",
      "tree": "c8f8202e3c3e42eb290bf304605034305576186b",
      "parents": [
        "36b2c36335003a8d7eee62ae3ab73cfd99268302"
      ],
      "author": {
        "name": "Rob Herring",
        "email": "rob.herring@calxeda.com",
        "time": "Fri Sep 30 10:48:38 2011 -0500"
      },
      "committer": {
        "name": "Trilok Soni",
        "email": "tsoni@codeaurora.org",
        "time": "Mon Dec 26 15:47:59 2011 +0530"
      },
      "message": "irq: support domains with non-zero hwirq base\n\nInterrupt controllers can have non-zero starting value for h/w irq numbers.\nAdding support in irq_domain allows the domain hwirq numbering to match\nthe interrupt controllers\u0027 numbering.\n\nAs this makes looping over irqs for a domain more complicated, add loop\niterators to iterate over all hwirqs and irqs for a domain.\n\nChange-Id: I64774aea2f3efb883fe11e9f6161970f7e7dc0fc\nSigned-off-by: Rob Herring \u003crob.herring@calxeda.com\u003e\nReviewed-by: Jamie Iles \u003cjamie@jamieiles.com\u003e\nTested-by: Thomas Abraham \u003cthomas.abraham@linaro.org\u003e\nAcked-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nAcked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Trilok Soni \u003ctsoni@codeaurora.org\u003e\n"
    },
    {
      "commit": "36b2c36335003a8d7eee62ae3ab73cfd99268302",
      "tree": "f03226e2833d99b68ed2ad20fc75a3447dcae445",
      "parents": [
        "19d9d54b6b92b04eb8edccc1a3b86270caa84b89"
      ],
      "author": {
        "name": "Rob Herring",
        "email": "robherring2@gmail.com",
        "time": "Wed Sep 14 11:31:37 2011 -0500"
      },
      "committer": {
        "name": "Trilok Soni",
        "email": "tsoni@codeaurora.org",
        "time": "Mon Dec 26 15:47:57 2011 +0530"
      },
      "message": "irq: Fix check for already initialized irq_domain in irq_domain_add\n\nThe sanity check in irq_domain_add() tests desc-\u003eirq_data !\u003d NULL or\nirq_data-\u003edomain !\u003d NULL. This prevents adding an irq_domain to a irq\ndescriptor when irq_data exists, which true when the irq descriptor\nexists.\n\nThis went unnoticed so far as the simple domain code did not enter\nthis code path because domain-\u003enr_irqs is always 0 for the simple domains.\n\nSplit the check for irq_data \u003d\u003d NULL out and have a separate warning\nfor it.\n\n[ tglx: Made the check for irq_data \u003d\u003d NULL separate ]\n\nChange-Id: I4d22d3a638b4fcd908a491ec0cb3273db6935dc2\nSigned-off-by: Rob Herring \u003crob.herring@calxeda.com\u003e\nCc: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nCc: marc.zyngier@arm.com\nCc: thomas.abraham@linaro.org\nCc: jamie@jamieiles.com\nCc: b-cousson@ti.com\nCc: shawn.guo@linaro.org\nCc: linux-arm-kernel@lists.infradead.org\nCc: devicetree-discuss@lists.ozlabs.org\nLink: http://lkml.kernel.org/r/1316017900-19918-3-git-send-email-robherring2@gmail.com\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Trilok Soni \u003ctsoni@codeaurora.org\u003e\n"
    },
    {
      "commit": "1714337153c9b1fc24eb8597e94f6205183227c5",
      "tree": "54c4657b8b5e91411e2b0580a45852a4bc179f7a",
      "parents": [
        "2c4d6f229d29c4c44b5ea0ccd6b1cf53bc02a594"
      ],
      "author": {
        "name": "Trilok Soni",
        "email": "tsoni@codeaurora.org",
        "time": "Fri Sep 30 10:48:47 2011 +0100"
      },
      "committer": {
        "name": "Trilok Soni",
        "email": "tsoni@codeaurora.org",
        "time": "Sat Dec 10 16:34:15 2011 +0530"
      },
      "message": "genirq: percpu: allow interrupt type to be set at enable time\n\nThe commit 1e7c5fd breaks the build which gets fixed in the\nnext commit 32cffdd.\n\ncommit 1e7c5fd29487ee88cb3abac945bafa60ae026146\nAuthor: Marc Zyngier \u003cmarc.zyngier@arm.com\u003e\nDate:   Fri Sep 30 10:48:47 2011 +0100\n\n    genirq: percpu: allow interrupt type to be set at enable time\n\n    As request_percpu_irq() doesn\u0027t allow for a percpu interrupt to have\n    its type configured (it is generally impossible to configure it on all\n    CPUs at once), add a \u0027type\u0027 argument to enable_percpu_irq().\n\n    This allows some low-level, board specific init code to be switched to\n    a generic API.\n\n    [ tglx: Added WARN_ON argument ]\n\n    Signed-off-by: Marc Zyngier \u003cmarc.zyngier@arm.com\u003e\n    Cc: Abhijeet Dharmapurikar \u003cadharmap@codeaurora.org\u003e\n    Signed-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n\ncommit 32cffdde4a3ee6c2d9e0f0a94edecf1a9ce7586b\nAuthor: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nDate:   Tue Oct 4 18:43:57 2011 +0200\n\n    genirq: Fix fatfinered fixup really\n\n    Putting the argument inside the quote does not really help.\n\n    Signed-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n\nChange-Id: I1c9e58dd8788b5515f183ec169975d48a329b339\n[tsoni@codeaurora.org: Fixup MSM build failure]\nSigned-off-by: Trilok Soni \u003ctsoni@codeaurora.org\u003e\n"
    },
    {
      "commit": "2c4d6f229d29c4c44b5ea0ccd6b1cf53bc02a594",
      "tree": "5c7401f9bfaee66ff2e2c6d3654039dfb0d154d1",
      "parents": [
        "6f1c405828afce2ac53f5fcacb1312f597e92d33"
      ],
      "author": {
        "name": "Marc Zyngier",
        "email": "marc.zyngier@arm.com",
        "time": "Fri Sep 23 17:03:06 2011 +0100"
      },
      "committer": {
        "name": "Trilok Soni",
        "email": "tsoni@codeaurora.org",
        "time": "Sat Dec 10 16:34:13 2011 +0530"
      },
      "message": "genirq: Add support for per-cpu dev_id interrupts\n\nThe ARM GIC interrupt controller offers per CPU interrupts (PPIs),\nwhich are usually used to connect local timers to each core. Each CPU\nhas its own private interface to the GIC, and only sees the PPIs that\nare directly connect to it.\n\nWhile these timers are separate devices and have a separate interrupt\nline to a core, they all use the same IRQ number.\n\nFor these devices, request_irq() is not the right API as it assumes\nthat an IRQ number is visible by a number of CPUs (through the\naffinity setting), but makes it very awkward to express that an IRQ\nnumber can be handled by all CPUs, and yet be a different interrupt\nline on each CPU, requiring a different dev_id cookie to be passed\nback to the handler.\n\nThe *_percpu_irq() functions is designed to overcome these\nlimitations, by providing a per-cpu dev_id vector:\n\nint request_percpu_irq(unsigned int irq, irq_handler_t handler,\n\t\t   const char *devname, void __percpu *percpu_dev_id);\nvoid free_percpu_irq(unsigned int, void __percpu *);\nint setup_percpu_irq(unsigned int irq, struct irqaction *new);\nvoid remove_percpu_irq(unsigned int irq, struct irqaction *act);\nvoid enable_percpu_irq(unsigned int irq);\nvoid disable_percpu_irq(unsigned int irq);\n\nThe API has a number of limitations:\n- no interrupt sharing\n- no threading\n- common handler across all the CPUs\n\nOnce the interrupt is requested using setup_percpu_irq() or\nrequest_percpu_irq(), it must be enabled by each core that wishes its\nlocal interrupt to be delivered.\n\nBased on an initial patch by Thomas Gleixner.\n\nChange-Id: I3e3d0f36e04added105753d30b2ef07e3d9d6a56\nSigned-off-by: Marc Zyngier \u003cmarc.zyngier@arm.com\u003e\nCc: linux-arm-kernel@lists.infradead.org\nLink: http://lkml.kernel.org/r/1316793788-14500-2-git-send-email-marc.zyngier@arm.com\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n[kumarrav@codeaurora.org: fixup manage.c merge conflict]\nSigned-off-by: Ravi Kumar \u003ckumarrav@codeaurora.org\u003e\n"
    },
    {
      "commit": "6f1c405828afce2ac53f5fcacb1312f597e92d33",
      "tree": "10545f4f5436b3ea715b1b7f1a2dd49b8f7f0a02",
      "parents": [
        "9a48df2d29848d4751745761c1a9386287eaaa2d"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "sebastian@breakpoint.cc",
        "time": "Mon Jul 11 12:17:31 2011 +0200"
      },
      "committer": {
        "name": "Trilok Soni",
        "email": "tsoni@codeaurora.org",
        "time": "Sat Dec 10 16:34:12 2011 +0530"
      },
      "message": "irq: Track the owner of irq descriptor\n\nInterrupt descriptors can be allocated from modules. The interrupts\nare used by other modules, but we have no refcount on the module which\nprovides the interrupts and there is no way to establish one on the\ndevice level as the interrupt using module is agnostic to the fact\nthat the interrupt is provided by a module rather than by some builtin\ninterrupt controller.\n\nTo prevent removal of the interrupt providing module, we can track the\nowner of the interrupt descriptor, which also provides the relevant\nirq chip functions in the irq descriptor.\n\nrequest/setup_irq() can now acquire a refcount on the owner module to\nprevent unloading. free_irq() drops the refcount.\n\nChange-Id: I132df8e65d4e01db4f15dba0868607c7cdd33e14\nSigned-off-by: Sebastian Andrzej Siewior \u003csebastian@breakpoint.cc\u003e\nLink: http://lkml.kernel.org/r/20110711101731.GA13804@Chamillionaire.breakpoint.cc\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ravi Kumar \u003ckumarrav@codeaurora.org\u003e\n"
    },
    {
      "commit": "45db69a9fd0d36ec3fafcf0255cf9a592df0c49c",
      "tree": "ac411234281e424f48c674a86cb42ca874e8f605",
      "parents": [
        "b9599f1d4d913ecc85cdd0ebe16dee8210120753"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Tue Aug 23 13:20:46 2011 +0200"
      },
      "committer": {
        "name": "Jeff Ohlstein",
        "email": "johlstei@codeaurora.org",
        "time": "Wed Dec 07 13:12:14 2011 -0800"
      },
      "message": "nohz: Remove \"Switched to NOHz mode\" debugging messages\n\nWhen performing cpu hotplug tests the kernel printk log buffer gets flooded\nwith pointless \"Switched to NOHz mode...\" messages. Especially when afterwards\nanalyzing a dump this might have removed more interesting stuff out of the\nbuffer.\nAssuming that switching to NOHz mode simply works just remove the printk.\n\nChange-Id: I1746f8c0119a512055716c3fd77a966b735ca49b\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nLink: http://lkml.kernel.org/r/20110823112046.GB2540@osiris.boeblingen.de.ibm.com\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Jeff Ohlstein \u003cjohlstei@codeaurora.org\u003e\n"
    },
    {
      "commit": "219a067fc90ff329bed117238e4f79b70f9b8719",
      "tree": "7f348ceae68395bf30a08b1beb43b7a8c5d70ab0",
      "parents": [
        "3d576c041485ad582b1027f9a3cbcfa86f4c762a",
        "b599ff7fcb262317403bb1be613ab52b9e2a07fc"
      ],
      "author": {
        "name": "Linux Build Service Account",
        "email": "lnxbuild@localhost",
        "time": "Fri Dec 02 21:29:05 2011 -0800"
      },
      "committer": {
        "name": "QuIC Gerrit Code Review",
        "email": "code-review@localhost",
        "time": "Fri Dec 02 21:29:05 2011 -0800"
      },
      "message": "Merge \"Revert \"power: wakelock: don\u0027t set check_done flag if aborting\"\" into msm-3.0"
    },
    {
      "commit": "06e857251e781e36453009b3efb338dc8fff6528",
      "tree": "cb35d6df7ec8779991c2438c3060c71586624e83",
      "parents": [
        "133ddac5a8ef75139bb2f8275e4d45f348c15105"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Nov 09 16:39:19 2011 -0500"
      },
      "committer": {
        "name": "Ashwin Chaugule",
        "email": "ashwinc@codeaurora.org",
        "time": "Tue Nov 29 16:42:33 2011 -0500"
      },
      "message": "ARM: cpu_pm: Add cpu power management notifiers\n\nDuring some CPU power modes entered during idle, hotplug and\nsuspend, peripherals located in the CPU power domain, such as\nthe GIC, localtimers, and VFP, may be powered down.  Add a\nnotifier chain that allows drivers for those peripherals to\nbe notified before and after they may be reset.\n\nSigned-off-by: Colin Cross \u003cccross \u003cat\u003e android.com\u003e\n[santosh.shilimkar \u003cat\u003e ti.com: Rebased against 3.1-rc3]\nSigned-off-by: Santosh Shilimkar \u003csantosh.shilimkar \u003cat\u003e ti.com\u003e\nTested-by: Kevin Hilman \u003ckhilman \u003cat\u003e ti.com\u003e\nChange-Id: I6e076344b268869d12033f57321f3e7cf23b05e8\nSigned-off-by: Ashwin Chaugule \u003cashwinc@codeaurora.org\u003e\n"
    },
    {
      "commit": "b599ff7fcb262317403bb1be613ab52b9e2a07fc",
      "tree": "f3b6bfa8496a13d7402051a891d3991f17fc676e",
      "parents": [
        "4b0f0d9b57b19ecd3a7d03460cb9682b0dc3544e"
      ],
      "author": {
        "name": "Patrick Cain",
        "email": "pcain@codeaurora.org",
        "time": "Mon Nov 28 14:41:25 2011 -0800"
      },
      "committer": {
        "name": "Patrick Cain",
        "email": "pcain@codeaurora.org",
        "time": "Mon Nov 28 14:41:25 2011 -0800"
      },
      "message": "Revert \"power: wakelock: don\u0027t set check_done flag if aborting\"\n\nThis reverts commit 7ef4dbaa2adcadb39b5b60051d637e0203c7b6ba.\n\nRevert \"power: wakelock: BUG if wakelock is taken very late\"\n\nThis reverts commit 57b34bbdca587ed67ed3d6fc9a83cf3564ac770d.\n\nChange-Id: Ie1288b5e6c899ac4419c55b91cb024b8093b5ffe\nSigned-off-by: Patrick Cain \u003cpcain@codeaurora.org\u003e\n"
    },
    {
      "commit": "949f8650085a5d20168f626e237540bf35e6ba67",
      "tree": "4b8cd42f0fe53a6567688c901ab2c3df834af7f3",
      "parents": [
        "8f6490befbf6ae217b2d674b4f01b5358a3edcac",
        "ead6b5105018ab86db3c39f1c909b2e696a08317"
      ],
      "author": {
        "name": "Linux Build Service Account",
        "email": "lnxbuild@localhost",
        "time": "Wed Nov 23 14:51:07 2011 -0800"
      },
      "committer": {
        "name": "QuIC Gerrit Code Review",
        "email": "code-review@localhost",
        "time": "Wed Nov 23 14:51:07 2011 -0800"
      },
      "message": "Merge \"hrtimer: remove timerqueue node before reprogramming clockevent device\" into msm-3.0"
    },
    {
      "commit": "ead6b5105018ab86db3c39f1c909b2e696a08317",
      "tree": "a17eed607317dcb071086d7b3b3f71a6ac75c186",
      "parents": [
        "5ceed1e252c91d96d14c924e276e3f8ba9af100a"
      ],
      "author": {
        "name": "Jeff Ohlstein",
        "email": "johlstei@codeaurora.org",
        "time": "Thu Nov 17 13:49:36 2011 -0800"
      },
      "committer": {
        "name": "Jeff Ohlstein",
        "email": "johlstei@codeaurora.org",
        "time": "Thu Nov 17 16:25:08 2011 -0800"
      },
      "message": "hrtimer: remove timerqueue node before reprogramming clockevent device\n\nCurrently the __remove_hrtimer function attempts to reprogram the\nclockevent device so that we don\u0027t wake up unnecessarily from a timer we\nhave deleted. However, it does the reprogramming before actually\nremoving the timer in question from the timerqueue, so it turns into a\nnoop. This causes us to have an extra wakeup every time we remove the\ntimer that fires this. This is especially noticeable when the system\ngoes idle and we switch to NOHZ mode, as the system will always wakeup\none extra time when the system tick is removed.\n\nChange-Id: If8656bbf85694228f279923fa86bd798d23e0f49\nSigned-off-by: Jeff Ohlstein \u003cjohlstei@codeaurora.org\u003e\n"
    },
    {
      "commit": "d074fa2796bdbc42c4f918c78d6711bafc80b1c8",
      "tree": "033929706a0aae95f65c134a8fc09cec3fb3e75d",
      "parents": [
        "53ae1740b250e4d02dd7a6ca82075355ad99dc23",
        "9ab6a29787b1221a697f85835645549668258bdc"
      ],
      "author": {
        "name": "Bryan Huntsman",
        "email": "bryanh@codeaurora.org",
        "time": "Wed Nov 16 13:52:50 2011 -0800"
      },
      "committer": {
        "name": "Bryan Huntsman",
        "email": "bryanh@codeaurora.org",
        "time": "Wed Nov 16 13:52:50 2011 -0800"
      },
      "message": "Merge remote-tracking branch \u0027common/android-3.0\u0027 into msm-3.0\n\n* common/android-3.0: (570 commits)\n  misc: remove kernel debugger core\n  ARM: common: fiq_debugger: dump sysrq directly to console if enabled\n  ARM: common: fiq_debugger: add irq context debug functions\n  net: wireless: bcmdhd: Call init_ioctl() only if was started properly for WEXT\n  net: wireless: bcmdhd: Call init_ioctl() only if was started properly\n  net: wireless: bcmdhd: Fix possible memory leak in escan/iscan\n  cpufreq: interactive governor: default 20ms timer\n  cpufreq: interactive governor: go to intermediate hi speed before max\n  cpufreq: interactive governor: scale to max only if at min speed\n  cpufreq: interactive governor: apply intermediate load on current speed\n  ARM: idle: update idle ticks before call idle end notifier\n  input: gpio_input: don\u0027t print debounce message unless flag is set\n  net: wireless: bcm4329: Skip dhd_bus_stop() if bus is already down\n  net: wireless: bcmdhd: Skip dhd_bus_stop() if bus is already down\n  net: wireless: bcmdhd: Improve suspend/resume processing\n  net: wireless: bcmdhd: Check if FW is Ok for internal FW call\n  tcp: Don\u0027t nuke connections for the wrong protocol\n  ARM: common: fiq_debugger: make uart irq be no_suspend\n  net: wireless: Skip connect warning for CONFIG_CFG80211_ALLOW_RECONNECT\n  mm: avoid livelock on !__GFP_FS allocations\n  ...\n\nConflicts:\n\tarch/arm/mm/cache-l2x0.c\n\tarch/arm/vfp/vfpmodule.c\n\tdrivers/mmc/core/host.c\n\tkernel/power/wakelock.c\n\tnet/bluetooth/hci_event.c\n\nSigned-off-by: Bryan Huntsman \u003cbryanh@codeaurora.org\u003e\n"
    },
    {
      "commit": "afcffe54c379314f8e97610673d7ea783f559d58",
      "tree": "d4ca259e42a8f20a40bf4a7e97bca51b989f6102",
      "parents": [
        "b811aa7237b013a03c62266ae10ed79e27a4fe38"
      ],
      "author": {
        "name": "Patrick Cain",
        "email": "pcain@codeaurora.org",
        "time": "Fri Nov 04 14:25:55 2011 -0700"
      },
      "committer": {
        "name": "Abhijeet Dharmapurikar",
        "email": "adharmap@codeaurora.org",
        "time": "Tue Nov 08 23:21:57 2011 -0800"
      },
      "message": "Revert \"power: wakelock: don\u0027t set check_done flag if aborting\"\n\nThis reverts commit 7ef4dbaa2adcadb39b5b60051d637e0203c7b6ba.\n\nRevert \"power: wakelock: BUG if wakelock is taken very late\"\n\nThis reverts commit 57b34bbdca587ed67ed3d6fc9a83cf3564ac770d.\n\nChange-Id: Id4e05b191cf7781b8e0d0bed42f1c136b1ac428e\nSigned-off-by: Abhijeet Dharmapurikar \u003cadharmap@codeaurora.org\u003e\n"
    },
    {
      "commit": "b811aa7237b013a03c62266ae10ed79e27a4fe38",
      "tree": "a35f2ecf2e46792fc3663c2223b73268217f67be",
      "parents": [
        "6f6fdc65bfe8c38b6d905903de911eaed2a74e18"
      ],
      "author": {
        "name": "Patrick Cain",
        "email": "pcain@codeaurora.org",
        "time": "Fri Nov 04 14:25:36 2011 -0700"
      },
      "committer": {
        "name": "Patrick Cain",
        "email": "pcain@codeaurora.org",
        "time": "Fri Nov 04 14:25:36 2011 -0700"
      },
      "message": "Revert \"power: wakelock: reset wakelock checked early\"\n\nThis reverts commit fa3a6d5572e22676c8c93775662b0d755a8dca85.\n\nSigned-off-by: Patrick Cain \u003cpcain@codeaurora.org\u003e\n"
    },
    {
      "commit": "2bb3e310159b65c88caf0c67a20ed257568be267",
      "tree": "e4ad01c06a9e27939781c5dd9d0cb92e6fcd54d5",
      "parents": [
        "2f53cb72c1574d3880d9e88e254b756565fe2f6d",
        "97596c34030ed28657ccafddb67e17a03890b90a"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Oct 27 15:01:19 2011 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Oct 27 15:01:19 2011 -0700"
      },
      "message": "Merge commit \u0027v3.0.8\u0027 into android-3.0\n"
    },
    {
      "commit": "fa3a6d5572e22676c8c93775662b0d755a8dca85",
      "tree": "e57f4c557fa8f09ebb1fd6726af15b68bd053efe",
      "parents": [
        "54932793d51fde72af2942ee120126412489b134"
      ],
      "author": {
        "name": "Abhijeet Dharmapurikar",
        "email": "adharmap@codeaurora.org",
        "time": "Tue Oct 25 20:14:44 2011 -0700"
      },
      "committer": {
        "name": "Abhijeet Dharmapurikar",
        "email": "adharmap@codeaurora.org",
        "time": "Tue Oct 25 20:14:44 2011 -0700"
      },
      "message": "power: wakelock: reset wakelock checked early\n\nCurrently we reset msm_suspend_check_done in resume_noirq and set it\nin the suspend_noirq stage right after the wakelock checks are done.\n\nAn issue is discovered recently that a wakelock can be held much earlier\nin the resume sequence - a tasklet was scheduled right in the arch specifc\nresume path, and this tasklet was run as soon as local interrupt was\nenabled (the I bit in the CPSR for arm processors).  The tasklet endedup\ngrabbing a wakelock thus causing a BUG.\n\nTo avoid this situation reset msm_suspend_check_done before enabling local\ninterrupts using the syscore ops.\n\nChange-Id: I12766cb759134185e9727829f71893934492cc5f\nSigned-off-by: Abhijeet Dharmapurikar \u003cadharmap@codeaurora.org\u003e\n"
    },
    {
      "commit": "607ce3ed1cf6aa5af82a12faf1adf0de5d2f583e",
      "tree": "c362e60a92b358b460147092ea479bb3f52055c8",
      "parents": [
        "f62f4cad504f32e9d4e407ea5ba8a743da399a8a"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Oct 17 11:50:30 2011 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Oct 25 07:10:14 2011 +0200"
      },
      "message": "cputimer: Cure lock inversion\n\ncommit bcd5cff7216f9b2de0a148cc355eac199dc6f1cf upstream.\n\nThere\u0027s a lock inversion between the cputimer-\u003elock and rq-\u003elock;\nnotably the two callchains involved are:\n\n update_rlimit_cpu()\n   sighand-\u003esiglock\n   set_process_cpu_timer()\n     cpu_timer_sample_group()\n       thread_group_cputimer()\n         cputimer-\u003elock\n         thread_group_cputime()\n           task_sched_runtime()\n             -\u003epi_lock\n             rq-\u003elock\n\n scheduler_tick()\n   rq-\u003elock\n   task_tick_fair()\n     update_curr()\n       account_group_exec()\n         cputimer-\u003elock\n\nWhere the first one is enabling a CLOCK_PROCESS_CPUTIME_ID timer, and\nthe second one is keeping up-to-date.\n\nThis problem was introduced by e8abccb7193 (\"posix-cpu-timers: Cure\nSMP accounting oddities\").\n\nCure the problem by removing the cputimer-\u003elock and rq-\u003elock nesting,\nthis leaves concurrent enablers doing duplicate work, but the time\nwasted should be on the same order otherwise wasted spinning on the\nlock and the greater-than assignment filter should ensure we preserve\nmonotonicity.\n\nReported-by: Dave Jones \u003cdavej@redhat.com\u003e\nReported-by: Simon Kirby \u003csim@hostway.ca\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nLink: http://lkml.kernel.org/r/1318928713.21167.4.camel@twins\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "60635529f6aec7572ae7009aabd80558cf2f43b4",
      "tree": "d1e0354991824e03a169dd784158cd1894c2d417",
      "parents": [
        "05ffb6746c59a967115714ea1e5b8412291874ea"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 17 08:24:24 2011 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Oct 25 07:10:14 2011 +0200"
      },
      "message": "Avoid using variable-length arrays in kernel/sys.c\n\ncommit a84a79e4d369a73c0130b5858199e949432da4c6 upstream.\n\nThe size is always valid, but variable-length arrays generate worse code\nfor no good reason (unless the function happens to be inlined and the\ncompiler sees the length for the simple constant it is).\n\nAlso, there seems to be some code generation problem on POWER, where\nHenrik Bakken reports that register r28 can get corrupted under some\nsubtle circumstances (interrupt happening at the wrong time?).  That all\nindicates some seriously broken compiler issues, but since variable\nlength arrays are bad regardless, there\u0027s little point in trying to\nchase it down.\n\n\"Just don\u0027t do that, then\".\n\nReported-by: Henrik Grindal Bakken \u003chenribak@cisco.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "971a0ee566cbe64558020ee6c254910516a43549",
      "tree": "a2d7fa66effa881da7c7fdb70c702a2867446550",
      "parents": [
        "6469dfb4eeada88ded776eebdd8a687146ffa286"
      ],
      "author": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Tue Jul 26 03:19:06 2011 -0600"
      },
      "committer": {
        "name": "Sathish Ambley",
        "email": "sambley@codeaurora.org",
        "time": "Mon Oct 24 10:42:45 2011 -0700"
      },
      "message": "dt/irq: add irq_domain_generate_simple() helper\n\nirq_domain_generate_simple() is an easy way to generate an irq translation\ndomain for simple irq controllers.  It assumes a flat 1:1 mapping from\nhardware irq number to an offset of the first linux irq number assigned\nto the controller\n\nChange-Id: I0820754314a0c15b1cc9881bc38b75b0de2509b2\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nSigned-off-by: Sathish Ambley \u003csambley@codeaurora.org\u003e\n"
    },
    {
      "commit": "6469dfb4eeada88ded776eebdd8a687146ffa286",
      "tree": "bda65acc3b37508de2c9829cb18bc90ea9fabdd1",
      "parents": [
        "00f0deb25f2074062b0af7db870b8f34b4906b1d"
      ],
      "author": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Tue Jul 26 03:19:06 2011 -0600"
      },
      "committer": {
        "name": "Sathish Ambley",
        "email": "sambley@codeaurora.org",
        "time": "Mon Oct 24 10:42:45 2011 -0700"
      },
      "message": "irq: add irq_domain translation infrastructure\n\nThis patch adds irq_domain infrastructure for translating from\nhardware irq numbers to linux irqs.  This is particularly important\nfor architectures adding device tree support because the current\nimplementation (excluding PowerPC and SPARC) cannot handle\ntranslation for more than a single interrupt controller.  irq_domain\nsupports device tree translation for any number of interrupt\ncontrollers.\n\nThis patch converts x86, Microblaze, ARM and MIPS to use irq_domain\nfor device tree irq translation.  x86 is untested beyond compiling it,\nirq_domain is enabled for MIPS and Microblaze, but the old behaviour is\npreserved until the core code is modified to actually register an\nirq_domain yet.  On ARM it works and is required for much of the new\nARM device tree board support.\n\nPowerPC has /not/ been converted to use this new infrastructure.  It\nis still missing some features before it can replace the virq\ninfrastructure already in powerpc (see documentation on\nirq_domain_map/unmap for details).  Followup patches will add the\nmissing pieces and migrate PowerPC to use irq_domain.\n\nSPARC has its own method of managing interrupts from the device tree\nand is unaffected by this change.\n\nChange-Id: Ia5fa674a97c85e2fc8e30275753b1494a97bd1d9\nAcked-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nSigned-off-by: Sathish Ambley \u003csambley@codeaurora.org\u003e\n"
    },
    {
      "commit": "e9baa79ea038ac2dfd3c8eb3ec33b9c4e8101b25",
      "tree": "e05fd0f8c920de87dbf17a59acf49e4467d8c424",
      "parents": [
        "74e902972e0a0d207dbcc4b50c5c2720404294bf",
        "b615b0e3d4661277cfef5e94957dfa62b4d94bb9"
      ],
      "author": {
        "name": "Linux Build Service Account",
        "email": "lnxbuild@localhost",
        "time": "Mon Oct 24 03:04:12 2011 -0700"
      },
      "committer": {
        "name": "QuIC Gerrit Code Review",
        "email": "code-review@localhost",
        "time": "Mon Oct 24 03:04:12 2011 -0700"
      },
      "message": "Merge \"genirq: chip: set pending only for edge interrupts\" into msm-3.0"
    },
    {
      "commit": "b615b0e3d4661277cfef5e94957dfa62b4d94bb9",
      "tree": "d6c9aedd2ccf6f73257982def9b73fbdaa361968",
      "parents": [
        "c60c2d46299ec789b639c9b0e7dc82f130fa6603"
      ],
      "author": {
        "name": "Abhijeet Dharmapurikar",
        "email": "adharmap@codeaurora.org",
        "time": "Fri Oct 21 19:59:05 2011 -0700"
      },
      "committer": {
        "name": "Abhijeet Dharmapurikar",
        "email": "adharmap@codeaurora.org",
        "time": "Fri Oct 21 20:32:18 2011 -0700"
      },
      "message": "genirq: chip: set pending only for edge interrupts\n\nThe IRQS_PENDING flag is meant to record an edge interrupt trigger event\nwhen that interrupt is disabled.\n\nWhen an edge triggered interrupt is enabled, check_irq_resend() retriggers\nthat irq and resets the flag to zero if set. Note that check_irq_resend()\nonly does this for edge triggered interrupts.\n\nFor level triggered interrupts it is expected that the interrupt remains\nactive and doesn\u0027t need this PENDING flag assistance from software for\nre-triggering it.\n\nHowever, handle_fasteoi_irq flow handler sets the PENDING flag even for\na disabled level interrupt. This causes an adverse effect if that level\ninterrupt is marked wakeup. The suspend code sees the pending flag on a\nwakeup interrupt and aborts suspend whereas check_irq_resend does not reset\nit to 0 (as it is a level interrupt). The end result is that the PENDING\nflag on this level triggered wakeup interrupt never clears and the system\n keeps aborting suspend.\n\nFix this by setting IRQS_PENDING flag only for edge interrupts in the\nhandle_fasteoi_irq.\n\nCRs-Fixed: 314344\nChange-Id: I775d40f434f9309fd9672bae372b0f0fb5b91627\nSigned-off-by: Abhijeet Dharmapurikar \u003cadharmap@codeaurora.org\u003e\n"
    },
    {
      "commit": "f49d99bc4168c7937655bb09989cc72525163b40",
      "tree": "ad0c9564e7bb8b3e845917440ee34578fb8f5e51",
      "parents": [
        "a21ec56a1e1d13b1cc3a6f62a39c2be49c450747"
      ],
      "author": {
        "name": "Amar Singhal",
        "email": "asinghal@codeaurora.org",
        "time": "Mon Aug 22 19:02:04 2011 -0700"
      },
      "committer": {
        "name": "Amar Singhal",
        "email": "asinghal@codeaurora.org",
        "time": "Thu Oct 20 14:35:49 2011 -0700"
      },
      "message": "rq_stats: Doing rq_stats calculation in the scheduler tick.\n\nWith this change, we do the average run queue statistics calculation\nin the scheduler tick itself. This helps avoid any extra timers to\ndo the same. Also doing this calculation in the scheduler tick avoids\nany bias if the calculation is done in a workqueue\n\nChange-Id: I854d90acc05cc7a7226487be5555976826d8c837\nSigned-off-by: Amar Singhal \u003casinghal@codeaurora.org\u003e\n"
    },
    {
      "commit": "9374622a9923b2343ee2f5083ebe6c51fcc914c5",
      "tree": "e8bb3d4a219b791361b4c9d716350d17be0b7d8f",
      "parents": [
        "d7f04c486e494bf96166ff53b0957369e32509c6"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Jul 14 23:02:27 2011 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Sun Oct 16 14:14:55 2011 -0700"
      },
      "message": "ftrace: Fix regression where ftrace breaks when modules are loaded\n\ncommit f7bc8b61f65726ff98f52e286b28e294499d7a08 upstream.\n\nEnabling function tracer to trace all functions, then load a module and\nthen disable function tracing will cause ftrace to fail.\n\nThis can also happen by enabling function tracing on the command line:\n\n  ftrace\u003dfunction\n\nand during boot up, modules are loaded, then you disable function tracing\nwith \u0027echo nop \u003e current_tracer\u0027 you will trigger a bug in ftrace that\nwill shut itself down.\n\nThe reason is, the new ftrace code keeps ref counts of all ftrace_ops that\nare registered for tracing. When one or more ftrace_ops are registered,\nall the records that represent the functions that the ftrace_ops will\ntrace have a ref count incremented. If this ref count is not zero,\nwhen the code modification runs, that function will be enabled for tracing.\nIf the ref count is zero, that function will be disabled from tracing.\n\nTo make sure the accounting was working, FTRACE_WARN_ON()s were added\nto updating of the ref counts.\n\nIf the ref count hits its max (\u003e 2^30 ftrace_ops added), or if\nthe ref count goes below zero, a FTRACE_WARN_ON() is triggered which\ndisables all modification of code.\n\nSince it is common for ftrace_ops to trace all functions in the kernel,\ninstead of creating \u003e 20,000 hash items for the ftrace_ops, the hash\ncount is just set to zero, and it represents that the ftrace_ops is\nto trace all functions. This is where the issues arrise.\n\nIf you enable function tracing to trace all functions, and then add\na module, the modules function records do not get the ref count updated.\nWhen the function tracer is disabled, all function records ref counts\nare subtracted. Since the modules never had their ref counts incremented,\nthey go below zero and the FTRACE_WARN_ON() is triggered.\n\nThe solution to this is rather simple. When modules are loaded, and\ntheir functions are added to the the ftrace pool, look to see if any\nftrace_ops are registered that trace all functions. And for those,\nupdate the ref count for the module function records.\n\nReported-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n\n"
    },
    {
      "commit": "d7f04c486e494bf96166ff53b0957369e32509c6",
      "tree": "5f133f3a4b823bcbdbe66aa1265254bf8f7e316f",
      "parents": [
        "e35c99bc50ef74c02244d6e6d40868f9a49a59be"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Jul 07 11:09:22 2011 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Sun Oct 16 14:14:55 2011 -0700"
      },
      "message": "ftrace: Fix regression of :mod:module function enabling\n\ncommit 43dd61c9a09bd413e837df829e6bfb42159be52a upstream.\n\nThe new code that allows different utilities to pick and choose\nwhat functions they trace broke the :mod: hook that allows users\nto trace only functions of a particular module.\n\nThe reason is that the :mod: hook bypasses the hash that is setup\nto allow individual users to trace their own functions and uses\nthe global hash directly. But if the global hash has not been\nset up, it will cause a bug:\n\necho \u0027*:mod:radeon\u0027 \u003e /sys/kernel/debug/set_ftrace_filter\n\nproduces:\n\n [drm:drm_mode_getfb] *ERROR* invalid framebuffer id\n [drm:radeon_crtc_page_flip] *ERROR* failed to reserve new rbo buffer before flip\n BUG: unable to handle kernel paging request at ffffffff8160ec90\n IP: [\u003cffffffff810d9136\u003e] add_hash_entry+0x66/0xd0\n PGD 1a05067 PUD 1a09063 PMD 80000000016001e1\n Oops: 0003 [#1] SMP Jul  7 04:02:28 phyllis kernel: [55303.858604] CPU 1\n Modules linked in: cryptd aes_x86_64 aes_generic binfmt_misc rfcomm bnep ip6table_filter hid radeon r8169 ahci libahci mii ttm drm_kms_helper drm video i2c_algo_bit intel_agp intel_gtt\n\n Pid: 10344, comm: bash Tainted: G        WC  3.0.0-rc5 #1 Dell Inc. Inspiron N5010/0YXXJJ\n RIP: 0010:[\u003cffffffff810d9136\u003e]  [\u003cffffffff810d9136\u003e] add_hash_entry+0x66/0xd0\n RSP: 0018:ffff88003a96bda8  EFLAGS: 00010246\n RAX: ffff8801301735c0 RBX: ffffffff8160ec80 RCX: 0000000000306ee0\n RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff880137c92940\n RBP: ffff88003a96bdb8 R08: ffff880137c95680 R09: 0000000000000000\n R10: 0000000000000001 R11: 0000000000000000 R12: ffffffff81c9df78\n R13: ffff8801153d1000 R14: 0000000000000000 R15: 0000000000000000\n FS: 00007f329c18a700(0000) GS:ffff880137c80000(0000) knlGS:0000000000000000\n CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033\n CR2: ffffffff8160ec90 CR3: 000000003002b000 CR4: 00000000000006e0\n DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000\n DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400\n Process bash (pid: 10344, threadinfo ffff88003a96a000, task ffff88012fcfc470)\n Stack:\n  0000000000000fd0 00000000000000fc ffff88003a96be38 ffffffff810d92f5\n  ffff88011c4c4e00 ffff880000000000 000000000b69f4d0 ffffffff8160ec80\n  ffff8800300e6f06 0000000081130295 0000000000000282 ffff8800300e6f00\n Call Trace:\n  [\u003cffffffff810d92f5\u003e] match_records+0x155/0x1b0\n  [\u003cffffffff810d940c\u003e] ftrace_mod_callback+0xbc/0x100\n  [\u003cffffffff810dafdf\u003e] ftrace_regex_write+0x16f/0x210\n  [\u003cffffffff810db09f\u003e] ftrace_filter_write+0xf/0x20\n  [\u003cffffffff81166e48\u003e] vfs_write+0xc8/0x190\n  [\u003cffffffff81167001\u003e] sys_write+0x51/0x90\n  [\u003cffffffff815c7e02\u003e] system_call_fastpath+0x16/0x1b\n Code: 48 8b 33 31 d2 48 85 f6 75 33 49 89 d4 4c 03 63 08 49 8b 14 24 48 85 d2 48 89 10 74 04 48 89 42 08 49 89 04 24 4c 89 60 08 31 d2\n RIP [\u003cffffffff810d9136\u003e] add_hash_entry+0x66/0xd0\n  RSP \u003cffff88003a96bda8\u003e\n CR2: ffffffff8160ec90\n ---[ end trace a5d031828efdd88e ]---\n\nReported-by: Brian Marete \u003cmarete@toshnix.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "249cf808ba1a0d403fe7c476a74b66e2bc0a8e53",
      "tree": "e090348cc2bc2a3a1a226f35e6c6f99f76c1bebb",
      "parents": [
        "3217df8e225c8579293fd2e193ba5cee709b6eba"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Sep 01 12:42:04 2011 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Sun Oct 16 14:14:51 2011 -0700"
      },
      "message": "posix-cpu-timers: Cure SMP wobbles\n\ncommit d670ec13178d0fd8680e6742a2bc6e04f28f87d8 upstream.\n\nDavid reported:\n\n  Attached below is a watered-down version of rt/tst-cpuclock2.c from\n  GLIBC.  Just build it with \"gcc -o test test.c -lpthread -lrt\" or\n  similar.\n\n  Run it several times, and you will see cases where the main thread\n  will measure a process clock difference before and after the nanosleep\n  which is smaller than the cpu-burner thread\u0027s individual thread clock\n  difference.  This doesn\u0027t make any sense since the cpu-burner thread\n  is part of the top-level process\u0027s thread group.\n\n  I\u0027ve reproduced this on both x86-64 and sparc64 (using both 32-bit and\n  64-bit binaries).\n\n  For example:\n\n  [davem@boricha build-x86_64-linux]$ ./test\n  process: before(0.001221967) after(0.498624371) diff(497402404)\n  thread:  before(0.000081692) after(0.498316431) diff(498234739)\n  self:    before(0.001223521) after(0.001240219) diff(16698)\n  [davem@boricha build-x86_64-linux]$\n\n  The diff of \u0027process\u0027 should always be \u003e\u003d the diff of \u0027thread\u0027.\n\n  I make sure to wrap the \u0027thread\u0027 clock measurements the most tightly\n  around the nanosleep() call, and that the \u0027process\u0027 clock measurements\n  are the outer-most ones.\n\n  ---\n  #include \u003cunistd.h\u003e\n  #include \u003cstdio.h\u003e\n  #include \u003cstdlib.h\u003e\n  #include \u003ctime.h\u003e\n  #include \u003cfcntl.h\u003e\n  #include \u003cstring.h\u003e\n  #include \u003cerrno.h\u003e\n  #include \u003cpthread.h\u003e\n\n  static pthread_barrier_t barrier;\n\n  static void *chew_cpu(void *arg)\n  {\n\t  pthread_barrier_wait(\u0026barrier);\n\t  while (1)\n\t\t  __asm__ __volatile__(\"\" : : : \"memory\");\n\t  return NULL;\n  }\n\n  int main(void)\n  {\n\t  clockid_t process_clock, my_thread_clock, th_clock;\n\t  struct timespec process_before, process_after;\n\t  struct timespec me_before, me_after;\n\t  struct timespec th_before, th_after;\n\t  struct timespec sleeptime;\n\t  unsigned long diff;\n\t  pthread_t th;\n\t  int err;\n\n\t  err \u003d clock_getcpuclockid(0, \u0026process_clock);\n\t  if (err)\n\t\t  return 1;\n\n\t  err \u003d pthread_getcpuclockid(pthread_self(), \u0026my_thread_clock);\n\t  if (err)\n\t\t  return 1;\n\n\t  pthread_barrier_init(\u0026barrier, NULL, 2);\n\t  err \u003d pthread_create(\u0026th, NULL, chew_cpu, NULL);\n\t  if (err)\n\t\t  return 1;\n\n\t  err \u003d pthread_getcpuclockid(th, \u0026th_clock);\n\t  if (err)\n\t\t  return 1;\n\n\t  pthread_barrier_wait(\u0026barrier);\n\n\t  err \u003d clock_gettime(process_clock, \u0026process_before);\n\t  if (err)\n\t\t  return 1;\n\n\t  err \u003d clock_gettime(my_thread_clock, \u0026me_before);\n\t  if (err)\n\t\t  return 1;\n\n\t  err \u003d clock_gettime(th_clock, \u0026th_before);\n\t  if (err)\n\t\t  return 1;\n\n\t  sleeptime.tv_sec \u003d 0;\n\t  sleeptime.tv_nsec \u003d 500000000;\n\t  nanosleep(\u0026sleeptime, NULL);\n\n\t  err \u003d clock_gettime(th_clock, \u0026th_after);\n\t  if (err)\n\t\t  return 1;\n\n\t  err \u003d clock_gettime(my_thread_clock, \u0026me_after);\n\t  if (err)\n\t\t  return 1;\n\n\t  err \u003d clock_gettime(process_clock, \u0026process_after);\n\t  if (err)\n\t\t  return 1;\n\n\t  diff \u003d process_after.tv_nsec - process_before.tv_nsec;\n\t  printf(\"process: before(%lu.%.9lu) after(%lu.%.9lu) diff(%lu)\\n\",\n\t\t process_before.tv_sec, process_before.tv_nsec,\n\t\t process_after.tv_sec, process_after.tv_nsec, diff);\n\t  diff \u003d th_after.tv_nsec - th_before.tv_nsec;\n\t  printf(\"thread:  before(%lu.%.9lu) after(%lu.%.9lu) diff(%lu)\\n\",\n\t\t th_before.tv_sec, th_before.tv_nsec,\n\t\t th_after.tv_sec, th_after.tv_nsec, diff);\n\t  diff \u003d me_after.tv_nsec - me_before.tv_nsec;\n\t  printf(\"self:    before(%lu.%.9lu) after(%lu.%.9lu) diff(%lu)\\n\",\n\t\t me_before.tv_sec, me_before.tv_nsec,\n\t\t me_after.tv_sec, me_after.tv_nsec, diff);\n\n\t  return 0;\n  }\n\nThis is due to us using p-\u003ese.sum_exec_runtime in\nthread_group_cputime() where we iterate the thread group and sum all\ndata. This does not take time since the last schedule operation (tick\nor otherwise) into account. We can cure this by using\ntask_sched_runtime() at the cost of having to take locks.\n\nThis also means we can (and must) do away with\nthread_group_sched_runtime() since the modified thread_group_cputime()\nis now more accurate and would deadlock when called from\nthread_group_sched_runtime().\n\nAside of that it makes the function safe on 32 bit systems. The old\ncode added t-\u003ese.sum_exec_runtime unprotected. sum_exec_runtime is a\n64bit value and could be changed on another cpu at the same time.\n\nReported-by: David Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1314874459.7945.22.camel@twins\nTested-by: David Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "4e41ce698822a9a2cfd324a11ea44f60fc95c871",
      "tree": "d2a7be264f9b5d631dcc7f26091d1f46e40ef565",
      "parents": [
        "113f8b8f997cd3a70e6e4c95ced9232d50b7a308"
      ],
      "author": {
        "name": "Simon Kirby",
        "email": "sim@hostway.ca",
        "time": "Thu Sep 22 17:03:46 2011 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Sun Oct 16 14:14:51 2011 -0700"
      },
      "message": "sched: Fix up wchan borkage\n\ncommit 6ebbe7a07b3bc40b168d2afc569a6543c020d2e3 upstream.\n\nCommit c259e01a1ec (\"sched: Separate the scheduler entry for\npreemption\") contained a boo-boo wrecking wchan output. It forgot to\nput the new schedule() function in the __sched section and thereby\ndoesn\u0027t get properly ignored for things like wchan.\n\nTested-by: Simon Kirby \u003csim@hostway.ca\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110923000346.GA25425@hostway.ca\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "113f8b8f997cd3a70e6e4c95ced9232d50b7a308",
      "tree": "b538a6784088c3a84cef45aec6952f392d83c2b3",
      "parents": [
        "ca64baea4dd045516046a84a8860c3f9809b8984"
      ],
      "author": {
        "name": "Shawn Bohrer",
        "email": "sbohrer@rgmadvisors.com",
        "time": "Mon Sep 12 09:28:04 2011 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Sun Oct 16 14:14:51 2011 -0700"
      },
      "message": "sched/rt: Migrate equal priority tasks to available CPUs\n\ncommit 3be209a8e22cedafc1b6945608b7bb8d9887ab61 upstream.\n\nCommit 43fa5460fe60dea5c610490a1d263415419c60f6 (\"sched: Try not to\nmigrate higher priority RT tasks\") also introduced a change in behavior\nwhich keeps RT tasks on the same CPU if there is an equal priority RT\ntask currently running even if there are empty CPUs available.\n\nThis can cause unnecessary wakeup latencies, and can prevent the\nscheduler from balancing all RT tasks across available CPUs.\n\nThis change causes an RT task to search for a new CPU if an equal\npriority RT task is already running on wakeup.  Lower priority tasks\nwill still have to wait on higher priority tasks, but the system should\nstill balance out because there is always the possibility that if there\nare both a high and low priority RT tasks on a given CPU that the high\npriority task could wakeup while the low priority task is running and\nforce it to search for a better runqueue.\n\nSigned-off-by: Shawn Bohrer \u003csbohrer@rgmadvisors.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nTested-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1315837684-18733-1-git-send-email-sbohrer@rgmadvisors.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "c37683a29929d312686347687906f92b3f94cb23",
      "tree": "afa6d327a4824275acc4571f2eb73657e5e47716",
      "parents": [
        "3672c4fcfdbed08e67568447d618530a169d6e1c",
        "7ef4dbaa2adcadb39b5b60051d637e0203c7b6ba"
      ],
      "author": {
        "name": "Linux Build Service Account",
        "email": "lnxbuild@localhost",
        "time": "Fri Oct 14 14:39:38 2011 -0700"
      },
      "committer": {
        "name": "QuIC Gerrit Code Review",
        "email": "code-review@localhost",
        "time": "Fri Oct 14 14:39:38 2011 -0700"
      },
      "message": "Merge \"power: wakelock: don\u0027t set check_done flag if aborting\" into msm-3.0"
    },
    {
      "commit": "7ef4dbaa2adcadb39b5b60051d637e0203c7b6ba",
      "tree": "41d1b4c6b6f40c448fe4f97878e2cf9ed11ed7ba",
      "parents": [
        "e60096da0f2e37010af610472b9df688a08f9c55"
      ],
      "author": {
        "name": "Abhijeet Dharmapurikar",
        "email": "adharmap@codeaurora.org",
        "time": "Thu Oct 06 14:22:20 2011 -0700"
      },
      "committer": {
        "name": "Abhijeet Dharmapurikar",
        "email": "adharmap@codeaurora.org",
        "time": "Fri Oct 14 09:22:49 2011 -0700"
      },
      "message": "power: wakelock: don\u0027t set check_done flag if aborting\n\nIf there is a wakelock held the wakelock driver rejects the suspend\nby returning EAGAIN(-11). In this case since the suspend is rejected\nin suspend_noirq callback, the resume_noirq callback is not called on\nthe wakelock driver, leading to the check_done flag not being cleared\nand causing a BUG for the next wakelock request.\n\nDon\u0027t set the check_done flag if suspend_noirq aborts suspend.\n\nChange-Id: Iddd12cefd9a30020784416b4e5bec7fe3f7fc0e6\nSigned-off-by: Abhijeet Dharmapurikar \u003cadharmap@codeaurora.org\u003e\n"
    },
    {
      "commit": "17e081ddcdf897295e60b00b9938bfcb4a00183b",
      "tree": "9febff446aa15cfea7d0d4aebd98134692b85f68",
      "parents": [
        "f4422a069aff841807b86809d538242800b07d26",
        "9049d3635fe2a7511c07a9bfde4287603bd569b6"
      ],
      "author": {
        "name": "Linux Build Service Account",
        "email": "lnxbuild@localhost",
        "time": "Thu Oct 13 05:28:39 2011 -0700"
      },
      "committer": {
        "name": "QuIC Gerrit Code Review",
        "email": "code-review@localhost",
        "time": "Thu Oct 13 05:28:40 2011 -0700"
      },
      "message": "Merge \"Revert \"ARM: Make low-level printk work\"\" into msm-3.0"
    },
    {
      "commit": "9049d3635fe2a7511c07a9bfde4287603bd569b6",
      "tree": "c5c14e92e019f48304a4d1c09604b872ec691b07",
      "parents": [
        "5ec7cbebdddfffc7972ba3e1aa41e3855f826018"
      ],
      "author": {
        "name": "Stepan Moskovchenko",
        "email": "stepanm@codeaurora.org",
        "time": "Mon May 23 16:05:46 2011 -0700"
      },
      "committer": {
        "name": "Stephen Boyd",
        "email": "sboyd@codeaurora.org",
        "time": "Tue Oct 11 13:25:03 2011 -0700"
      },
      "message": "Revert \"ARM: Make low-level printk work\"\n\nThis reverts commit ffdcd796e23c86d2cfeb25cb2d140f11d5fd6411.\nThis feature is replaced by passing \u0027earlyprintk\u0027 on the\nkernel command line.\n\nChange-Id: I2d4f2812e39b1c7afc061f106863b63710762fa7\nSigned-off-by: Stepan Moskovchenko \u003cstepanm@codeaurora.org\u003e\nSigned-off-by: Stephen Boyd \u003csboyd@codeaurora.org\u003e\n"
    },
    {
      "commit": "25bcca80f97e627116243ac97ed64c0f23117c65",
      "tree": "c6b317deae5b3bc340c744f1d0efc1c92c547db3",
      "parents": [
        "dcc6aac30bcaadbbb5a5197fd38838cd0f660bc8"
      ],
      "author": {
        "name": "Abhijeet Dharmapurikar",
        "email": "adharmap@codeaurora.org",
        "time": "Wed Aug 24 01:09:32 2011 -0700"
      },
      "committer": {
        "name": "Bryan Huntsman",
        "email": "bryanh@codeaurora.org",
        "time": "Tue Oct 11 09:59:29 2011 -0700"
      },
      "message": "genirq: fix handle_nested_irq for lazy disable\n\nWhen lazy disabling is implemented and an interrupt is disabled the\ngenirq code ends up marking it as IRQ_DISABLED in the descriptor.\nThe interrupt stays enabled in the controller.  If the interrupt\nfires after disabling, the flow handlers namely handle_level_irq and\nhandle_edge_irq mask the interrupt in the controller.\n\nThis is not the case with handle_nested_irq. The interrupt stays enabled in\nthe controller and if it were a level interrupt it keeps firing only to be\nignored by handle_nested_irq.\n\nUpdate handle_nested_irq to mask such an interrupt.\n\nCRs-Fixed: 300931\nSigned-off-by: Abhijeet Dharmapurikar \u003cadharmap@codeaurora.org\u003e\n\nConflicts:\n\n\tkernel/irq/chip.c\n"
    },
    {
      "commit": "32a41b2cd1e28ee8689dc02e2d29e27ed4d4bd19",
      "tree": "30301026e0bf8e009f0e6571f84538111bf6b4db",
      "parents": [
        "98f5fd413f051db8407a53f583a46a1c3fb99657"
      ],
      "author": {
        "name": "Peter Foley",
        "email": "pefoley2@verizon.net",
        "time": "Tue Jul 05 19:42:18 2011 -0400"
      },
      "committer": {
        "name": "Stephen Boyd",
        "email": "sboyd@codeaurora.org",
        "time": "Fri Oct 07 10:46:08 2011 -0700"
      },
      "message": "kernel: prevent unnecessary rebuilding due to config_data.gz\n\nWhen IKCONFIG is built-in make oldconfig will cause the kernel to be\nrelinked even if .config didn\u0027t change. This happens because of a\nconfig_data.gz dependency on .config. This patch changes the if_changed\nto a filechk so that config_data.h is only rebuilt when the contents\nhave actually changed.\n\nChange-Id: I0c907b5312e1059352a0afff688d8e015dec6bed\nSigned-off-by: Peter Foley \u003cpefoley2@verizon.net\u003e\nSigned-off-by: Michal Marek \u003cmmarek@suse.cz\u003e\nSigned-off-by: Stephen Boyd \u003csboyd@codeaurora.org\u003e\n"
    },
    {
      "commit": "2aba4e8b5e3aaac879ab2f0f88ee6396cdab30a7",
      "tree": "511c137881c1210ccae42569b381ef2754e0a034",
      "parents": [
        "cc969450f3754936608ba82b74af7f1f2828abc1"
      ],
      "author": {
        "name": "Maya Spivak",
        "email": "mspivak@codeaurora.org",
        "time": "Fri Jul 08 11:42:28 2011 -0700"
      },
      "committer": {
        "name": "Bryan Huntsman",
        "email": "bryanh@codeaurora.org",
        "time": "Wed Oct 05 10:28:09 2011 -0700"
      },
      "message": "printk: Don\u0027t allow cpu to get console lock during hotplugging\n\nThe flush of the console takes unnecessary time during the cpu\nhotplug up operation.  It can delay the rcu synchronize_sched\noperation, which in turn delays the hotplug operation. The flush\ndelays rcu synchronize_sched during scheduling domain creation\nby up to 100 ms by interrupting the move to a quiescent state.\nThis change delays the flush of the console to later in the\nnotification chain of cpu_online. At the point in the cpu_up\noperation where the flush now occurs, other tasks can already\nbe scheduled on the cpu that just came up.\n\nSigned-off-by: Maya Spivak \u003cmspivak@codeaurora.org\u003e\n"
    },
    {
      "commit": "57b34bbdca587ed67ed3d6fc9a83cf3564ac770d",
      "tree": "99e71a3eb67d616be9d51b588cf3d077f17744a1",
      "parents": [
        "fdd3892444be6412bbeead90c13b5099a417e6bb"
      ],
      "author": {
        "name": "Abhijeet Dharmapurikar",
        "email": "adharmap@codeaurora.org",
        "time": "Mon Sep 26 17:10:02 2011 -0700"
      },
      "committer": {
        "name": "Bryan Huntsman",
        "email": "bryanh@codeaurora.org",
        "time": "Tue Oct 04 17:14:23 2011 -0700"
      },
      "message": "power: wakelock: BUG if wakelock is taken very late\n\nThere has been handful of corner cases where a driver would call\nwake_lock very late in the suspend sequence but the suspend proceeds\nanyways and causes issues.\n\nAdd code to BUG if a driver grabs a wakelock after suspend_noirq callbacks\nare called, this will aid in correct wakelock usage for new drivers and\ngive us callstacks for misbehaving drivers.\n\nSigned-off-by: Abhijeet Dharmapurikar \u003cadharmap@codeaurora.org\u003e\n"
    },
    {
      "commit": "ef2293e7340a45c7d7f412c694b87dd0f19b267d",
      "tree": "2cec0f24232f78558e268fd4d405080ec92fe97f",
      "parents": [
        "c42862ab0b4149d6264b39d849aaf70b3de7a1fe"
      ],
      "author": {
        "name": "Abhijeet Dharmapurikar",
        "email": "adharmap@codeaurora.org",
        "time": "Fri Sep 09 14:11:00 2011 -0700"
      },
      "committer": {
        "name": "Bryan Huntsman",
        "email": "bryanh@codeaurora.org",
        "time": "Mon Oct 03 16:19:25 2011 -0700"
      },
      "message": "genirq: explicitly mask a freed irq\n\nWhen an interrupt is freed, the shutdown or the disable callback\nis called for that interrupt. These calls might not be implemented\nor even if they were, might not mask the interrupt.\n\nExplicitly mask the interrupt when it is freed. If not masked, the\ninterrupt could trigger, set the pending bit in the irq controller\nand cause unnecessary wakeup or exits from idle power collapse.\n\nSigned-off-by: Abhijeet Dharmapurikar \u003cadharmap@codeaurora.org\u003e\n\nConflicts:\n\n\tkernel/irq/manage.c\n"
    },
    {
      "commit": "e0473b4aafe9013a27749518afd449594f158b04",
      "tree": "a1ce51e4e0fe7e4a615d09bdde13930d934bb615",
      "parents": [
        "38c0739f978cabe79afb6c75599ba8be347e8714"
      ],
      "author": {
        "name": "Maya Spivak",
        "email": "mspivak@codeaurora.org",
        "time": "Fri Jul 08 16:44:34 2011 -0700"
      },
      "committer": {
        "name": "Bryan Huntsman",
        "email": "bryanh@codeaurora.org",
        "time": "Mon Oct 03 16:18:46 2011 -0700"
      },
      "message": "partition_sched_domains: Do not destroy old sched domain on cpu_up\n\nThis is safe on a cpu_up only. Although a reader may still have\naccess to the old scheduling domain data, the data indicates that\nthe new CPU is not up, and therefore the only limitation is the\nnew CPU will not be schedulable by that reader until that reader\nreceives the new data.\n\nSigned-off-by: Maya Spivak \u003cmspivak@codeaurora.org\u003e\n"
    },
    {
      "commit": "3d321a35703d041a11f25f7abc27cc6c1ef8cd13",
      "tree": "8f50edefa4a485dd56b40d5631038f8816a84f4c",
      "parents": [
        "20a9bf2d18b3170d7daca4e35be53726a00e13bd"
      ],
      "author": {
        "name": "Maya Spivak",
        "email": "mspivak@codeaurora.org",
        "time": "Fri Jul 08 11:26:50 2011 -0700"
      },
      "committer": {
        "name": "Bryan Huntsman",
        "email": "bryanh@codeaurora.org",
        "time": "Mon Oct 03 16:17:26 2011 -0700"
      },
      "message": "cpu-hotplug: Add the function \u0027cpu_hotplug_inprogress\u0027\n\nAllows a caller to detect whether a cpu hotplug operation\nis in progress. This is useful for optimizing code paths\nbased on this condition.\n\nSigned-off-by: Maya Spivak \u003cmspivak@codeaurora.org\u003e\n"
    },
    {
      "commit": "d5b1a08d0d0a73c716766275eb0c5648e143ca85",
      "tree": "2f62c1aa34c268658ca29b6776fdb73b71fcc7e9",
      "parents": [
        "c780713f786ee22532839502ed35f1bd1cb0fd1d"
      ],
      "author": {
        "name": "Thomas Tuttle",
        "email": "ttuttle@chromium.org",
        "time": "Wed Sep 14 16:22:28 2011 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Oct 03 11:40:31 2011 -0700"
      },
      "message": "workqueue: lock cwq access in drain_workqueue\n\ncommit fa2563e41c3d6d6e8af437643981ed28ae0cb56d upstream.\n\nTake cwq-\u003egcwq-\u003elock to avoid racing between drain_workqueue checking to\nmake sure the workqueues are empty and cwq_dec_nr_in_flight decrementing\nand then incrementing nr_active when it activates a delayed work.\n\nWe discovered this when a corner case in one of our drivers resulted in\nus trying to destroy a workqueue in which the remaining work would\nalways requeue itself again in the same workqueue.  We would hit this\nrace condition and trip the BUG_ON on workqueue.c:3080.\n\nSigned-off-by: Thomas Tuttle \u003cttuttle@chromium.org\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "79e72e1b97162d5f4d4ac320238b5cc82e97f040",
      "tree": "c62247ec0810df4eae3656101194ef651f1d75f4",
      "parents": [
        "1e6ad9a39701e09f93d2726ef3602e05f5787ff1"
      ],
      "author": {
        "name": "Geert Uytterhoeven",
        "email": "geert@linux-m68k.org",
        "time": "Sun Sep 11 13:59:27 2011 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Oct 03 11:40:27 2011 -0700"
      },
      "message": "genirq: Make irq_shutdown() symmetric vs. irq_startup again\n\ncommit ed585a651681e822089087b426e6ebfb6d3d9873 upstream.\n\nIf an irq_chip provides .irq_shutdown(), but neither of .irq_disable() or\n.irq_mask(), free_irq() crashes when jumping to NULL.\nFix this by only trying .irq_disable() and .irq_mask() if there\u0027s no\n.irq_shutdown() provided.\n\nThis revives the symmetry with irq_startup(), which tries .irq_startup(),\n.irq_enable(), and irq_unmask(), and makes it consistent with the comment for\nirq_chip.irq_shutdown() in \u003clinux/irq.h\u003e, which says:\n\n * @irq_shutdown:\tshut down the interrupt (defaults to -\u003edisable if NULL)\n\nThis is also how __free_irq() behaved before the big overhaul, cfr. e.g.\n3b56f0585fd4c02d047dc406668cb40159b2d340 (\"genirq: Remove bogus conditional\"),\nwhere the core interrupt code always overrode .irq_shutdown() to\n.irq_disable() if .irq_shutdown() was NULL.\n\nSigned-off-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: linux-m68k@lists.linux-m68k.org\nLink: http://lkml.kernel.org/r/1315742394-16036-2-git-send-email-geert@linux-m68k.org\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "70a4888b98f8fe19323a7a33d8d55be5d22513e8",
      "tree": "96c04a67bf267b3f5db230b66ffdcf4f35b40fab",
      "parents": [
        "f4e97b682ac92d2aed3db68f396b022113d9ad30"
      ],
      "author": {
        "name": "WANG Cong",
        "email": "amwang@redhat.com",
        "time": "Thu Aug 18 20:36:57 2011 +0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Oct 03 11:40:09 2011 -0700"
      },
      "message": "sched: Fix a memory leak in __sdt_free()\n\ncommit feff8fa0075bdfd43c841e9d689ed81adda988d6 upstream.\n\nThis patch fixes the following memory leak:\n\nunreferenced object 0xffff880107266800 (size 512):\n  comm \"sched-powersave\", pid 3718, jiffies 4323097853 (age 27495.450s)\n  hex dump (first 32 bytes):\n    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................\n    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................\n  backtrace:\n    [\u003cffffffff81133940\u003e] create_object+0x187/0x28b\n    [\u003cffffffff814ac103\u003e] kmemleak_alloc+0x73/0x98\n    [\u003cffffffff811232ba\u003e] __kmalloc_node+0x104/0x159\n    [\u003cffffffff81044b98\u003e] kzalloc_node.clone.97+0x15/0x17\n    [\u003cffffffff8104cb90\u003e] build_sched_domains+0xb7/0x7f3\n    [\u003cffffffff8104d4df\u003e] partition_sched_domains+0x1db/0x24a\n    [\u003cffffffff8109ee4a\u003e] do_rebuild_sched_domains+0x3b/0x47\n    [\u003cffffffff810a00c7\u003e] rebuild_sched_domains+0x10/0x12\n    [\u003cffffffff8104d5ba\u003e] sched_power_savings_store+0x6c/0x7b\n    [\u003cffffffff8104d5df\u003e] sched_mc_power_savings_store+0x16/0x18\n    [\u003cffffffff8131322c\u003e] sysdev_class_store+0x20/0x22\n    [\u003cffffffff81193876\u003e] sysfs_write_file+0x108/0x144\n    [\u003cffffffff81135b10\u003e] vfs_write+0xaf/0x102\n    [\u003cffffffff81135d23\u003e] sys_write+0x4d/0x74\n    [\u003cffffffff814c8a42\u003e] system_call_fastpath+0x16/0x1b\n    [\u003cffffffffffffffff\u003e] 0xffffffffffffffff\n\nSigned-off-by: WANG Cong \u003camwang@redhat.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1313671017-4112-1-git-send-email-amwang@redhat.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "f4e97b682ac92d2aed3db68f396b022113d9ad30",
      "tree": "fcaf4fb3e45f8a89313b003a10765f1dc97cbbaa",
      "parents": [
        "edbb7ce79e62d1028781b58337100108dc41471e"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Jun 22 19:47:01 2011 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Oct 03 11:40:09 2011 -0700"
      },
      "message": "sched: Move blk_schedule_flush_plug() out of __schedule()\n\ncommit 9c40cef2b799f9b5e7fa5de4d2ad3a0168ba118c upstream.\n\nThere is no real reason to run blk_schedule_flush_plug() with\ninterrupts and preemption disabled.\n\nMove it into schedule() and call it when the task is going voluntarily\nto sleep. There might be false positives when the task is woken\nbetween that call and actually scheduling, but that\u0027s not really\ndifferent from being woken immediately after switching away.\n\nThis fixes a deadlock in the scheduler where the\nblk_schedule_flush_plug() callchain enables interrupts and thereby\nallows a wakeup to happen of the task that\u0027s going to sleep.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/n/tip-dwfxtra7yg1b5r65m32ywtct@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "edbb7ce79e62d1028781b58337100108dc41471e",
      "tree": "ada11412d0cba8bf4a3a900e14429935bee8322a",
      "parents": [
        "1ed2053563d4d0bf70864a9df53c7a5dce7724e9"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Jun 22 19:47:00 2011 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Oct 03 11:40:08 2011 -0700"
      },
      "message": "sched: Separate the scheduler entry for preemption\n\ncommit c259e01a1ec90063042f758e409cd26b2a0963c8 upstream.\n\nBlock-IO and workqueues call into notifier functions from the\nscheduler core code with interrupts and preemption disabled. These\ncalls should be made before entering the scheduler core.\n\nTo simplify this, separate the scheduler core code into\n__schedule(). __schedule() is directly called from the places which\nset PREEMPT_ACTIVE and from schedule(). This allows us to add the work\nchecks into schedule(), so they are only called when a task voluntary\ngoes to sleep.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/20110622174918.813258321@linutronix.de\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "c3a44b4d23f4cb1b3eafb8c2c74d88f452d50a6d",
      "tree": "1ae49d74350fd3febbc73b1516924bc7faed7e7d",
      "parents": [
        "0898dd1603e1dec711217b85329c031b30f81710"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Wed Aug 10 10:26:09 2011 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Oct 03 11:40:07 2011 -0700"
      },
      "message": "alarmtimers: Avoid possible denial of service with high freq periodic timers\n\ncommit 6af7e471e5a7746b8024d70b4363d3dfe41d36b8 upstream.\n\nIts possible to jam up the alarm timers by setting very small interval\ntimers, which will cause the alarmtimer subsystem to spend all of its time\nfiring and restarting timers. This can effectivly lock up a box.\n\nA deeper fix is needed, closely mimicking the hrtimer code, but for now\njust cap the interval to 100us to avoid userland hanging the system.\n\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "0898dd1603e1dec711217b85329c031b30f81710",
      "tree": "fce87fc0b31865100b5e35d26ce1159fc5261a36",
      "parents": [
        "26cf1a7ba1a6cc19d48c993bebd3be94c48af74a"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Aug 04 07:51:56 2011 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Oct 03 11:40:07 2011 -0700"
      },
      "message": "alarmtimers: Memset itimerspec passed into alarm_timer_get\n\ncommit ea7802f630d356acaf66b3c0b28c00a945fc35dc upstream.\n\nFollowing common_timer_get, zero out the itimerspec passed in.\n\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "26cf1a7ba1a6cc19d48c993bebd3be94c48af74a",
      "tree": "d58851c18bab62e7ce380ca8c32fa2b515149599",
      "parents": [
        "5607cbd164dc1913cc52abba893c0961617eafd2"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Aug 04 07:25:35 2011 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Oct 03 11:40:06 2011 -0700"
      },
      "message": "alarmtimers: Avoid possible null pointer traversal\n\ncommit 971c90bfa2f0b4fe52d6d9002178d547706f1343 upstream.\n\nWe don\u0027t check if old_setting is non null before assigning it, so\ncorrect this.\n\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "7f4e15693062aa1afcfc8f05f6790baf29bacfa3",
      "tree": "d4ef5496034aaaeba1ce945f810ee56ec2a5fce5",
      "parents": [
        "04aa37b5f943920017ad094e776cd5514b1a9246"
      ],
      "author": {
        "name": "Nishanth Aravamudan",
        "email": "nacc@us.ibm.com",
        "time": "Thu Aug 25 15:59:11 2011 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Oct 03 11:39:46 2011 -0700"
      },
      "message": "kernel/printk: do not turn off bootconsole in printk_late_init() if keep_bootcon\n\ncommit 4c30c6f566c0989ddaee3407da44751e340a63ed upstream.\n\nIt seems that 7bf693951a8e (\"console: allow to retain boot console via\nboot option keep_bootcon\") doesn\u0027t always achieve what it aims, as when\nprintk_late_init() runs it unconditionally turns off all boot consoles.\nWith this patch, I am able to see more messages on the boot console in\nKVM guests than I can without, when keep_bootcon is specified.\n\nI think it is appropriate for the relevant -stable trees.  However, it\u0027s\nmore of an annoyance than a serious bug (ideally you don\u0027t need to keep\nthe boot console around as console handover should be working -- I was\nencountering a situation where the console handover wasn\u0027t working and\nnot having the boot console available meant I couldn\u0027t see why).\n\nSigned-off-by: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Greg KH \u003cgregkh@suse.de\u003e\nAcked-by: Fabio M. Di Nitto \u003cfdinitto@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "cfca519f00b9651f86887fbff8a784fcfc8c03d9",
      "tree": "4d4245f9903d14a1b10a31a503c3e855ab59027e",
      "parents": [
        "529461b70c7dc20b0371e54a63844edae905d7a2"
      ],
      "author": {
        "name": "Pratik Patel",
        "email": "pratikp@codeaurora.org",
        "time": "Sat Jul 23 11:21:40 2011 -0700"
      },
      "committer": {
        "name": "Bryan Huntsman",
        "email": "bryanh@codeaurora.org",
        "time": "Mon Oct 03 10:26:58 2011 -0700"
      },
      "message": "Revert \"workqueue: add workqueue_empty() api\"\n\nThis reverts commit bccb069835ef880e437c68a7fed9529c2549605f.\n\nSince the workqueue code deletes the work before executing it,\nchecking for no work item being currently queued to the workqueue\nis not sufficient to guarantee that all the works have finished\nexecution. Hence, we have moved to using a counter based solution\nand so this change is no longer required.\n\nSigned-off-by: Pratik Patel \u003cpratikp@codeaurora.org\u003e\n"
    },
    {
      "commit": "529461b70c7dc20b0371e54a63844edae905d7a2",
      "tree": "da4b84ce6d266268b19d444af479876e98792223",
      "parents": [
        "4e8aada5f34f1a5b92418c0db623785b8a54abfe"
      ],
      "author": {
        "name": "Pratik Patel",
        "email": "pratikp@codeaurora.org",
        "time": "Thu Jul 21 19:13:34 2011 -0700"
      },
      "committer": {
        "name": "Bryan Huntsman",
        "email": "bryanh@codeaurora.org",
        "time": "Mon Oct 03 10:26:58 2011 -0700"
      },
      "message": "power: fix suspend_sys_sync_wait()\n\nSince the workqueue code deletes the work before executing it,\nchecking for no work item being currently queued to the workqueue\nis not sufficient to guarantee that all the works have finished\nexecution.\n\nUse a counter to guarantee that all the pending suspend_sys_sync()\nworks have finished execution before returning from\nsuspend_sys_sync_wait().\n\nCRs-Fixed: 293595\nSigned-off-by: Pratik Patel \u003cpratikp@codeaurora.org\u003e\n\nConflicts:\n\n\tkernel/power/wakelock.c\n"
    },
    {
      "commit": "3f75d16d6d7ad79bfb01c94cd049bfbbb3daeaae",
      "tree": "85881861234843fddd5a9754b4e0eaf6e8c145da",
      "parents": [
        "a7eadeaa24eb044bac38bfe783e4e56e33cdf254"
      ],
      "author": {
        "name": "Maya Spivak",
        "email": "mspivak@codeaurora.org",
        "time": "Wed Jul 06 09:43:14 2011 -0700"
      },
      "committer": {
        "name": "Bryan Huntsman",
        "email": "bryanh@codeaurora.org",
        "time": "Mon Oct 03 10:25:52 2011 -0700"
      },
      "message": "sched: Remove invalid cases from cpuset_cpu_active\n\nThis fixes a merge error from when updating from 2.6.35 kernel.\nThe case cpu_down_prepare/frozen is not present in the\ncpuset_cpu_active function in the kernel which the QUIC kernel\nis based off of.  The inclusion of this case hurts cpu_hotplug\nperformance on a cpu_down operation.\n\nSigned-off-by: Maya Spivak \u003cmspivak@codeaurora.org\u003e\n"
    },
    {
      "commit": "3f2bc4d6eb5a4fada842462ba22bb6bbb41d00c7",
      "tree": "088e0646c8abcbde263d13ee865ba69032ac86dd",
      "parents": [
        "f06154cc47399dfdb3950d3e6b71d67ee186f69d"
      ],
      "author": {
        "name": "Bryan Huntsman",
        "email": "bryanh@codeaurora.org",
        "time": "Tue Aug 16 17:27:22 2011 -0700"
      },
      "committer": {
        "name": "Bryan Huntsman",
        "email": "bryanh@codeaurora.org",
        "time": "Mon Oct 03 09:57:10 2011 -0700"
      },
      "message": "Initial Contribution\n\nmsm-2.6.38: tag AU_LINUX_ANDROID_GINGERBREAD.02.03.04.00.142\n\nSigned-off-by: Bryan Huntsman \u003cbryanh@codeaurora.org\u003e\n"
    },
    {
      "commit": "7013f4976374ea75cb35446393be7bdc37bf607f",
      "tree": "2009f96a5f6589628c444c87ea90fdb02857d02e",
      "parents": [
        "64753a4df63a211c52a40e4cdf6632e73f2a235d"
      ],
      "author": {
        "name": "Todd Poynor",
        "email": "toddpoynor@google.com",
        "time": "Thu Aug 25 19:29:45 2011 -0700"
      },
      "committer": {
        "name": "Todd Poynor",
        "email": "toddpoynor@google.com",
        "time": "Tue Sep 06 13:49:57 2011 -0700"
      },
      "message": "PM: Backoff suspend if repeated attempts fail\n\nChange-Id: I32289676d95a307ea3aa5e78f6c126ca979c0fec\nSigned-off-by: Todd Poynor \u003ctoddpoynor@google.com\u003e\n"
    },
    {
      "commit": "512228f0be3af44bf5cf6cc5750ddd279bbedaf3",
      "tree": "4efaddfd0a353537b70c2a1059ebf49a1b624286",
      "parents": [
        "80b5405f36fba0caa9a142f978c00afa6aa7714c"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Fri Aug 19 16:15:10 2011 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Aug 29 13:29:16 2011 -0700"
      },
      "message": "Add a personality to report 2.6.x version numbers\n\ncommit be27425dcc516fd08245b047ea57f83b8f6f0903 upstream.\n\nI ran into a couple of programs which broke with the new Linux 3.0\nversion.  Some of those were binary only.  I tried to use LD_PRELOAD to\nwork around it, but it was quite difficult and in one case impossible\nbecause of a mix of 32bit and 64bit executables.\n\nFor example, all kind of management software from HP doesnt work, unless\nwe pretend to run a 2.6 kernel.\n\n  $ uname -a\n  Linux svivoipvnx001 3.0.0-08107-g97cd98f #1062 SMP Fri Aug 12 18:11:45 CEST 2011 i686 i686 i386 GNU/Linux\n\n  $ hpacucli ctrl all show\n\n  Error: No controllers detected.\n\n  $ rpm -qf /usr/sbin/hpacucli\n  hpacucli-8.75-12.0\n\nAnother notable case is that Python now reports \"linux3\" from\nsys.platform(); which in turn can break things that were checking\nsys.platform() \u003d\u003d \"linux2\":\n\n  https://bugzilla.mozilla.org/show_bug.cgi?id\u003d664564\n\nIt seems pretty clear to me though it\u0027s a bug in the apps that are using\n\u0027\u003d\u003d\u0027 instead of .startswith(), but this allows us to unbreak broken\nprograms.\n\nThis patch adds a UNAME26 personality that makes the kernel report a\n2.6.40+x version number instead.  The x is the x in 3.x.\n\nI know this is somewhat ugly, but I didn\u0027t find a better workaround, and\ncompatibility to existing programs is important.\n\nSome programs also read /proc/sys/kernel/osrelease.  This can be worked\naround in user space with mount --bind (and a mount namespace)\n\nTo use:\n\n  wget ftp://ftp.kernel.org/pub/linux/kernel/people/ak/uname26/uname26.c\n  gcc -o uname26 uname26.c\n  ./uname26 program\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "6857336c7fddaf460a13adc0c395698fcf9423ff",
      "tree": "dac27f38c28bf9d30535b5abc51a6424e7b32afb",
      "parents": [
        "e25d2c749d25fc559f374766af66d267c97e0877"
      ],
      "author": {
        "name": "Suresh Siddha",
        "email": "suresh.b.siddha@intel.com",
        "time": "Thu Jun 23 11:19:26 2011 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Aug 29 13:29:08 2011 -0700"
      },
      "message": "x86, mtrr: lock stop machine during MTRR rendezvous sequence\n\ncommit 6d3321e8e2b3bf6a5892e2ef673c7bf536e3f904 upstream.\n\nMTRR rendezvous sequence using stop_one_cpu_nowait() can potentially\nhappen in parallel with another system wide rendezvous using\nstop_machine(). This can lead to deadlock (The order in which\nworks are queued can be different on different cpu\u0027s. Some cpu\u0027s\nwill be running the first rendezvous handler and others will be running\nthe second rendezvous handler. Each set waiting for the other set to join\nfor the system wide rendezvous, leading to a deadlock).\n\nMTRR rendezvous sequence is not implemented using stop_machine() as this\ngets called both from the process context aswell as the cpu online paths\n(where the cpu has not come online and the interrupts are disabled etc).\nstop_machine() works with only online cpus.\n\nFor now, take the stop_machine mutex in the MTRR rendezvous sequence that\ngets called from an online cpu (here we are in the process context\nand can potentially sleep while taking the mutex). And the MTRR rendezvous\nthat gets triggered during cpu online doesn\u0027t need to take this stop_machine\nlock (as the stop_machine() already ensures that there is no cpu hotplug\ngoing on in parallel by doing get_online_cpus())\n\n    TBD: Pursue a cleaner solution of extending the stop_machine()\n         infrastructure to handle the case where the calling cpu is\n         still not online and use this for MTRR rendezvous sequence.\n\nfixes: https://bugzilla.novell.com/show_bug.cgi?id\u003d672008\n\nReported-by: Vadim Kotelnikov \u003cvadimuzzz@inbox.ru\u003e\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nLink: http://lkml.kernel.org/r/20110623182056.807230326@sbsiddha-MOBL3.sc.intel.com\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "9a420aaeab0231727fc620fca9cd0e46e6438e93",
      "tree": "0bf9479537631cf02f2146a215a7e4fe9d0c5156",
      "parents": [
        "d31bf2883542cd3414674238f94123bd1d9c0b9f"
      ],
      "author": {
        "name": "jhbird.choi@samsung.com",
        "email": "jhbird.choi@samsung.com",
        "time": "Thu Jul 21 15:29:14 2011 +0900"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Aug 29 13:29:06 2011 -0700"
      },
      "message": "genirq: Fix wrong bit operation\n\ncommit 1dd75f91ae713049eb6baaa640078f3a6549e522 upstream.\n\n(!msk \u0026 0x01) should be !(msk \u0026 0x01)\n\nSigned-off-by: Jonghwan Choi \u003cjhbird.choi@samsung.com\u003e\nLink: http://lkml.kernel.org/r/1311229754-6003-1-git-send-email-jhbird.choi@samsung.com\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "efcf89c8eb62b7c0c5976cb94f892c891afea199",
      "tree": "73d14c4ff835e5d7fd8608a8a7d20b762d1d4827",
      "parents": [
        "8b404d162085c675989d7fb55c3f641fdfa11eec"
      ],
      "author": {
        "name": "Nishanth Menon",
        "email": "nm@ti.com",
        "time": "Wed Aug 17 18:31:58 2011 -0500"
      },
      "committer": {
        "name": "Todd Poynor",
        "email": "toddpoynor@google.com",
        "time": "Fri Aug 19 11:41:00 2011 -0700"
      },
      "message": "panic: Add board ID to panic output\n\nAt times, it is necessary for boards to provide some additional information\nas part of panic logs. Provide information on the board hardware as part\nof panic logs.\n\nIt is safer to print this information at the very end in case something\nbad happens as part of the information retrieval itself.\n\nTo use this, set global mach_panic_string to an appropriate string in the\nboard file.\n\nChange-Id: Id12cdda87b0cd2940dd01d52db97e6162f671b4d\nSigned-off-by: Nishanth Menon \u003cnm@ti.com\u003e\n"
    },
    {
      "commit": "3169336d0e0e6a41049b6798404a6ec1eb3ca80d",
      "tree": "4f4d3a236c8025b13d5f5630c538950330234ce0",
      "parents": [
        "2020455efc64a6ac564e30407dc060f69b300493"
      ],
      "author": {
        "name": "Shawn Bohrer",
        "email": "sbohrer@rgmadvisors.com",
        "time": "Thu Jun 30 11:21:32 2011 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Aug 15 18:31:32 2011 -0700"
      },
      "message": "futex: Fix regression with read only mappings\n\ncommit 9ea71503a8ed9184d2d0b8ccc4d269d05f7940ae upstream.\n\ncommit 7485d0d3758e8e6491a5c9468114e74dc050785d (futexes: Remove rw\nparameter from get_futex_key()) in 2.6.33 fixed two problems:  First, It\nprevented a loop when encountering a ZERO_PAGE. Second, it fixed RW\nMAP_PRIVATE futex operations by forcing the COW to occur by\nunconditionally performing a write access get_user_pages_fast() to get\nthe page.  The commit also introduced a user-mode regression in that it\nbroke futex operations on read-only memory maps.  For example, this\nbreaks workloads that have one or more reader processes doing a\nFUTEX_WAIT on a futex within a read only shared file mapping, and a\nwriter processes that has a writable mapping issuing the FUTEX_WAKE.\n\nThis fixes the regression for valid futex operations on RO mappings by\ntrying a RO get_user_pages_fast() when the RW get_user_pages_fast()\nfails. This change makes it necessary to also check for invalid use\ncases, such as anonymous RO mappings (which can never change) and the\nZERO_PAGE which the commit referenced above was written to address.\n\nThis patch does restore the original behavior with RO MAP_PRIVATE\nmappings, which have inherent user-mode usage problems and don\u0027t really\nmake sense.  With this patch performing a FUTEX_WAIT within a RO\nMAP_PRIVATE mapping will be successfully woken provided another process\nupdates the region of the underlying mapped file.  However, the mmap()\nman page states that for a MAP_PRIVATE mapping:\n\n  It is unspecified whether changes made to the file after\n  the mmap() call are visible in the mapped region.\n\nSo user-mode users attempting to use futex operations on RO MAP_PRIVATE\nmappings are depending on unspecified behavior.  Additionally a\nRO MAP_PRIVATE mapping could fail to wake up in the following case.\n\n  Thread-A: call futex(FUTEX_WAIT, memory-region-A).\n            get_futex_key() return inode based key.\n            sleep on the key\n  Thread-B: call mprotect(PROT_READ|PROT_WRITE, memory-region-A)\n  Thread-B: write memory-region-A.\n            COW happen. This process\u0027s memory-region-A become related\n            to new COWed private (ie PageAnon\u003d1) page.\n  Thread-B: call futex(FUETX_WAKE, memory-region-A).\n            get_futex_key() return mm based key.\n            IOW, we fail to wake up Thread-A.\n\nOnce again doing something like this is just silly and users who do\nsomething like this get what they deserve.\n\nWhile RO MAP_PRIVATE mappings are nonsensical, checking for a private\nmapping requires walking the vmas and was deemed too costly to avoid a\nuserspace hang.\n\nThis Patch is based on Peter Zijlstra\u0027s initial patch with modifications to\nonly allow RO mappings for futex operations that need VERIFY_READ access.\n\nReported-by: David Oliver \u003cdavid@rgmadvisors.com\u003e\nSigned-off-by: Shawn Bohrer \u003csbohrer@rgmadvisors.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Darren Hart \u003cdvhart@linux.intel.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: peterz@infradead.org\nCc: eric.dumazet@gmail.com\nCc: zvonler@rgmadvisors.com\nCc: hughd@google.com\nLink: http://lkml.kernel.org/r/1309450892-30676-1-git-send-email-sbohrer@rgmadvisors.com\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "9abd59b0df155835a970c2b9c8f93367eb793797",
      "tree": "bcf0868f831d204e2b582113c53b8de3ff015eca",
      "parents": [
        "4e111751cfcb75f26d2725eab934b6eb91a3d115",
        "94ed5b4788a7cdbe68bc7cb8516972cbebdc8274"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Aug 10 18:07:59 2011 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Aug 10 18:07:59 2011 -0700"
      },
      "message": "Merge commit \u0027v3.0.1\u0027 into android-3.0\n"
    },
    {
      "commit": "4e111751cfcb75f26d2725eab934b6eb91a3d115",
      "tree": "b3d63b5b44bd2036db6e0f0b2e81769c84cc5ca3",
      "parents": [
        "ca64b0cd3a12d7704f4e98f4f5d51f41eb5047a2",
        "02f8c6aee8df3cdc935e9bdd4f2d020306035dbe"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Aug 10 18:04:30 2011 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Aug 10 18:04:30 2011 -0700"
      },
      "message": "Merge commit \u0027v3.0\u0027 into android-3.0\n"
    },
    {
      "commit": "ca64b0cd3a12d7704f4e98f4f5d51f41eb5047a2",
      "tree": "62f9b1336ec14d087f19a4cb770b4edf92bcaead",
      "parents": [
        "e65d9fe5564afaca75ae657179446578be73e9ba"
      ],
      "author": {
        "name": "Todd Poynor",
        "email": "toddpoynor@google.com",
        "time": "Mon Aug 08 16:06:54 2011 -0700"
      },
      "committer": {
        "name": "Todd Poynor",
        "email": "toddpoynor@google.com",
        "time": "Wed Aug 10 16:14:56 2011 -0700"
      },
      "message": "PM: wakelocks: Display wakelocks preventing suspend by default\n\nUse DEBUG_WAKEUP flag to show wakelocks that abort suspend, in\naddition to showing wakelocks held during system resume.\nDEBUG_WAKEUP is enabled by default.\n\nChange-Id: If6fa68e8afbc482a5300ffab2964694b02b34f41\nSigned-off-by: Todd Poynor \u003ctoddpoynor@google.com\u003e\n"
    },
    {
      "commit": "ed27e538aa97278e26a6c00f14f6e2e076a1a2ae",
      "tree": "e093cde0093c10dd6b2f070fc6aa1a3f4967e436",
      "parents": [
        "b7a82d40f1d9dc7a69281fc3b2a42a489f2a1619"
      ],
      "author": {
        "name": "Todd Poynor",
        "email": "toddpoynor@google.com",
        "time": "Mon Aug 08 17:26:49 2011 -0700"
      },
      "committer": {
        "name": "Todd Poynor",
        "email": "toddpoynor@google.com",
        "time": "Mon Aug 08 19:03:09 2011 -0700"
      },
      "message": "PM: wakelocks: Don\u0027t report wake up wakelock if suspend aborted\n\nIf the wakelock driver aborts suspend due to an already-held\nwakelock, don\u0027t report the next wakelock held as the \"wake up\nwakelock\".\n\nChange-Id: I582ffbb87a3c361739a77d839a0c62921cff11a6\nSigned-off-by: Todd Poynor \u003ctoddpoynor@google.com\u003e\n"
    },
    {
      "commit": "b045b9a265fb46d8197b7d78aff1a8f6ab8e23df",
      "tree": "650daaba84981a7ac749611f2ccee133380940c5",
      "parents": [
        "cb83d9f7840657a0f0cc29ba5c01ce7320e28e9a"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Mon Jul 25 17:12:32 2011 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Aug 04 21:58:38 2011 -0700"
      },
      "message": "mm/futex: fix futex writes on archs with SW tracking of dirty \u0026 young\n\ncommit 2efaca927f5cd7ecd0f1554b8f9b6a9a2c329c03 upstream.\n\nI haven\u0027t reproduced it myself but the fail scenario is that on such\nmachines (notably ARM and some embedded powerpc), if you manage to hit\nthat futex path on a writable page whose dirty bit has gone from the PTE,\nyou\u0027ll livelock inside the kernel from what I can tell.\n\nIt will go in a loop of trying the atomic access, failing, trying gup to\n\"fix it up\", getting succcess from gup, go back to the atomic access,\nfailing again because dirty wasn\u0027t fixed etc...\n\nSo I think you essentially hang in the kernel.\n\nThe scenario is probably rare\u0027ish because affected architecture are\nembedded and tend to not swap much (if at all) so we probably rarely hit\nthe case where dirty is missing or young is missing, but I think Shan has\na piece of SW that can reliably reproduce it using a shared writable\nmapping \u0026 fork or something like that.\n\nOn archs who use SW tracking of dirty \u0026 young, a page without dirty is\neffectively mapped read-only and a page without young unaccessible in the\nPTE.\n\nAdditionally, some architectures might lazily flush the TLB when relaxing\nwrite protection (by doing only a local flush), and expect a fault to\ninvalidate the stale entry if it\u0027s still present on another processor.\n\nThe futex code assumes that if the \"in_atomic()\" access -EFAULT\u0027s, it can\n\"fix it up\" by causing get_user_pages() which would then be equivalent to\ntaking the fault.\n\nHowever that isn\u0027t the case.  get_user_pages() will not call\nhandle_mm_fault() in the case where the PTE seems to have the right\npermissions, regardless of the dirty and young state.  It will eventually\nupdate those bits ...  in the struct page, but not in the PTE.\n\nAdditionally, it will not handle the lazy TLB flushing that can be\nrequired by some architectures in the fault case.\n\nBasically, gup is the wrong interface for the job.  The patch provides a\nmore appropriate one which boils down to just calling handle_mm_fault()\nsince what we are trying to do is simulate a real page fault.\n\nThe futex code currently attempts to write to user memory within a\npagefault disabled section, and if that fails, tries to fix it up using\nget_user_pages().\n\nThis doesn\u0027t work on archs where the dirty and young bits are maintained\nby software, since they will gate access permission in the TLB, and will\nnot be updated by gup().\n\nIn addition, there\u0027s an expectation on some archs that a spurious write\nfault triggers a local TLB flush, and that is missing from the picture as\nwell.\n\nI decided that adding those \"features\" to gup() would be too much for this\nalready too complex function, and instead added a new simpler\nfixup_user_fault() which is essentially a wrapper around handle_mm_fault()\nwhich the futex code can call.\n\n[akpm@linux-foundation.org: coding-style fixes]\n[akpm@linux-foundation.org: fix some nits Darren saw, fiddle comment layout]\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nReported-by: Shan Hai \u003chaishan.bai@gmail.com\u003e\nTested-by: Shan Hai \u003chaishan.bai@gmail.com\u003e\nCc: David Laight \u003cDavid.Laight@ACULAB.COM\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Darren Hart \u003cdarren.hart@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "ff7b3dc6a634832a912445db8bffd18b05c15043",
      "tree": "f43c5cd10398a1c91f8ff6b061a8b663663d84fb",
      "parents": [
        "f35869d69b65ac9323a0d7ee13c062e1636d4a1b"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Jul 05 14:32:51 2011 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Aug 04 21:58:38 2011 -0700"
      },
      "message": "tracing: Have \"enable\" file use refcounts like the \"filter\" file\n\ncommit 40ee4dffff061399eb9358e0c8fcfbaf8de4c8fe upstream.\n\nThe \"enable\" file for the event system can be removed when a module\nis unloaded and the event system only has events from that module.\nAs the event system nr_events count goes to zero, it may be freed\nif its ref_count is also set to zero.\n\nLike the \"filter\" file, the \"enable\" file may be opened by a task and\nreferenced later, after a module has been unloaded and the events for\nthat event system have been removed.\n\nAlthough the \"filter\" file referenced the event system structure,\nthe \"enable\" file only references a pointer to the event system\nname. Since the name is freed when the event system is removed,\nit is possible that an access to the \"enable\" file may reference\na freed pointer.\n\nUpdate the \"enable\" file to use the subsystem_open() routine that\nthe \"filter\" file uses, to keep a reference to the event system\nstructure while the \"enable\" file is opened.\n\nReported-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "f35869d69b65ac9323a0d7ee13c062e1636d4a1b",
      "tree": "4923438fa988ce2602b00f2607d8b8d58c39da00",
      "parents": [
        "a3b573350c48edd314b4bdd4f3025b4fda13f0dd"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Jul 05 11:36:06 2011 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Aug 04 21:58:38 2011 -0700"
      },
      "message": "tracing: Fix bug when reading system filters on module removal\n\ncommit e9dbfae53eeb9fc3d4bb7da3df87fa9875f5da02 upstream.\n\nThe event system is freed when its nr_events is set to zero. This happens\nwhen a module created an event system and then later the module is\nremoved. Modules may share systems, so the system is allocated when\nit is created and freed when the modules are unloaded and all the\nevents under the system are removed (nr_events set to zero).\n\nThe problem arises when a task opened the \"filter\" file for the\nsystem. If the module is unloaded and it removed the last event for\nthat system, the system structure is freed. If the task that opened\nthe filter file accesses the \"filter\" file after the system has\nbeen freed, the system will access an invalid pointer.\n\nBy adding a ref_count, and using it to keep track of what\nis using the event system, we can free it after all users\nare finished with the event system.\n\nReported-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "462fee3af72df0de7b60b96c525ffe8baf4db0f0",
      "tree": "2ef57937c4aedce2879d9af2cd8ce183342e9c1a",
      "parents": [
        "6e243f86d1424d7a1d67da4f8527239a786d9c2f"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Jul 28 20:47:10 2011 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Aug 04 21:58:35 2011 -0700"
      },
      "message": "perf: Fix software event overflow\n\nThe below patch is for -stable only, upstream has a much larger patch\nthat contains the below hunk in commit a8b0ca17b80e92faab46ee7179ba9e99ccb61233\n\nVince found that under certain circumstances software event overflows\ngo wrong and deadlock. Avoid trying to delete a timer from the timer\ncallback.\n\nReported-by: Vince Weaver \u003cvweaver1@eecs.utk.edu\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "68cd235dda15c5eb223c86803e9068d2cfbf64b5",
      "tree": "d6adf414406b502393e93df740802cf46a986724",
      "parents": [
        "8c59c45bc55f052d7d767d93c88a6f1666dcdecf"
      ],
      "author": {
        "name": "Todd Poynor",
        "email": "toddpoynor@google.com",
        "time": "Mon Jul 25 14:54:03 2011 -0700"
      },
      "committer": {
        "name": "Todd Poynor",
        "email": "toddpoynor@google.com",
        "time": "Mon Jul 25 15:05:56 2011 -0700"
      },
      "message": "PM: Fix printing IRQ names for pending wakeup IRQs\n\nThe IRQ name has moved to the struct irqaction list (so print\nfirst action\u0027s name).\n\nChange-Id: I65a627457f9abaf7c1dcc32d8814243ba2ff4717\nSigned-off-by: Todd Poynor \u003ctoddpoynor@google.com\u003e\n"
    },
    {
      "commit": "fec502d9a18bbe8045c67bd4f9d3a1ade4e78555",
      "tree": "281dcb3e41e55462634ca107329bb3415d989a8f",
      "parents": [
        "d74348cebf7b883a872c5f0cfdf815855e08db5a"
      ],
      "author": {
        "name": "Erik Gilling",
        "email": "konkers@android.com",
        "time": "Thu Jul 21 14:07:45 2011 -0700"
      },
      "committer": {
        "name": "Erik Gilling",
        "email": "konkers@android.com",
        "time": "Thu Jul 21 14:09:16 2011 -0700"
      },
      "message": "earlysuspend: add verbose debug flag\n\nwhen enabled, prints out the function of each handler as they are called\n\nChange-Id: I5ed251867e0e3aa3cd05f030ff3579808cedd0c2\nSigned-off-by: Erik Gilling \u003ckonkers@android.com\u003e\n"
    },
    {
      "commit": "cf6ace16a3cd8b728fb0afa68368fd40bbeae19f",
      "tree": "489c64380668e8c5a29d3f36f37554e4b081a647",
      "parents": [
        "acc11eab70591744369722280c9ce162a6193494",
        "d1e9ae47a0285d3f1699e8219ce50f656243b93f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 20 15:56:25 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 20 15:56:25 2011 -0700"
      },
      "message": "Merge branch \u0027core-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  signal: align __lock_task_sighand() irq disabling and RCU\n  softirq,rcu: Inform RCU of irq_exit() activity\n  sched: Add irq_{enter,exit}() to scheduler_ipi()\n  rcu: protect __rcu_read_unlock() against scheduler-using irq handlers\n  rcu: Streamline code produced by __rcu_read_unlock()\n  rcu: Fix RCU_BOOST race handling current-\u003ercu_read_unlock_special\n  rcu: decrease rcu_report_exp_rnp coupling with scheduler\n"
    },
    {
      "commit": "07b02fbd98dcc988eb3379b916832473bd8bdfc1",
      "tree": "6bcc897fba2b8cde9b22e863108f34fdc6dade13",
      "parents": [
        "9549cff379d6ca4640dd71c3e8637d4f0248d8eb"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jul 19 12:33:45 2011 -0700"
      },
      "committer": {
        "name": "Todd Poynor",
        "email": "toddpoynor@google.com",
        "time": "Wed Jul 20 15:40:48 2011 -0700"
      },
      "message": "power: Add option to log time spent in suspend\n\nPrints the time spent in suspend in the kernel log, and\nkeeps statistics on the time spent in suspend in\n/sys/kernel/debug/suspend_time\n\nChange-Id: Ia6b9ebe4baa0f7f5cd211c6a4f7e813aefd3fa1d\nSigned-off-by: Colin Cross \u003cccross@android.com\u003e\nSigned-off-by: Todd Poynor \u003ctoddpoynor@google.com\u003e\n"
    },
    {
      "commit": "d1e9ae47a0285d3f1699e8219ce50f656243b93f",
      "tree": "2f5a68b5ba1677bcd49ee759f09ffc5ccccb1455",
      "parents": [
        "e6625fa48e6580a74b7e700efd7e6463e282810b",
        "a841796f11c90d53dbac773be56b04fbee8af272"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 20 20:59:26 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 20 20:59:26 2011 +0200"
      },
      "message": "Merge branch \u0027rcu/urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-2.6-rcu into core/urgent\n"
    },
    {
      "commit": "a841796f11c90d53dbac773be56b04fbee8af272",
      "tree": "9401a53faddecc7c1644565d0e22630028f82bca",
      "parents": [
        "ec433f0c51527426989ea8a38a856d810d739414"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Tue Jul 19 03:25:36 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jul 20 11:04:54 2011 -0700"
      },
      "message": "signal: align __lock_task_sighand() irq disabling and RCU\n\nThe __lock_task_sighand() function calls rcu_read_lock() with interrupts\nand preemption enabled, but later calls rcu_read_unlock() with interrupts\ndisabled.  It is therefore possible that this RCU read-side critical\nsection will be preempted and later RCU priority boosted, which means that\nrcu_read_unlock() will call rt_mutex_unlock() in order to deboost itself, but\nwith interrupts disabled. This results in lockdep splats, so this commit\nnests the RCU read-side critical section within the interrupt-disabled\nregion of code.  This prevents the RCU read-side critical section from\nbeing preempted, and thus prevents the attempt to deboost with interrupts\ndisabled.\n\nIt is quite possible that a better long-term fix is to make rt_mutex_unlock()\ndisable irqs when acquiring the rt_mutex structure\u0027s -\u003ewait_lock.\n\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "ec433f0c51527426989ea8a38a856d810d739414",
      "tree": "001550d7b18b3f2b5326da3f9dfd893e31c8dc1c",
      "parents": [
        "c5d753a55ac92e09816d410cd17093813f1a904b"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Jul 19 15:32:00 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jul 20 10:50:12 2011 -0700"
      },
      "message": "softirq,rcu: Inform RCU of irq_exit() activity\n\nThe rcu_read_unlock_special() function relies on in_irq() to exclude\nscheduler activity from interrupt level.  This fails because exit_irq()\ncan invoke the scheduler after clearing the preempt_count() bits that\nin_irq() uses to determine that it is at interrupt level.  This situation\ncan result in failures as follows:\n\n $task\t\t\tIRQ\t\tSoftIRQ\n\n rcu_read_lock()\n\n /* do stuff */\n\n \u003cpreempt\u003e |\u003d UNLOCK_BLOCKED\n\n rcu_read_unlock()\n   --t-\u003ercu_read_lock_nesting\n\n\t\t\tirq_enter();\n\t\t\t/* do stuff, don\u0027t use RCU */\n\t\t\tirq_exit();\n\t\t\t  sub_preempt_count(IRQ_EXIT_OFFSET);\n\t\t\t  invoke_softirq()\n\n\t\t\t\t\tttwu();\n\t\t\t\t\t  spin_lock_irq(\u0026pi-\u003elock)\n\t\t\t\t\t  rcu_read_lock();\n\t\t\t\t\t  /* do stuff */\n\t\t\t\t\t  rcu_read_unlock();\n\t\t\t\t\t    rcu_read_unlock_special()\n\t\t\t\t\t      rcu_report_exp_rnp()\n\t\t\t\t\t        ttwu()\n\t\t\t\t\t          spin_lock_irq(\u0026pi-\u003elock) /* deadlock */\n\n   rcu_read_unlock_special(t);\n\nEd can simply trigger this \u0027easy\u0027 because invoke_softirq() immediately\ndoes a ttwu() of ksoftirqd/# instead of doing the in-place softirq stuff\nfirst, but even without that the above happens.\n\nCure this by also excluding softirqs from the\nrcu_read_unlock_special() handler and ensuring the force_irqthreads\nksoftirqd/# wakeup is done from full softirq context.\n\n[ Alternatively, delaying the -\u003ercu_read_lock_nesting decrement\n  until after the special handling would make the thing more robust\n  in the face of interrupts as well.  And there is a separate patch\n  for that. ]\n\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReported-and-tested-by: Ed Tomlinson \u003cedt@aei.ca\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "c5d753a55ac92e09816d410cd17093813f1a904b",
      "tree": "162c63edcc463e18d50fb5b5be479785f02222c4",
      "parents": [
        "10f39bb1b2c1923ca73e70cb13aeee0e9b822d8f"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Jul 19 15:07:25 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jul 20 10:50:11 2011 -0700"
      },
      "message": "sched: Add irq_{enter,exit}() to scheduler_ipi()\n\nEnsure scheduler_ipi() calls irq_{enter,exit} when it does some actual\nwork. Traditionally we never did any actual work from the resched IPI\nand all magic happened in the return from interrupt path.\n\nNow that we do do some work, we need to ensure irq_{enter,exit} are\ncalled so that we don\u0027t confuse things.\n\nThis affects things like timekeeping, NO_HZ and RCU, basically\neverything with a hook in irq_enter/exit.\n\nExplicit examples of things going wrong are:\n\n  sched_clock_cpu() -- has a callback when leaving NO_HZ state to take\n                    a new reading from GTOD and TSC. Without this\n                    callback, time is stuck in the past.\n\n  RCU -- needs in_irq() to work in order to avoid some nasty deadlocks\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "10f39bb1b2c1923ca73e70cb13aeee0e9b822d8f",
      "tree": "2e8349c57b1f0563a27be49410f413b643ded1a9",
      "parents": [
        "be0e1e21ef707be4d16ea6a96ac9997463e4b8d2"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Sun Jul 17 21:14:35 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jul 20 10:50:11 2011 -0700"
      },
      "message": "rcu: protect __rcu_read_unlock() against scheduler-using irq handlers\n\nThe addition of RCU read-side critical sections within runqueue and\npriority-inheritance lock critical sections introduced some deadlock\ncycles, for example, involving interrupts from __rcu_read_unlock()\nwhere the interrupt handlers call wake_up().  This situation can cause\nthe instance of __rcu_read_unlock() invoked from interrupt to do some\nof the processing that would otherwise have been carried out by the\ntask-level instance of __rcu_read_unlock().  When the interrupt-level\ninstance of __rcu_read_unlock() is called with a scheduler lock held\nfrom interrupt-entry/exit situations where in_irq() returns false,\ndeadlock can result.\n\nThis commit resolves these deadlocks by using negative values of\nthe per-task -\u003ercu_read_lock_nesting counter to indicate that an\ninstance of __rcu_read_unlock() is in flight, which in turn prevents\ninstances from interrupt handlers from doing any special processing.\nThis patch is inspired by Steven Rostedt\u0027s earlier patch that similarly\nmade __rcu_read_unlock() guard against interrupt-mediated recursion\n(see https://lkml.org/lkml/2011/7/15/326), but this commit refines\nSteven\u0027s approach to avoid the need for preemption disabling on the\n__rcu_read_unlock() fastpath and to also avoid the need for manipulating\na separate per-CPU variable.\n\nThis patch avoids need for preempt_disable() by instead using negative\nvalues of the per-task -\u003ercu_read_lock_nesting counter.  Note that nested\nrcu_read_lock()/rcu_read_unlock() pairs are still permitted, but they will\nnever see -\u003ercu_read_lock_nesting go to zero, and will therefore never\ninvoke rcu_read_unlock_special(), thus preventing them from seeing the\nRCU_READ_UNLOCK_BLOCKED bit should it be set in -\u003ercu_read_unlock_special.\nThis patch also adds a check for -\u003ercu_read_unlock_special being negative\nin rcu_check_callbacks(), thus preventing the RCU_READ_UNLOCK_NEED_QS\nbit from being set should a scheduling-clock interrupt occur while\n__rcu_read_unlock() is exiting from an outermost RCU read-side critical\nsection.\n\nOf course, __rcu_read_unlock() can be preempted during the time that\n-\u003ercu_read_lock_nesting is negative.  This could result in the setting\nof the RCU_READ_UNLOCK_BLOCKED bit after __rcu_read_unlock() checks it,\nand would also result it this task being queued on the corresponding\nrcu_node structure\u0027s blkd_tasks list.  Therefore, some later RCU read-side\ncritical section would enter rcu_read_unlock_special() to clean up --\nwhich could result in deadlock if that critical section happened to be in\nthe scheduler where the runqueue or priority-inheritance locks were held.\n\nThis situation is dealt with by making rcu_preempt_note_context_switch()\ncheck for negative -\u003ercu_read_lock_nesting, thus refraining from\nqueuing the task (and from setting RCU_READ_UNLOCK_BLOCKED) if we are\nalready exiting from the outermost RCU read-side critical section (in\nother words, we really are no longer actually in that RCU read-side\ncritical section).  In addition, rcu_preempt_note_context_switch()\ninvokes rcu_read_unlock_special() to carry out the cleanup in this case,\nwhich clears out the -\u003ercu_read_unlock_special bits and dequeues the task\n(if necessary), in turn avoiding needless delay of the current RCU grace\nperiod and needless RCU priority boosting.\n\nIt is still illegal to call rcu_read_unlock() while holding a scheduler\nlock if the prior RCU read-side critical section has ever had either\npreemption or irqs enabled.  However, the common use case is legal,\nnamely where then entire RCU read-side critical section executes with\nirqs disabled, for example, when the scheduler lock is held across the\nentire lifetime of the RCU read-side critical section.\n\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "d110235d2c331c4f79e0879f51104be79e17a469",
      "tree": "d56bb05a1274f9e7c6a20467d2d04713c185e7ce",
      "parents": [
        "e3589f6c81e4764d32a25d2a2a0afe54fa344f5c"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Jul 20 18:42:57 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 20 18:54:33 2011 +0200"
      },
      "message": "sched: Avoid creating superfluous NUMA domains on non-NUMA systems\n\nWhen creating sched_domains, stop when we\u0027ve covered the entire\ntarget span instead of continuing to create domains, only to\nlater find they\u0027re redundant and throw them away again.\n\nThis avoids single node systems from touching funny NUMA\nsched_domain creation code and reduces the risks of the new\nSD_OVERLAP code.\n\nRequested-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Anton Blanchard \u003canton@samba.org\u003e\nCc: mahesh@linux.vnet.ibm.com\nCc: benh@kernel.crashing.org\nCc: linuxppc-dev@lists.ozlabs.org\nLink: http://lkml.kernel.org/r/1311180177.29152.57.camel@twins\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e3589f6c81e4764d32a25d2a2a0afe54fa344f5c",
      "tree": "414bf6bdbad3f04f629fa2a72254ea85acf723f4",
      "parents": [
        "9c3f75cbd144014bea6af866a154cc2e73ab2287"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jul 15 10:35:52 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 20 18:32:41 2011 +0200"
      },
      "message": "sched: Allow for overlapping sched_domain spans\n\nAllow for sched_domain spans that overlap by giving such domains their\nown sched_group list instead of sharing the sched_groups amongst\neach-other.\n\nThis is needed for machines with more than 16 nodes, because\nsched_domain_node_span() will generate a node mask from the\n16 nearest nodes without regard if these masks have any overlap.\n\nCurrently sched_domains have a sched_group that maps to their child\nsched_domain span, and since there is no overlap we share the\nsched_group between the sched_domains of the various CPUs. If however\nthere is overlap, we would need to link the sched_group list in\ndifferent ways for each cpu, and hence sharing isn\u0027t possible.\n\nIn order to solve this, allocate private sched_groups for each CPU\u0027s\nsched_domain but have the sched_groups share a sched_group_power\nstructure such that we can uniquely track the power.\n\nReported-and-tested-by: Anton Blanchard \u003canton@samba.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/n/tip-08bxqw9wis3qti9u5inifh3y@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9c3f75cbd144014bea6af866a154cc2e73ab2287",
      "tree": "2a565f7ff0820269973415c5605e313cfff903b4",
      "parents": [
        "e6625fa48e6580a74b7e700efd7e6463e282810b"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Jul 14 13:00:06 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 20 18:32:40 2011 +0200"
      },
      "message": "sched: Break out cpu_power from the sched_group structure\n\nIn order to prepare for non-unique sched_groups per domain, we need to\ncarry the cpu_power elsewhere, so put a level of indirection in.\n\nReported-and-tested-by: Anton Blanchard \u003canton@samba.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/n/tip-qkho2byuhe4482fuknss40ad@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "be0e1e21ef707be4d16ea6a96ac9997463e4b8d2",
      "tree": "fe53c0731f5c3a6e56e2358eee9b8f17c3af83f4",
      "parents": [
        "7765be2fec0f476fcd61812d5f9406b04c765020"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sat May 21 05:57:18 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Jul 19 21:38:53 2011 -0700"
      },
      "message": "rcu: Streamline code produced by __rcu_read_unlock()\n\nGiven some common flag combinations, particularly -Os, gcc will inline\nrcu_read_unlock_special() despite its being in an unlikely() clause.\nUse noinline to prohibit this misoptimization.\n\nIn addition, move the second barrier() in __rcu_read_unlock() so that\nit is not on the common-case code path.  This will allow the compiler to\ngenerate better code for the common-case path through __rcu_read_unlock().\n\nSuggested-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nAcked-by: Mathieu Desnoyers \u003cmathieu.desnoyers@efficios.com\u003e\n"
    },
    {
      "commit": "7765be2fec0f476fcd61812d5f9406b04c765020",
      "tree": "e89ccb3fbd5655090b05f608f8e1d39924f23a9a",
      "parents": [
        "131906b0062ddde7f85bbe67754983c754648bd8"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Thu Jul 14 12:24:11 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Jul 19 21:38:52 2011 -0700"
      },
      "message": "rcu: Fix RCU_BOOST race handling current-\u003ercu_read_unlock_special\n\nThe RCU_BOOST commits for TREE_PREEMPT_RCU introduced an other-task\nwrite to a new RCU_READ_UNLOCK_BOOSTED bit in the task_struct structure\u0027s\n-\u003ercu_read_unlock_special field, but, as noted by Steven Rostedt, without\ncorrectly synchronizing all accesses to -\u003ercu_read_unlock_special.\nThis could result in bits in -\u003ercu_read_unlock_special being spuriously\nset and cleared due to conflicting accesses, which in turn could result\nin deadlocks between the rcu_node structure\u0027s -\u003elock and the scheduler\u0027s\nrq and pi locks.  These deadlocks would result from RCU incorrectly\nbelieving that the just-ended RCU read-side critical section had been\npreempted and/or boosted.  If that RCU read-side critical section was\nexecuted with either rq or pi locks held, RCU\u0027s ensuing (incorrect)\ncalls to the scheduler would cause the scheduler to attempt to once\nagain acquire the rq and pi locks, resulting in deadlock.  More complex\ndeadlock cycles are also possible, involving multiple rq and pi locks\nas well as locks from multiple rcu_node structures.\n\nThis commit fixes synchronization by creating -\u003ercu_boosted field in\ntask_struct that is accessed and modified only when holding the -\u003elock\nin the rcu_node structure on which the task is queued (on that rcu_node\nstructure\u0027s -\u003eblkd_tasks list).  This results in tasks accessing only\ntheir own current-\u003ercu_read_unlock_special fields, making unsynchronized\naccess once again legal, and keeping the rcu_read_unlock() fastpath free\nof atomic instructions and memory barriers.\n\nThe reason that the rcu_read_unlock() fastpath does not need to access\nthe new current-\u003ercu_boosted field is that this new field cannot\nbe non-zero unless the RCU_READ_UNLOCK_BLOCKED bit is set in the\ncurrent-\u003ercu_read_unlock_special field.  Therefore, rcu_read_unlock()\nneed only test current-\u003ercu_read_unlock_special: if that is zero, then\ncurrent-\u003ercu_boosted must also be zero.\n\nThis bug does not affect TINY_PREEMPT_RCU because this implementation\nof RCU accesses current-\u003ercu_read_unlock_special with irqs disabled,\nthus preventing races on the !SMP systems that TINY_PREEMPT_RCU runs on.\n\nMaybe-reported-by: Dave Jones \u003cdavej@redhat.com\u003e\nMaybe-reported-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nReported-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "131906b0062ddde7f85bbe67754983c754648bd8",
      "tree": "1b92eacb707befb294b4d9985f10aa44715cba16",
      "parents": [
        "b0d304172f49061b4ff78f9e2b02719ac69c8a7e"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Jul 17 02:05:49 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Jul 19 21:38:51 2011 -0700"
      },
      "message": "rcu: decrease rcu_report_exp_rnp coupling with scheduler\n\nPREEMPT_RCU read-side critical sections blocking an expedited grace\nperiod invoke rcu_report_exp_rnp().  When the last such critical section\nhas completed, rcu_report_exp_rnp() invokes the scheduler to wake up the\ntask that invoked synchronize_rcu_expedited() -- needlessly holding the\nroot rcu_node structure\u0027s lock while doing so, thus needlessly providing\na way for RCU and the scheduler to deadlock.\n\nThis commit therefore releases the root rcu_node structure\u0027s lock before\ncalling wake_up().\n\nReported-by: Ed Tomlinson \u003cedt@aei.ca\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "9a736a21691d48cc6e956ce8d49849823fd6af40",
      "tree": "e04b1bfcd4b39cb71c9213c0e0518bccd3a1d8e7",
      "parents": [
        "ce4022b8d1c9e1b380dc5177f955bfe5f1327e3e"
      ],
      "author": {
        "name": "Todd Poynor",
        "email": "toddpoynor@google.com",
        "time": "Wed Jun 15 17:21:57 2011 -0700"
      },
      "committer": {
        "name": "Todd Poynor",
        "email": "toddpoynor@google.com",
        "time": "Fri Jul 15 15:26:45 2011 -0700"
      },
      "message": "Move x86_64 idle notifiers to generic\n\nMove the x86_64 idle notifiers originally by Andi Kleen and Venkatesh\nPallipadi to generic.\n\nChange-Id: Idf29cda15be151f494ff245933c12462643388d5\nAcked-by: Nicolas Pitre \u003cnicolas.pitre@linaro.org\u003e\nSigned-off-by: Todd Poynor \u003ctoddpoynor@google.com\u003e\n"
    },
    {
      "commit": "df8d6fe9efba4ea4b46a5bdc229031c5bb880575",
      "tree": "d5fb84d4bec0dc62b1ec1a19a01718620caa9918",
      "parents": [
        "c64be78ffb415278d7d32d6f55de95c73dcc19a4",
        "b0d304172f49061b4ff78f9e2b02719ac69c8a7e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 15 09:54:34 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 15 09:54:34 2011 -0700"
      },
      "message": "Merge branch \u0027rcu/urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-2.6-rcu\n\n* \u0027rcu/urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-2.6-rcu:\n  rcu: Prevent RCU callbacks from executing before scheduler initialized\n"
    },
    {
      "commit": "c64be78ffb415278d7d32d6f55de95c73dcc19a4",
      "tree": "0777bdbb0424a6ce948c817247757a4ba3b01a32",
      "parents": [
        "5dcd07b9f39ca3e9be5bcc387d193fc0674e1c81"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Jul 11 16:28:50 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 15 09:54:02 2011 -0700"
      },
      "message": "sched: Fix 32bit race\n\nCommit 3fe1698b7fe0 (\"sched: Deal with non-atomic min_vruntime reads\non 32bit\") forgot to initialize min_vruntime_copy which could lead to\nan infinite while loop in task_waking_fair() under some circumstances\n(early boot, lucky timing).\n\n[ This bug was also reported by others that blamed it on the RCU\n  initialization problems ]\n\nReported-and-tested-by: Bruno Wolff III \u003cbruno@wolff.to\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nReviewed-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b0d304172f49061b4ff78f9e2b02719ac69c8a7e",
      "tree": "882123e565ced895910490514f6e676c708b5001",
      "parents": [
        "620917de59eeb934b9f8cf35cc2d95c1ac8ed0fc"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Sun Jul 10 15:57:35 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jul 13 08:17:56 2011 -0700"
      },
      "message": "rcu: Prevent RCU callbacks from executing before scheduler initialized\n\nUnder some rare but real combinations of configuration parameters, RCU\ncallbacks are posted during early boot that use kernel facilities that\nare not yet initialized.  Therefore, when these callbacks are invoked,\nhard hangs and crashes ensue.  This commit therefore prevents RCU\ncallbacks from being invoked until after the scheduler is fully up and\nrunning, as in after multiple tasks have been spawned.\n\nIt might well turn out that a better approach is to identify the specific\nRCU callbacks that are causing this problem, but that discussion will\nwait until such time as someone really needs an RCU callback to be invoked\n(as opposed to merely registered) during early boot.\n\nReported-by: julie Sullivan \u003ckernelmail.jms@gmail.com\u003e\nReported-by: RKK \u003ckulkarni.ravi4@gmail.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nTested-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nTested-by: julie Sullivan \u003ckernelmail.jms@gmail.com\u003e\nTested-by: RKK \u003ckulkarni.ravi4@gmail.com\u003e\n"
    },
    {
      "commit": "bb5b603036b99d80527b222dc98eba4ee8341020",
      "tree": "dcce59f7dd49c7f3f40ccaa1973dae94381f8fff",
      "parents": [
        "497f5982a7eae716267213a8fdc3ea4c6ac09e5e"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jul 12 19:53:24 2011 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jul 12 22:58:35 2011 -0700"
      },
      "message": "cgroup: Add generic cgroup subsystem permission checks\n\nRather than using explicit euid \u003d\u003d 0 checks when trying to move\ntasks into a cgroup via CFS, move permission checks into each\nspecific cgroup subsystem. If a subsystem does not specify a\n\u0027allow_attach\u0027 handler, then we fall back to doing our checks\nthe old way.\n\nUse the \u0027allow_attach\u0027 handler for the \u0027cpu\u0027 cgroup to allow\nnon-root processes to add arbitrary processes to a \u0027cpu\u0027 cgroup\nif it has the CAP_SYS_NICE capability set.\n\nThis version of the patch adds a \u0027allow_attach\u0027 handler instead\nof reusing the \u0027can_attach\u0027 handler.  If the \u0027can_attach\u0027 handler\nis reused, a new cgroup that implements \u0027can_attach\u0027 but not\nthe permission checks could end up with no permission checks\nat all.\n\nChange-Id: Icfa950aa9321d1ceba362061d32dc7dfa2c64f0c\nOriginal-Author: San Mehat \u003csan@google.com\u003e\nSigned-off-by: Colin Cross \u003cccross@android.com\u003e\n"
    },
    {
      "commit": "497f5982a7eae716267213a8fdc3ea4c6ac09e5e",
      "tree": "98b363939e3c4a302d4194f86f3f06b0f5a54bdf",
      "parents": [
        "75c56a81116e51c5cf15c0641906d0745188cd16"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jul 12 20:12:45 2011 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jul 12 20:45:13 2011 -0700"
      },
      "message": "Revert \"cgroup: Add generic cgroup subsystem permission checks.\"\n\nThis reverts commit 1d38bc7d0523af2233b4280e2aeab34c6a076665.\n\nChange-Id: I2c5066b696cbdd5ca117ed74718bcb7e70e878e7\nSigned-off-by: Colin Cross \u003cccross@android.com\u003e\n"
    },
    {
      "commit": "75c56a81116e51c5cf15c0641906d0745188cd16",
      "tree": "c1d8e7def5bbb099a39d5e9ccfb13508ea5ca46a",
      "parents": [
        "b4294d618e8a19bb47826e51ae52b9fb2fe05f80",
        "620917de59eeb934b9f8cf35cc2d95c1ac8ed0fc"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jul 12 20:10:37 2011 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jul 12 20:10:37 2011 -0700"
      },
      "message": "Merge commit \u0027v3.0-rc7\u0027 into android-3.0\n"
    },
    {
      "commit": "d93a881dd7d71ad0e6504af232be2795044ab686",
      "tree": "71fc6918e676a0cf53d585f5a253646a49b60c83",
      "parents": [
        "d1ca1a004822983e2fc702d5382b4b9a5527cfbe",
        "24109afd17426e1a2b72141e4a2b730057e1a0ea"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 12 14:19:51 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 12 14:19:51 2011 -0700"
      },
      "message": "Merge branch \u0027fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc\n\n* \u0027fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc:\n  pcmcia: pxa2xx/vpac270: free gpios on exist rather than requesting\n  ARM: pxa/raumfeld: fix device name for codec ak4104\n  ARM: pxa/raumfeld: display initialisation fixes\n  ARM: pxa/raumfeld: adapt to upcoming hardware change\n  ARM: pxa: fix gpio_to_chip() clash with gpiolib namespace\n  genirq: replace irq_gc_ack() with {set,clr}_bit variants (fwd)\n  arm: mach-vt8500: add forgotten irq_data conversion\n  ARM: pxa168: correct nand pmu setting\n  ARM: pxa910: correct nand pmu setting\n  ARM: pxa: fix PGSR register address calculation\n"
    }
  ],
  "next": "0226f8a76da6bc97c9bb4af3fd2f6eeb03c5b0b0"
}
