)]}'
{
  "log": [
    {
      "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": "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": "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"
    },
    {
      "commit": "0226f8a76da6bc97c9bb4af3fd2f6eeb03c5b0b0",
      "tree": "103470d3c4a2865d1cafc4d4527f97d62660fc5d",
      "parents": [
        "814cdea670616252e4cdf297a07b02ce59698bf1"
      ],
      "author": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Thu Jul 07 17:27:59 2011 -0700"
      },
      "committer": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Fri Jul 08 14:15:44 2011 -0700"
      },
      "message": "plist: Remove the need to supply locks to plist heads\n\nThis was legacy code brought over from the RT tree and\nis no longer necessary.\n\nSigned-off-by: Dima Zavin \u003cdima@android.com\u003e\nAcked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Daniel Walker \u003cdwalker@codeaurora.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nLink: http://lkml.kernel.org/r/1310084879-10351-2-git-send-email-dima@android.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "31cb852809c86541c817538c98003678546dfa58",
      "tree": "324808c5a9def43a7f15c0fda97f58ee01f03c42",
      "parents": [
        "2a9d6df425d7b46b23cbc8673b2dfefa4678abdb",
        "4d4cf23cdde2f8f9324f5684a7f349e182039529"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 07 13:22:41 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 07 13:22:41 2011 -0700"
      },
      "message": "Merge branch \u0027pm-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6\n\n* \u0027pm-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6:\n  PM / Hibernate: Fix free_unnecessary_pages()\n"
    },
    {
      "commit": "27a3b735b70651f28db03e5f92775a40661ba7a6",
      "tree": "9f300b93aa34381aa1d3121e9d53e8c8e1623a24",
      "parents": [
        "85746e429f8e5dc8c5c0beadc0f099cb1feab93e",
        "161b6ae0e067e421b20bb35caf66bdb405c929ac",
        "140fe3b1ab9c082182ef13359fab4ddba95c24c3",
        "e4c2fb0d5776b58049d2556b456144a4db3fe5a9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 07 13:17:45 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 07 13:17:45 2011 -0700"
      },
      "message": "Merge branches \u0027core-urgent-for-linus\u0027, \u0027perf-urgent-for-linus\u0027 and \u0027sched-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  debugobjects: Fix boot crash when kmemleak and debugobjects enabled\n\n* \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  jump_label: Fix jump_label update for modules\n  oprofile, x86: Fix race in nmi handler while starting counters\n\n* \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched: Disable (revert) SCHED_LOAD_SCALE increase\n  sched, cgroups: Fix MIN_SHARES on 64-bit boxen\n"
    },
    {
      "commit": "659fb32d1b67476f4ade25e9ea0e2642a5b9c4b5",
      "tree": "a875904f1c457f321563060491956266a57c6514",
      "parents": [
        "d30e1521b2afb5e6f21ca8bc1a4b6ec2afc93597"
      ],
      "author": {
        "name": "Simon Guinot",
        "email": "sguinot@lacie.com",
        "time": "Wed Jul 06 12:41:31 2011 -0400"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Thu Jul 07 16:02:26 2011 +0000"
      },
      "message": "genirq: replace irq_gc_ack() with {set,clr}_bit variants (fwd)\n\nThis fixes a regression introduced by e59347a \"arm: orion:\nUse generic irq chip\".\n\nDepending on the device, interrupts acknowledgement is done by setting\nor by clearing a dedicated register. Replace irq_gc_ack() with some\n{set,clr}_bit variants allows to handle both cases.\n\nNote that this patch affects the following SoCs: Davinci, Samsung and\nOrion. Except for this last, the change is minor: irq_gc_ack() is just\nrenamed into irq_gc_ack_set_bit().\n\nFor the Orion SoCs, the edge GPIO interrupts support is currently\nbroken. irq_gc_ack() try to acknowledge a such interrupt by setting\nthe corresponding cause register bit. The Orion GPIO device expect the\nopposite. To fix this issue, the irq_gc_ack_clr_bit() variant is used.\n\nTested on Network Space v2.\n\nReported-by: Joey Oravec \u003cjoravec@drewtech.com\u003e\nSigned-off-by: Simon Guinot \u003csguinot@lacie.com\u003e\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\n"
    },
    {
      "commit": "4d4cf23cdde2f8f9324f5684a7f349e182039529",
      "tree": "f84a26d15f1112cc7c452d1fdac3bd70857774e0",
      "parents": [
        "a2fa83faf47b514ab947cea916d3691b66525073"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Jul 06 20:15:23 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Jul 06 20:15:23 2011 +0200"
      },
      "message": "PM / Hibernate: Fix free_unnecessary_pages()\n\nThere is a bug in free_unnecessary_pages() that causes it to\nattempt to free too many pages in some cases, which triggers the\nBUG_ON() in memory_bm_clear_bit() for copy_bm.  Namely, if\ncount_data_pages() is initially greater than alloc_normal, we get\nto_free_normal equal to 0 and \"save\" greater from 0.  In that case,\nif the sum of \"save\" and count_highmem_pages() is greater than\nalloc_highmem, we subtract a positive number from to_free_normal.\nHence, since to_free_normal was 0 before the subtraction and is\nan unsigned int, the result is converted to a huge positive number\nthat is used as the number of pages to free.\n\nFix this bug by checking if to_free_normal is actually greater\nthan or equal to the number we\u0027re going to subtract from it.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nReported-and-tested-by: Matthew Garrett \u003cmjg@redhat.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "23c570a67448e803408191f529ed9a83fd34a25a",
      "tree": "8705e1ad863d745c42d8eb95a8c3f53f26fd0e38",
      "parents": [
        "a51cb91d81f8e6fc4e5e08b772cc3ceb13ac9d37"
      ],
      "author": {
        "name": "Ram Pai",
        "email": "linuxram@us.ibm.com",
        "time": "Tue Jul 05 23:44:30 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 06 10:54:08 2011 -0700"
      },
      "message": "resource: ability to resize an allocated resource\n\nProvides the ability to resize a resource that is already allocated.\nThis functionality is put in place to support reallocation needs of\npci resources.\n\nSigned-off-by: Ram Pai \u003clinuxram@us.ibm.com\u003e\nAcked-by: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cd62287e364c0d15d517c6ced4e4808b54711475",
      "tree": "12544d4a0b84f378691be2a1d3d48a46f42595fc",
      "parents": [
        "daf54f1f363a61c618662ef66d4bf09d2b090941"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "mgalbraith@suse.de",
        "time": "Sat Jun 04 15:03:20 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 01 10:25:03 2011 +0200"
      },
      "message": "sched, cgroups: Fix MIN_SHARES on 64-bit boxen\n\nCommit c8b28116 (\"sched: Increase SCHED_LOAD_SCALE resolution\")\nintended to have no user-visible effect, but allows setting\ncpu.shares to \u003c MIN_SHARES, which the user then sees.\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Nikhil Rao \u003cncrao@google.com\u003e\nLink: http://lkml.kernel.org/r/1307192600.8618.3.camel@marge.simson.net\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e55d4fa96762fd767a3b6d842c904e994db6bb2e",
      "tree": "c74157e01cb128cb97f106a50cfadc4c8b872c41",
      "parents": [
        "e32c14667e4fe9f16ac9b918d15d29abd2315a55",
        "b0af8dfdd67699e25083478c63eedef2e72ebd85"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Jun 29 13:54:42 2011 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Jun 29 13:54:42 2011 -0700"
      },
      "message": "Merge commit \u0027v3.0-rc5\u0027 into android-3.0\n"
    },
    {
      "commit": "140fe3b1ab9c082182ef13359fab4ddba95c24c3",
      "tree": "e59debeb1aea1650fd490b0264f66b4f70a26aca",
      "parents": [
        "debf1d4948bccf58fa172acb1a7306792d77705d"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Tue Jun 21 10:35:55 2011 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jun 29 09:59:17 2011 -0400"
      },
      "message": "jump_label: Fix jump_label update for modules\n\nThe jump labels entries for modules do not stop at __stop__jump_table,\nbut after mod-\u003ejump_entries + mod_num_jump_entries.\n\nBy checking the wrong end point, module trace events never get enabled.\n\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Jason Baron \u003cjbaron@redhat.com\u003e\nTested-by: Avi Kivity \u003cavi@redhat.com\u003e\nTested-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nLink: http://lkml.kernel.org/r/4E00038B.2060404@cn.fujitsu.com\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "26c4caea9d697043cc5a458b96411b86d7f6babd",
      "tree": "cf4de2553fbfcafc41eb4f84bc9ee1eb69adf725",
      "parents": [
        "08142579b6ca35883c1ed066a2681de6f6917062"
      ],
      "author": {
        "name": "Vasiliy Kulikov",
        "email": "segoon@openwall.com",
        "time": "Mon Jun 27 16:18:11 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 27 18:00:13 2011 -0700"
      },
      "message": "taskstats: don\u0027t allow duplicate entries in listener mode\n\nCurrently a single process may register exit handlers unlimited times.\nIt may lead to a bloated listeners chain and very slow process\nterminations.\n\nEg after 10KK sent TASKSTATS_CMD_ATTR_REGISTER_CPUMASKs ~300 Mb of\nkernel memory is stolen for the handlers chain and \"time id\" shows 2-7\nseconds instead of normal 0.003.  It makes it possible to exhaust all\nkernel memory and to eat much of CPU time by triggerring numerous exits\non a single CPU.\n\nThe patch limits the number of times a single process may register\nitself on a single CPU to one.\n\nOne little issue is kept unfixed - as taskstats_exit() is called before\nexit_files() in do_exit(), the orphaned listener entry (if it was not\nexplicitly deregistered) is kept until the next someone\u0027s exit() and\nimplicit deregistration in send_cpu_listeners().  So, if a process\nregistered itself as a listener exits and the next spawned process gets\nthe same pid, it would inherit taskstats attributes.\n\nSigned-off-by: Vasiliy Kulikov \u003csegooon@gmail.com\u003e\nCc: Balbir Singh \u003cbsingharora@gmail.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8abf55883431a91d4877933240c8419b7fc17274",
      "tree": "c7de035cf068f3edf5053a30d912c2024bac88d8",
      "parents": [
        "4d362ad280fca0f2e098de607534f72f2c243e12",
        "b1eb085c064d0843826d7402db7fc5f3032e01fc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jun 25 07:23:59 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jun 25 07:23:59 2011 -0700"
      },
      "message": "Merge branch \u0027timer-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timer-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  rtc: vt8500: Fix build error \u0026 cleanup rtc_class_ops-\u003eupdate_irq_enable()\n  alarmtimers: Return -ENOTSUPP if no RTC device is present\n  alarmtimers: Handle late rtc module loading\n"
    },
    {
      "commit": "1c6b39ad3f01514fd8dd84b5b412bafb75c19388",
      "tree": "bd31cf5d3e67acc9ef23c97ddd92c961b73f40c7",
      "parents": [
        "c008ba58af24dc5d0d8e9fe6e59d876910254761"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Jun 16 18:47:37 2011 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Tue Jun 21 16:32:28 2011 -0700"
      },
      "message": "alarmtimers: Return -ENOTSUPP if no RTC device is present\n\nToralf Förster and Richard Weinberger noted that if there is\nno RTC device, the alarm timers core prints out an annoying\n\"ALARM timers will not wake from suspend\" message.\n\nThis warning has been removed in a previous patch, however\nthe issue still remains:  The original idea was to support\nalarm timers even if there was no rtc device, as long as the\nsystem didn\u0027t go into suspend.\n\nHowever, after further consideration, communicating to the application\nthat alarmtimers are not fully functional seems like the better\nsolution.\n\nSo this patch makes it so we return -ENOTSUPP to any posix _ALARM\nclockid calls if there is no backing RTC device on the system.\n\nFurther this changes the behavior where when there is no rtc device\nwe will check for one on clock_getres, clock_gettime, timer_create,\nand timer_nsleep instead of on suspend.\n\nCC: Toralf Förster \u003ctoralf.foerster@gmx.de\u003e\nCC: Richard Weinberger \u003crichard@nod.at\nCC: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReported-by: Toralf Förster \u003ctoralf.foerster@gmx.de\u003e\nReported by: Richard Weinberger \u003crichard@nod.at\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "c008ba58af24dc5d0d8e9fe6e59d876910254761",
      "tree": "0e718ce49992b6a7dfde619cd6ebf05afe06ae12",
      "parents": [
        "e08f6d4131ab964420f0bcabecc68d75fb49df79"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Jun 16 18:27:09 2011 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Tue Jun 21 15:38:33 2011 -0700"
      },
      "message": "alarmtimers: Handle late rtc module loading\n\nThe alarmtimers code currently picks a rtc device to use at\nlate init time. However, if your rtc driver is loaded as a module,\nit may be registered after the alarmtimers late init code, leaving\nthe alarmtimers nonfunctional.\n\nThis patch moves the the rtcdevice selection to when we actually try\nto use it, allowing us to make use of rtc modules that may have been\nloaded at any point since bootup.\n\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCC: Meelis Roos \u003cmroos@ut.ee\u003e\nReported-by: Meelis Roos \u003cmroos@ut.ee\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "8440f4b19494467883f8541b7aa28c7bbf6ac92b",
      "tree": "3682e034553d8b9ac676e17b144fe5b15cbb0174",
      "parents": [
        "f76b168b6f117a49d36307053e1acbe30580ea5b"
      ],
      "author": {
        "name": "Michal Kubecek",
        "email": "mkubecek@suse.cz",
        "time": "Sat Jun 18 20:34:01 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Jun 21 23:20:06 2011 +0200"
      },
      "message": "PM: Free memory bitmaps if opening /dev/snapshot fails\n\nWhen opening /dev/snapshot device, snapshot_open() creates memory\nbitmaps which are freed in snapshot_release(). But if any of the\ncallbacks called by pm_notifier_call_chain() returns NOTIFY_BAD, open()\nfails, snapshot_release() is never called and bitmaps are not freed.\nNext attempt to open /dev/snapshot then triggers BUG_ON() check in\ncreate_basic_memory_bitmaps(). This happens e.g. when vmwatchdog module\nis active on s390x.\n\nSigned-off-by: Michal Kubecek \u003cmkubecek@suse.cz\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "8816ead9d8e7c2745788e0684797e1912b504f33",
      "tree": "2a619a821024d31be2ce6ff422f287792379fe5b",
      "parents": [
        "357ed6b1a110048ff8106f99092d6c4a7aadb45a",
        "203db2952bc87f5d610c9ad53a7d02b85897721f",
        "d8ad7d1123a960cc9f276bd499f9325c6f5e1bd1",
        "b5199515c25cca622495eb9c6a8a1d275e775088",
        "c1f5c54b57341e872a9d375dccef7257f86033ef"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 19 09:00:18 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 19 09:00:18 2011 -0700"
      },
      "message": "Merge branches \u0027perf-urgent-for-linus\u0027, \u0027sched-urgent-for-linus\u0027, \u0027timers-urgent-for-linus\u0027 and \u0027x86-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  tools/perf: Fix static build of perf tool\n  tracing: Fix regression in printk_formats file\n\n* \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  generic-ipi: Fix kexec boot crash by initializing call_single_queue before enabling interrupts\n\n* \u0027timers-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  clocksource: Make watchdog robust vs. interruption\n  timerfd: Fix wakeup of processes when timer is cancelled on clock change\n\n* \u0027x86-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, MAINTAINERS: Add x86 MCE people\n  x86, efi: Do not reserve boot services regions within reserved areas\n"
    },
    {
      "commit": "357ed6b1a110048ff8106f99092d6c4a7aadb45a",
      "tree": "ff4eb7e809e547bc3c0680dfd51793a8f57b2063",
      "parents": [
        "de505e709ffb09a7382ca8e0d8c7dbb171ba5830",
        "f8b7fc6b514f34a51875dd48dff70d4d17a54f38"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 19 08:56:56 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 19 08:56:56 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  rcu: Move RCU_BOOST #ifdefs to header file\n  rcu: use softirq instead of kthreads except when RCU_BOOST\u003dy\n  rcu: Use softirq to address performance regression\n  rcu: Simplify curing of load woes\n"
    },
    {
      "commit": "879669961b11e7f40b518784863a259f735a72bf",
      "tree": "9bff5392e365caf656c9dd9be38f7471c182278c",
      "parents": [
        "eb96c925152fc289311e5d7e956b919e9b60ab53"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jun 17 11:25:59 2011 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 17 09:40:48 2011 -0700"
      },
      "message": "KEYS/DNS: Fix ____call_usermodehelper() to not lose the session keyring\n\n____call_usermodehelper() now erases any credentials set by the\nsubprocess_inf::init() function.  The problem is that commit\n17f60a7da150 (\"capabilites: allow the application of capability limits\nto usermode helpers\") creates and commits new credentials with\nprepare_kernel_cred() after the call to the init() function.  This wipes\nall keyrings after umh_keys_init() is called.\n\nThe best way to deal with this is to put the init() call just prior to\nthe commit_creds() call, and pass the cred pointer to init().  That\nmeans that umh_keys_init() and suchlike can modify the credentials\n_before_ they are published and potentially in use by the rest of the\nsystem.\n\nThis prevents request_key() from working as it is prevented from passing\nthe session keyring it set up with the authorisation token to\n/sbin/request-key, and so the latter can\u0027t assume the authority to\ninstantiate the key.  This causes the in-kernel DNS resolver to fail\nwith ENOKEY unconditionally.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Eric Paris \u003ceparis@redhat.com\u003e\nTested-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d8ad7d1123a960cc9f276bd499f9325c6f5e1bd1",
      "tree": "0260df1b5b5b1601f56229c7dde54594d2dfebcb",
      "parents": [
        "eb96c925152fc289311e5d7e956b919e9b60ab53"
      ],
      "author": {
        "name": "Takao Indoh",
        "email": "indou.takao@jp.fujitsu.com",
        "time": "Tue Mar 29 12:35:04 2011 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 17 10:17:12 2011 +0200"
      },
      "message": "generic-ipi: Fix kexec boot crash by initializing call_single_queue before enabling interrupts\n\nThere is a problem that kdump(2nd kernel) sometimes hangs up due\nto a pending IPI from 1st kernel. Kernel panic occurs because IPI\ncomes before call_single_queue is initialized.\n\nTo fix the crash, rename init_call_single_data() to call_function_init()\nand call it in start_kernel() so that call_single_queue can be\ninitialized before enabling interrupts.\n\nThe details of the crash are:\n\n (1) 2nd kernel boots up\n\n (2) A pending IPI from 1st kernel comes when irqs are first enabled\n     in start_kernel().\n\n (3) Kernel tries to handle the interrupt, but call_single_queue\n     is not initialized yet at this point. As a result, in the\n     generic_smp_call_function_single_interrupt(), NULL pointer\n     dereference occurs when list_replace_init() tries to access\n     \u0026q-\u003elist.next.\n\nTherefore this patch changes the name of init_call_single_data()\nto call_function_init() and calls it before local_irq_enable()\nin start_kernel().\n\nSigned-off-by: Takao Indoh \u003cindou.takao@jp.fujitsu.com\u003e\nReviewed-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nAcked-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nAcked-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Milton Miller \u003cmiltonm@bga.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: kexec@lists.infradead.org\nLink: http://lkml.kernel.org/r/D6CBEE2F420741indou.takao@jp.fujitsu.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f8b7fc6b514f34a51875dd48dff70d4d17a54f38",
      "tree": "dc6583851e3536516761b0fd9b07f5a3a1743ebb",
      "parents": [
        "a46e0899eec7a3069bcadd45dfba7bf67c6ed016"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Thu Jun 16 08:26:32 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Jun 16 16:12:05 2011 -0700"
      },
      "message": "rcu: Move RCU_BOOST #ifdefs to header file\n\nThe commit \"use softirq instead of kthreads except when RCU_BOOST\u003dy\"\njust applied #ifdef in place.  This commit is a cleanup that moves\nthe newly #ifdef\u0027ed code to the header file kernel/rcutree_plugin.h.\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": "b5199515c25cca622495eb9c6a8a1d275e775088",
      "tree": "250fc4f3d02c58eddf770e9d040edeafd0012e76",
      "parents": [
        "1123d93963cbd2546449d4d9f0c568e323cb0ac6"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Jun 16 16:22:08 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Jun 16 19:30:53 2011 +0200"
      },
      "message": "clocksource: Make watchdog robust vs. interruption\n\nThe clocksource watchdog code is interruptible and it has been\nobserved that this can trigger false positives which disable the TSC.\n\nThe reason is that an interrupt storm or a long running interrupt\nhandler between the read of the watchdog source and the read of the\nTSC brings the two far enough apart that the delta is larger than the\nunstable treshold. Move both reads into a short interrupt disabled\nregion to avoid that.\n\nReported-and-tested-by: Vernon Mauery \u003cvernux@us.ibm.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "a46e0899eec7a3069bcadd45dfba7bf67c6ed016",
      "tree": "78158b4056fe1365d5086f66769abdc3ef2643c3",
      "parents": [
        "09223371deac67d08ca0b70bd18787920284c967"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jun 15 15:47:09 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jun 15 23:07:21 2011 -0700"
      },
      "message": "rcu: use softirq instead of kthreads except when RCU_BOOST\u003dy\n\nThis patch #ifdefs RCU kthreads out of the kernel unless RCU_BOOST\u003dy,\nthus eliminating context-switch overhead if RCU priority boosting has\nnot been configured.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "a1b6ae8ed01736dae19a33e74ea4e8dd88f891b5",
      "tree": "62019061cacdc90ba1454a8f9d227acbd7a64cde",
      "parents": [
        "21c5977a836e399fc710ff2c5367845ed5c2527f",
        "0da938c44921cfb690283d3b0c9c48a10375db2c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 15 21:45:18 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 15 21:45:18 2011 -0700"
      },
      "message": "Merge branch \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched: Check if lowest_mask is initialized in find_lowest_rq()\n  sched: Fix need_resched() when checking peempt\n"
    },
    {
      "commit": "d2c32258798f813dc2be6cbc32f78aa5ac5cb205",
      "tree": "e44c0d0feeaa52fe7d7b02ed343f7f5b671c372a",
      "parents": [
        "b0461a44a2f1fc052fc949ae19c3a5d684627b09"
      ],
      "author": {
        "name": "Josh Triplett",
        "email": "josh@joshtriplett.org",
        "time": "Wed Jun 15 15:08:47 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 15 20:04:01 2011 -0700"
      },
      "message": "gcov: disable CONFIG_CONSTRUCTORS when not needed by CONFIG_GCOV_KERNEL\n\nCONFIG_CONSTRUCTORS controls support for running constructor functions at\nkernel init time.  According to commit b99b87f70c7785ab (\"kernel:\nconstructor support\"), gcov (CONFIG_GCOV_KERNEL) needs this.  However,\nCONFIG_CONSTRUCTORS currently defaults to y, with no option to disable it,\nand CONFIG_GCOV_KERNEL depends on it.  Instead, default it to n and have\nCONFIG_GCOV_KERNEL select it, so that the normal case of\nCONFIG_GCOV_KERNEL\u003dn will result in CONFIG_CONSTRUCTORS\u003dn.\n\nObserved in the short list of \u003dy values in a minimal kernel configuration.\n\nSigned-off-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\nAcked-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nAcked-by: Peter Oberparleiter \u003cpeter.oberparleiter@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "733eda7ac316cd4e550fa096e4ed42356dc546e7",
      "tree": "6522f47608fb97314a7b615b1cb1d6e2c58952c8",
      "parents": [
        "37573e8c718277103f61f03741bdc5606d31b07e"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Jun 15 15:08:43 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 15 20:04:01 2011 -0700"
      },
      "message": "memcg: clear mm-\u003eowner when last possible owner leaves\n\nThe following crash was reported:\n\n\u003e Call Trace:\n\u003e [\u003cffffffff81139792\u003e] mem_cgroup_from_task+0x15/0x17\n\u003e [\u003cffffffff8113a75a\u003e] __mem_cgroup_try_charge+0x148/0x4b4\n\u003e [\u003cffffffff810493f3\u003e] ? need_resched+0x23/0x2d\n\u003e [\u003cffffffff814cbf43\u003e] ? preempt_schedule+0x46/0x4f\n\u003e [\u003cffffffff8113afe8\u003e] mem_cgroup_charge_common+0x9a/0xce\n\u003e [\u003cffffffff8113b6d1\u003e] mem_cgroup_newpage_charge+0x5d/0x5f\n\u003e [\u003cffffffff81134024\u003e] khugepaged+0x5da/0xfaf\n\u003e [\u003cffffffff81078ea0\u003e] ? __init_waitqueue_head+0x4b/0x4b\n\u003e [\u003cffffffff81133a4a\u003e] ? add_mm_counter.constprop.5+0x13/0x13\n\u003e [\u003cffffffff81078625\u003e] kthread+0xa8/0xb0\n\u003e [\u003cffffffff814d13e8\u003e] ? sub_preempt_count+0xa1/0xb4\n\u003e [\u003cffffffff814d5664\u003e] kernel_thread_helper+0x4/0x10\n\u003e [\u003cffffffff814ce858\u003e] ? retint_restore_args+0x13/0x13\n\u003e [\u003cffffffff8107857d\u003e] ? __init_kthread_worker+0x5a/0x5a\n\nWhat happens is that khugepaged tries to charge a huge page against an mm\nwhose last possible owner has already exited, and the memory controller\ncrashes when the stale mm-\u003eowner is used to look up the cgroup to charge.\n\nmm-\u003eowner has never been set to NULL with the last owner going away, but\nnobody cared until khugepaged came along.\n\nEven then it wasn\u0027t a problem because the final mmput() on an mm was\nforced to acquire and release mmap_sem in write-mode, preventing an\nexiting owner to go away while the mmap_sem was held, and until \"692e0b3\nmm: thp: optimize memcg charge in khugepaged\", the memory cgroup charge\nwas protected by mmap_sem in read-mode.\n\nInstead of going back to relying on the mmap_sem to enforce lifetime of a\ntask, this patch ensures that mm-\u003eowner is properly set to NULL when the\nlast possible owner is exiting, which the memory controller can handle\njust fine.\n\n[akpm@linux-foundation.org: tweak comments]\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReported-by: Hugh Dickins \u003chughd@google.com\u003e\nReported-by: Dave Jones \u003cdavej@redhat.com\u003e\nReviewed-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0da938c44921cfb690283d3b0c9c48a10375db2c",
      "tree": "7e9374a3ed16a4118f2f5d600067c471aaa80c70",
      "parents": [
        "8dd0de8be31b4b966d17750a0b10df2f575c91ac"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 14 18:36:25 2011 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 15 11:44:48 2011 +0200"
      },
      "message": "sched: Check if lowest_mask is initialized in find_lowest_rq()\n\nOn system boot up, the lowest_mask is initialized with an\nearly_initcall(). But RT tasks may wake up on other\nearly_initcall() callers before the lowest_mask is initialized,\ncausing a system crash.\n\nCommit \"d72bce0e67 rcu: Cure load woes\" was the first commit\nto wake up RT tasks in early init. Before this commit this bug\nshould not happen.\n\nReported-by: Andrew Theurer \u003chabanero@linux.vnet.ibm.com\u003e\nTested-by: Andrew Theurer \u003chabanero@linux.vnet.ibm.com\u003e\nTested-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLink: http://lkml.kernel.org/r/20110614223657.824872966@goodmis.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8dd0de8be31b4b966d17750a0b10df2f575c91ac",
      "tree": "991b9dddf6ef092f94bba5af7609c13c8d7b113c",
      "parents": [
        "2c53b436a30867eb6b47dd7bab23ba638d1fb0d2"
      ],
      "author": {
        "name": "Hillf Danton",
        "email": "dhillf@gmail.com",
        "time": "Tue Jun 14 18:36:24 2011 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 15 09:50:32 2011 +0200"
      },
      "message": "sched: Fix need_resched() when checking peempt\n\nThe RT preempt check tests the wrong task if NEED_RESCHED is\nset. It currently checks the local CPU task. It is supposed to\ncheck the task that is running on the runqueue we are about to\nwake another task on.\n\nSigned-off-by: Hillf Danton \u003cdhillf@gmail.com\u003e\nReviewed-by: Yong Zhang \u003cyong.zhang0@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLink: http://lkml.kernel.org/r/20110614223657.450239027@goodmis.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ada9c93312f7ec49514c68c211595ce2601cebae",
      "tree": "d20d678c04daf68705f3006e3bc2a00746f3eb18",
      "parents": [
        "60b8b1de0dd2bf246f0e074d287bb3f0bc42a755"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Tue Jun 14 15:50:11 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 14 19:12:17 2011 -0700"
      },
      "message": "signal.c: fix kernel-doc notation\n\nFix kernel-doc warnings in signal.c:\n\n  Warning(kernel/signal.c:2374): No description found for parameter \u0027nset\u0027\n  Warning(kernel/signal.c:2374): Excess function parameter \u0027set\u0027 description in \u0027sys_rt_sigprocmask\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "09223371deac67d08ca0b70bd18787920284c967",
      "tree": "0ad0354a93ac209c8cfd2b79d03d0462aa3c5c58",
      "parents": [
        "9a432736904d386cda28b987b38ba14dae960ecc"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Tue Jun 14 13:26:25 2011 +0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Jun 14 15:25:39 2011 -0700"
      },
      "message": "rcu: Use softirq to address performance regression\n\nCommit a26ac2455ffcf3(rcu: move TREE_RCU from softirq to kthread)\nintroduced performance regression. In an AIM7 test, this commit degraded\nperformance by about 40%.\n\nThe commit runs rcu callbacks in a kthread instead of softirq. We observed\nhigh rate of context switch which is caused by this. Out test system has\n64 CPUs and HZ is 1000, so we saw more than 64k context switch per second\nwhich is caused by RCU\u0027s per-CPU kthread.  A trace showed that most of\nthe time the RCU per-CPU kthread doesn\u0027t actually handle any callbacks,\nbut instead just does a very small amount of work handling grace periods.\nThis means that RCU\u0027s per-CPU kthreads are making the scheduler do quite\na bit of work in order to allow a very small amount of RCU-related\nprocessing to be done.\n\nAlex Shi\u0027s analysis determined that this slowdown is due to lock\ncontention within the scheduler.  Unfortunately, as Peter Zijlstra points\nout, the scheduler\u0027s real-time semantics require global action, which\nmeans that this contention is inherent in real-time scheduling.  (Yes,\nperhaps someone will come up with a workaround -- otherwise, -rt is not\ngoing to do well on large SMP systems -- but this patch will work around\nthis issue in the meantime.  And \"the meantime\" might well be forever.)\n\nThis patch therefore re-introduces softirq processing to RCU, but only\nfor core RCU work.  RCU callbacks are still executed in kthread context,\nso that only a small amount of RCU work runs in softirq context in the\ncommon case.  This should minimize ksoftirqd execution, allowing us to\nskip boosting of ksoftirqd for CONFIG_RCU_BOOST\u003dy kernels.\n\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nTested-by: \"Alex,Shi\" \u003calex.shi@intel.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "9a432736904d386cda28b987b38ba14dae960ecc",
      "tree": "20294203f9c6132d79737e9ab54c746546afe7d4",
      "parents": [
        "59c5f46fbe01a00eedf54a23789634438bb80603"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon May 30 20:38:55 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Jun 14 15:25:15 2011 -0700"
      },
      "message": "rcu: Simplify curing of load woes\n\nMake the functions creating the kthreads wake them up.  Leverage the\nfact that the per-node and boost kthreads can run anywhere, thus\ndispensing with the need to wake them up once the incoming CPU has\ngone fully online.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nTested-by: Daniel J Blueman \u003cdaniel.blueman@gmail.com\u003e\n"
    },
    {
      "commit": "abbb445f65bbb139202fde5a66f9a249977058c9",
      "tree": "07f1a792c9c1fba2c291b64887f9cb08b661e811",
      "parents": [
        "4700c54b66189fe2acaa49df63e56a1615d99d32"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 11:36:39 2011 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 11:37:53 2011 -0700"
      },
      "message": "HACK: time: Disable alarmtimer\n\nkernel/time/alarmtimer.c conflicts with drivers/rtc/alarm.c,\ndisable it for now.\n\nChange-Id: I6cdb3b885828d45836a54971adf16143039b0a0e\nSigned-off-by: Colin Cross \u003cccross@android.com\u003e\n"
    },
    {
      "commit": "36cf5520be8537fa554761194f2fd8cfa2527440",
      "tree": "3a9241c9e08b9043ac7217fc3da565746f0ae299",
      "parents": [
        "37b0597b0ff75c625d486c4b9e39ee498fe71c37"
      ],
      "author": {
        "name": "mhban",
        "email": "mhban@samsung.com",
        "time": "Wed Jun 08 09:13:15 2011 +0000"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:10:07 2011 -0700"
      },
      "message": "printk: do not handle non-sleepable notification in console_cpu_notify\n\n- CPU_DYING should not be handled in sleepable context\n\nSigned-off-by: Minho Ban \u003cmhban@samsung.com\u003e\n"
    },
    {
      "commit": "28e23cf73c26d2bb13451804e328797a55f471e4",
      "tree": "06b4e77dabde6ac914133a48303ddcfaf47fcdb6",
      "parents": [
        "e67dd1611d5330ba9d41ba9ccdc78d6ff2963398"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Mar 30 12:37:49 2011 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:09:53 2011 -0700"
      },
      "message": "power: wakelock: use get_xtime_and_monotonic_and_sleep_offset in get_expired_time\n\nChange-Id: I6ebe6b954b2ff328d46898d683650dafb9c4fe74\nSigned-off-by: Erik Gilling \u003ckonkers@android.com\u003e\n"
    },
    {
      "commit": "1613ecd0e1282b13559c45a7406ef46b8bd367ef",
      "tree": "9f7d52314a970ecb0c18ef93c0066b53f69f0fef",
      "parents": [
        "f780a1f78fe3f4a4ce27bf862cb6cf1fb14950f2"
      ],
      "author": {
        "name": "Todd Poynor",
        "email": "toddpoynor@google.com",
        "time": "Mon Jan 24 14:36:39 2011 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:09:50 2011 -0700"
      },
      "message": "Print pending wakeup IRQ preventing suspend to dmesg\n\nChange-Id: I36f90735c75fb7c7ab1084775ec0d0ab02336e6e\nSigned-off-by: Todd Poynor \u003ctoddpoynor@google.com\u003e\n"
    },
    {
      "commit": "dbc38c633f4b7abe97c53036df55fbb2040188bc",
      "tree": "57123eb96e4b840a3efd1fc4c51073f7229dd23d",
      "parents": [
        "6d51e762b1b58226ddaf922673970162e71c9ed9"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Nov 23 21:37:04 2010 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:09:40 2011 -0700"
      },
      "message": "cgroup: Remove call to synchronize_rcu in cgroup_attach_task\n\nsynchronize_rcu can be very expensive, averaging 100 ms in\nsome cases.  In cgroup_attach_task, it is used to prevent\na task-\u003ecgroups pointer dereferenced in an RCU read side\ncritical section from being invalidated, by delaying the\ncall to put_css_set until after an RCU grace period.\n\nTo avoid the call to synchronize_rcu, make the put_css_set\ncall rcu-safe by moving the deletion of the css_set links\ninto free_css_set_work, scheduled by the rcu callback\nfree_css_set_rcu.\n\nThe decrement of the cgroup refcount is no longer\nsynchronous with the call to put_css_set, which can result\nin the cgroup refcount staying positive after the last call\nto cgroup_attach_task returns.  To allow the cgroup to be\ndeleted with cgroup_rmdir synchronously after\ncgroup_attach_task, have rmdir check the refcount of all\nassociated css_sets.  If cgroup_rmdir is called on a cgroup\nfor which the css_sets all have refcount zero but the\ncgroup refcount is nonzero, reuse the rmdir waitqueue to\nblock the rmdir until free_css_set_work is called.\n\nSigned-off-by: Colin Cross \u003cccross@android.com\u003e\n"
    },
    {
      "commit": "6d51e762b1b58226ddaf922673970162e71c9ed9",
      "tree": "25231ef1d676fab8edfeb091daeb6354921c42f8",
      "parents": [
        "a0f07aae54e87a9fad6d19c0e57398f54d858f06"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Nov 23 21:37:03 2010 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:09:40 2011 -0700"
      },
      "message": "cgroup: Set CGRP_RELEASABLE when adding to a cgroup\n\nChanges the meaning of CGRP_RELEASABLE to be set on any cgroup\nthat has ever had a task or cgroup in it, or had css_get called\non it.  The bit is set in cgroup_attach_task, cgroup_create,\nand __css_get.  It is not necessary to set the bit in\ncgroup_fork, as the task is either in the root cgroup, in\nwhich can never be released, or the task it was forked from\nalready set the bit in croup_attach_task.\n\nSigned-off-by: Colin Cross \u003cccross@android.com\u003e\n"
    },
    {
      "commit": "435aacd2a0cf0fc6402719fb69a3fac614686347",
      "tree": "93d26b8397539b0351f0e6c02529d8bda78ef079",
      "parents": [
        "7ef37e015313dc58064d39bcdd5e25adb36518f5"
      ],
      "author": {
        "name": "Erik Gilling",
        "email": "konkers@android.com",
        "time": "Mon Aug 30 18:22:20 2010 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:09:35 2011 -0700"
      },
      "message": "power: wakelock: call __get_wall_to_monotonic() instead of using wall_to_monotonic\n\nChange-Id: I9e9c3b923bf9a22ffd48f80a72050289496e57d8\n"
    },
    {
      "commit": "0c7841ce3e0a90bab630f671992348dafb022558",
      "tree": "a1e95e7106d661813176d7aeb64873bdce265d26",
      "parents": [
        "5eb6fdc0c710873d2be76db4965f247f484f531a"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@google.com",
        "time": "Sat Aug 21 17:27:02 2010 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:09:34 2011 -0700"
      },
      "message": "wakelock: Fix operator precedence bug\n\nChange-Id: I21366ace371d1b8f4684ddbe4ea8d555a926ac21\nSigned-off-by: Colin Cross \u003cccross@google.com\u003e\n"
    },
    {
      "commit": "be17d1d867677666e6a126fcf71c6fc4cd08df09",
      "tree": "a705c1ff62d3da31752faf3c7241262f4edd91ca",
      "parents": [
        "c69233f5544478b55ede08b2180a33729ab27788"
      ],
      "author": {
        "name": "Mike Chan",
        "email": "mike@android.com",
        "time": "Wed May 12 15:52:14 2010 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:09:33 2011 -0700"
      },
      "message": "scheduler: cpuacct: Enable platform callbacks for cpuacct power tracking\n\nPlatform must register cpu power function that return power in\nmilliWatt seconds.\n\nChange-Id: I1caa0335e316c352eee3b1ddf326fcd4942bcbe8\nSigned-off-by: Mike Chan \u003cmike@android.com\u003e\n"
    },
    {
      "commit": "c69233f5544478b55ede08b2180a33729ab27788",
      "tree": "c0ea18f59072b83a7c64befea0fc69b7f05f1d77",
      "parents": [
        "c1dbe304b2f161b140b1696f9ffd45c455e5505b"
      ],
      "author": {
        "name": "Mike Chan",
        "email": "mike@android.com",
        "time": "Mon May 10 17:54:48 2010 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:09:33 2011 -0700"
      },
      "message": "scheduler: cpuacct: Enable platform hooks to track cpuusage for CPU frequencies\n\nIntroduce new platform callback hooks for cpuacct for tracking CPU frequencies\n\nNot all platforms / architectures have a set CPU_FREQ_TABLE defined\nfor CPU transition speeds. In order to track time spent in at various\nCPU frequencies, we enable platform callbacks from cpuacct for this accounting.\n\nArchitectures that support overclock boosting, or don\u0027t have pre-defined\nfrequency tables can implement their own bucketing system that makes sense\ngiven their cpufreq scaling abilities.\n\nNew file:\ncpuacct.cpufreq reports the CPU time (in nanoseconds) spent at each CPU\nfrequency.\n\nChange-Id: I10a80b3162e6fff3a8a2f74dd6bb37e88b12ba96\nSigned-off-by: Mike Chan \u003cmike@android.com\u003e\n"
    },
    {
      "commit": "39958f678c52fac3d522f345d61b9ffa1b4bfecb",
      "tree": "e01b8fb0077935862a16af6aec6190f79e3a2dde",
      "parents": [
        "29023ce8df1bbc9236dc1f632e9cdf77019dffb0"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Thu May 06 15:37:55 2010 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:09:31 2011 -0700"
      },
      "message": "sched: Add a generic notifier when a task struct is about to be freed\n\nThis patch adds a notifier which can be used by subsystems that may\nbe interested in when a task has completely died and is about to\nhave it\u0027s last resource freed.\n\n  The Android lowmemory killer uses this to determine when a task\nit has killed has finally given up its goods.\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "af62b25adba1fe01c91aa88c95d1584371ab2bf9",
      "tree": "b03c0757132204a2e7a423f17f6319ca32e30624",
      "parents": [
        "617a3dcb3fc460098b5347b9c49ff59ce6f4b05d"
      ],
      "author": {
        "name": "Mike Chan",
        "email": "mike@android.com",
        "time": "Tue Feb 16 14:18:55 2010 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:09:27 2011 -0700"
      },
      "message": "power: wakelock: Print active wakelocks when has_wake_lock() is called\n\nWhen DEBUG_SUSPEND is enabled print active wakelocks when we check\nif there are any active wakelocks.\n\nIn print_active_locks(), print expired wakelocks if DEBUG_EXPIRE is enabled\n\nChange-Id: Ib1cb795555e71ff23143a2bac7c8a58cbce16547\nSigned-off-by: Mike Chan \u003cmike@android.com\u003e\n"
    },
    {
      "commit": "ce84ca9acef1cb5209b7d0f1fff7b6a5640fab2f",
      "tree": "44175201674c01f542e2ee653c91d5c437a98d59",
      "parents": [
        "d3f8fd3e74564f3241dc2ef7501b1ae13f7d1f13"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Thu Aug 06 10:25:21 2009 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:09:18 2011 -0700"
      },
      "message": "kernel: printk: Add non exported function for clearing the log ring buffer\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "0da19af0b8c8b8d8bd19a262479d49d8061c0c13",
      "tree": "af1ba23b042e0ebf4f075c552e217362a45d1df3",
      "parents": [
        "fc4fb2825c927af3a67ff5120816e2a37748d6af"
      ],
      "author": {
        "name": "Arve Hjønnevåg",
        "email": "arve@android.com",
        "time": "Mon Apr 14 21:35:25 2008 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:09:14 2011 -0700"
      },
      "message": "printk: Fix log_buf_copy termination.\n\nIf idx was non-zero and the log had wrapped, len did not get truncated\nto stop at the last byte written to the log.\n"
    },
    {
      "commit": "fc4fb2825c927af3a67ff5120816e2a37748d6af",
      "tree": "b6503feedd22ff0614ee0e823be68a735c984fce",
      "parents": [
        "ebd4673cf669673567d8e5990fc45bfc12fe69ac"
      ],
      "author": {
        "name": "Arve Hjønnevåg",
        "email": "arve@android.com",
        "time": "Thu Jan 15 19:07:27 2009 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:09:14 2011 -0700"
      },
      "message": "Revert \"printk: remove unused code from kernel/printk.c\"\n\nThis reverts commit acff181d3574244e651913df77332e897b88bff4.\n"
    },
    {
      "commit": "1d38bc7d0523af2233b4280e2aeab34c6a076665",
      "tree": "16c8c61cd13cc2e0d4fd879cc0cd87c893e867d6",
      "parents": [
        "22e9cd9dc9b51f5ad96588ecbfde5f3221e0e6dd"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Thu May 21 14:10:06 2009 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:09:13 2011 -0700"
      },
      "message": "cgroup: Add generic cgroup subsystem permission checks.\n\n    Rather 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\u0027can_attach\u0027 handler, then we fall back to doing our checks the old way.\n\n    This way non-root processes can add arbitrary processes to\na cgroup if all the registered subsystems on that cgroup agree.\n\n    Also change explicit euid \u003d\u003d 0 check to CAP_SYS_ADMIN\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "4b0ea27fc8202b21ce338c82b55eee9c281bd7da",
      "tree": "a4527ae113321bc7a55d316183435ad38ccfabc6",
      "parents": [
        "b28a6a111c2c4779f92f310cfefe10606df4999f"
      ],
      "author": {
        "name": "Rebecca Schultz",
        "email": "rschultz@google.com",
        "time": "Thu Jul 17 18:14:55 2008 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:08:43 2011 -0700"
      },
      "message": "PM: earlysuspend: Removing dependence on console.\n\nRather than signaling a full update of the display from userspace via a\nconsole switch, this patch introduces 2 files int /sys/power,\nwait_for_fb_sleep and wait_for_fb_wake.  Reading these files will block\nuntil the requested state has been entered.  When a read from\nwait_for_fb_sleep returns userspace should stop drawing.  When\nwait_for_fb_wake returns, it should do a full update.  If either are called\nwhen the fb driver is already in the requested state, they will return\nimmediately.\n\nSigned-off-by: Rebecca Schultz \u003crschultz@google.com\u003e\nSigned-off-by: Arve Hjønnevåg \u003carve@android.com\u003e\n"
    },
    {
      "commit": "b28a6a111c2c4779f92f310cfefe10606df4999f",
      "tree": "86d2995f2c24e7adb96e557eeac2dadb2f709237",
      "parents": [
        "c8bb31538d668c9d451e029d45edcd7c35892624"
      ],
      "author": {
        "name": "Arve Hjønnevåg",
        "email": "arve@android.com",
        "time": "Mon Dec 14 22:14:52 2009 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:08:43 2011 -0700"
      },
      "message": "consoleearlysuspend: Fix for 2.6.32\n\nvt_waitactive now needs a 1 based console number\n\nChange-Id: I07ab9a3773c93d67c09d928c8d5494ce823ffa2e\n"
    },
    {
      "commit": "c8bb31538d668c9d451e029d45edcd7c35892624",
      "tree": "ec9dcfe5f157d7ef78fc89747fc11410339e3d3c",
      "parents": [
        "01e13543e486f1007ba5656e30c5f0932f4187b0"
      ],
      "author": {
        "name": "Arve Hjønnevåg",
        "email": "arve@android.com",
        "time": "Wed Oct 15 17:52:20 2008 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:08:43 2011 -0700"
      },
      "message": "PM: earlysuspend: Add console switch when user requested sleep state changes.\n\nSigned-off-by: Arve Hjønnevåg \u003carve@android.com\u003e\n"
    },
    {
      "commit": "01e13543e486f1007ba5656e30c5f0932f4187b0",
      "tree": "e7a5c2fd6659e006bbd833573d998b8ed48d1080",
      "parents": [
        "677f10402f85bfab6b540f6e3f64cca7f7cb79a4"
      ],
      "author": {
        "name": "Arve Hjønnevåg",
        "email": "arve@android.com",
        "time": "Tue Dec 01 20:54:37 2009 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:08:43 2011 -0700"
      },
      "message": "PM: wakelock: Don\u0027t dump unfrozen task list when aborting try_to_freeze_tasks after less than one second\n\nChange-Id: Ib2976e5b97a5ee4ec9abd4d4443584d9257d0941\nSigned-off-by: Arve Hjønnevåg \u003carve@android.com\u003e\n"
    },
    {
      "commit": "677f10402f85bfab6b540f6e3f64cca7f7cb79a4",
      "tree": "6037d617a2fcfbe372125a0632ce71700c5136fa",
      "parents": [
        "47dfb46bf609015a383206417c8e596df1d84017"
      ],
      "author": {
        "name": "Arve Hjønnevåg",
        "email": "arve@android.com",
        "time": "Tue Oct 14 16:02:39 2008 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:08:43 2011 -0700"
      },
      "message": "PM: wakelock: Abort task freezing if a wake lock is held.\n\nAvoids a problem where the device sometimes hangs for 20 seconds\nbefore the screen is turned on.\n"
    },
    {
      "commit": "47dfb46bf609015a383206417c8e596df1d84017",
      "tree": "19a77e0c978ccff1b9af287d86d8feb6539f2fe7",
      "parents": [
        "b0dc34309fc9f98de480aa383c7f6f035ce3b54a"
      ],
      "author": {
        "name": "Arve Hjønnevåg",
        "email": "arve@android.com",
        "time": "Thu Oct 09 21:01:46 2008 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:08:42 2011 -0700"
      },
      "message": "PM: Add user-space wake lock api.\n\nThis adds /sys/power/wake_lock and /sys/power/wake_unlock.\nWriting a string to wake_lock creates a wake lock the\nfirst time is sees a string and locks it. Optionally, the\nstring can be followed by a timeout.\nTo unlock the wake lock, write the same string to wake_unlock.\n\nChange-Id: I66c6e3fe6487d17f9c2fafde1174042e57d15cd7\n"
    },
    {
      "commit": "b0dc34309fc9f98de480aa383c7f6f035ce3b54a",
      "tree": "6b8633a1b37edc00b10a8c05a27eb35795a3776f",
      "parents": [
        "c1783f55b10d7dfb4ada9a7149821b644255d8df"
      ],
      "author": {
        "name": "Arve Hjønnevåg",
        "email": "arve@android.com",
        "time": "Thu Oct 09 19:17:11 2008 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:08:42 2011 -0700"
      },
      "message": "PM: Enable early suspend through /sys/power/state\n\nIf EARLYSUSPEND is enabled then writes to /sys/power/state no longer\nblocks, and the kernel will try to enter the requested state every\ntime no wakelocks are held. Write \"on\" to resume normal operation.\n"
    },
    {
      "commit": "c1783f55b10d7dfb4ada9a7149821b644255d8df",
      "tree": "b57f37018d30e734588c761366168c9255c95d2b",
      "parents": [
        "1b0749512f76005ce41607472e6f36411fa96649"
      ],
      "author": {
        "name": "Arve Hjønnevåg",
        "email": "arve@android.com",
        "time": "Tue Oct 07 20:48:01 2008 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:08:42 2011 -0700"
      },
      "message": "PM: Implement early suspend api\n"
    },
    {
      "commit": "1b0749512f76005ce41607472e6f36411fa96649",
      "tree": "f3bde94119c39656e1df9f1647c1426f9ca6d213",
      "parents": [
        "10f0138c56a31a39c2a123af5af95cf8fd5de1ac"
      ],
      "author": {
        "name": "Arve Hjønnevåg",
        "email": "arve@android.com",
        "time": "Wed Dec 02 18:22:00 2009 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:08:42 2011 -0700"
      },
      "message": "PM: wakelocks: Use seq_file for /proc/wakelocks so we can get more than 3K of stats.\n\nChange-Id: I42ed8bea639684f7a8a95b2057516764075c6b01\nSigned-off-by: Arve Hjønnevåg \u003carve@android.com\u003e\n"
    },
    {
      "commit": "10f0138c56a31a39c2a123af5af95cf8fd5de1ac",
      "tree": "d0ceb6e9c5ed17f2a6408754c371854b81fd6690",
      "parents": [
        "97a0a74383d19a1a43ffca81271894ba3edc07b6"
      ],
      "author": {
        "name": "Erik Gilling",
        "email": "konkers@android.com",
        "time": "Tue Aug 25 20:09:12 2009 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:08:42 2011 -0700"
      },
      "message": "power: wakelocks: fix buffer overflow in print_wake_locks\n\nChange-Id: Ic944e3b3d3bc53eddc6fd0963565fd072cac373c\nSigned-off-by: Erik Gilling \u003ckonkers@android.com\u003e\n"
    },
    {
      "commit": "97a0a74383d19a1a43ffca81271894ba3edc07b6",
      "tree": "02cfdfeaa54aab75b96492bfc14fc4f0ec8e9e65",
      "parents": [
        "fe6cd633efb6d6070507deee0116be43cf4bc76b"
      ],
      "author": {
        "name": "Mike Chan",
        "email": "mike@android.com",
        "time": "Tue Aug 25 18:10:32 2009 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:08:42 2011 -0700"
      },
      "message": "power: Prevent spinlock recursion when wake_unlock() is called\n\nSigned-off-by: Mike Chan \u003cmike@android.com\u003e\n"
    },
    {
      "commit": "fe6cd633efb6d6070507deee0116be43cf4bc76b",
      "tree": "15672fada835124d320b33407aa5f0ee2a8694f5",
      "parents": [
        "9e3725811792edff4c3ec0baa71df22ebb1a7d23"
      ],
      "author": {
        "name": "Arve Hjønnevåg",
        "email": "arve@android.com",
        "time": "Tue Sep 09 22:14:34 2008 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:08:41 2011 -0700"
      },
      "message": "PM: Implement wakelock api.\n\nPM: wakelock: Replace expire work with a timer\n\nThe expire work function did not work in the normal case.\n\nSigned-off-by: Arve Hjønnevåg \u003carve@android.com\u003e\n"
    },
    {
      "commit": "f2a96a65e2486d60b3bcb47f5184462690b3eeac",
      "tree": "29fd645ed44a0a69fde1f941b978b3c1e6d42886",
      "parents": [
        "ac7df7d13e258e059dd75341043913498302dcb8"
      ],
      "author": {
        "name": "Arve Hjønnevåg",
        "email": "arve@android.com",
        "time": "Wed Dec 10 20:06:28 2008 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:08:40 2011 -0700"
      },
      "message": "sched: Enable might_sleep before initializing drivers.\n\nThis allows detection of init bugs in built-in drivers.\n\nSigned-off-by: Arve Hjønnevåg \u003carve@android.com\u003e\n"
    },
    {
      "commit": "ac7df7d13e258e059dd75341043913498302dcb8",
      "tree": "c1644e71b604084d13afa8ad36eef7e7eb7b73b9",
      "parents": [
        "2d35c8339d425a2f0a8201a35adb0fd1210bf822"
      ],
      "author": {
        "name": "Arve Hjønnevåg",
        "email": "arve@android.com",
        "time": "Tue May 08 15:39:13 2007 +0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:08:39 2011 -0700"
      },
      "message": "Add build option to to set the default panic timeout.\n"
    },
    {
      "commit": "83de731ffcc6777a33e8a6132c7da8d91faac9ca",
      "tree": "b206ab0d3b2ff4bf814d63772aeaab9f4559080f",
      "parents": [
        "180b7a0ba65bb1c60076b9f5efee22cf6b1361bf"
      ],
      "author": {
        "name": "Arve Hjønnevåg",
        "email": "arve@android.com",
        "time": "Tue Feb 17 14:51:02 2009 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:08:39 2011 -0700"
      },
      "message": "mm: Add min_free_order_shift tunable.\n\nBy default the kernel tries to keep half as much memory free at each\norder as it does for one order below. This can be too agressive when\nrunning without swap.\n\nChange-Id: I5efc1a0b50f41ff3ac71e92d2efd175dedd54ead\nSigned-off-by: Arve Hjønnevåg \u003carve@android.com\u003e\n"
    },
    {
      "commit": "76b39908bbdce6db5fe8f9c60fb9dcc74357aa68",
      "tree": "043d687c8d34357044848daa973eda42f3f1374e",
      "parents": [
        "054651f25359e099f8568330078a88b74098aa8d"
      ],
      "author": {
        "name": "Tony Lindgren",
        "email": "tony@atomide.com",
        "time": "Mon May 09 14:10:26 2005 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:08:38 2011 -0700"
      },
      "message": "ARM: Make low-level printk work\n\nMakes low-level printk work.\n\nSigned-off-by: Tony Lindgren \u003ctony@atomide.com\u003e\n"
    },
    {
      "commit": "c78a9b9b8e36b8de302eddbe7a1688af3d9650ff",
      "tree": "3857996cf30ae6a60b5afe2e1e3e30f75fbca05e",
      "parents": [
        "842c895d140a75e5d67fa346213deb3ca2b460f8",
        "5f127133ee432d0b83ee26e8e3a3d7828ab5f2b1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 13 10:45:49 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 13 10:45:49 2011 -0700"
      },
      "message": "Merge branch \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  ftrace: Revert 8ab2b7efd ftrace: Remove unnecessary disabling of irqs\n  kprobes/trace: Fix kprobe selftest for gcc 4.6\n  ftrace: Fix possible undefined return code\n  oprofile, dcookies: Fix possible circular locking dependency\n  oprofile: Fix locking dependency in sync_start()\n  oprofile: Free potentially owned tasks in case of errors\n  oprofile, x86: Add comments to IBS LVT offset initialization\n"
    },
    {
      "commit": "13863a66c9c8a663665445cf05d68de96ff31830",
      "tree": "cb7864cf23b6f26f3eb11cfe09526eb7110a0e9a",
      "parents": [
        "7f45e5cd1718ed769295033ca214032848a0097d"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jj@chaosbits.net",
        "time": "Thu Jun 09 23:14:58 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Jun 10 10:53:42 2011 +0200"
      },
      "message": "genirq: Prevent potential NULL dereference in irq_set_irq_wake()\n\nIn kernel/irq/manage.c::irq_set_irq_wake() we call\nirq_get_desc_buslock() which may return NULL, but the code\ndereferences the result unconditionally.\n\nirq_set_irq_wake() has lots of callers - I checked a few and I couldn\u0027t\nfind anything that guarantees that they won\u0027t call it with some input that\nwill cause irq_get_desc_buslock() to return NULL, so I think it\u0027s a good\nthing to test and -EINVAL was the most sane error code in this situation\nthat I could think of.\n\nNot all callers test the return value of irq_set_irq_wake(), but those\nthat do take !\u003d 0 to mean error as far as I can see, so they should be\nfine. I guess those that don\u0027t test actually should, but that\u0027s a\ndifferent issue.\n\nSigned-off-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nLink: http://lkml.kernel.org/r/alpine.LNX.2.00.1106092300360.17868@swampdragon.chaosbits.net\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "db5e7ecc4abc91b9f26f0c0d79ef88a51e987d90",
      "tree": "022c475cc132e64f01c0765d2d965c0aa5df2286",
      "parents": [
        "5cf42f7055648aaba68ce95ecec69128d7fbf65f"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Jun 09 08:40:59 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jun 09 08:42:15 2011 -0400"
      },
      "message": "tracing: Fix regression in printk_formats file\n\nThe fix to fix the printk_formats of modules broke the\nprintk_formats of trace_printks in the kernel.\n\nThe update of what to show via the seq_file was only updated\nif the passed in fmt was NULL, which happens only on the first\niteration. The result was showing the first format every time\ninstead of iterating through the available formats.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "33726bf2140a0e7c9de3ccd7cba6d69962f0b773",
      "tree": "a4f5bca74d61072533806a2fe7f257357cae1ce2",
      "parents": [
        "5b28f6a25ee202046e2d57bd431671bc23cf3dd1",
        "d7ebe75b065a7c2d58ffc12f9d2e00d5ea4e71eb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 08 08:36:15 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 08 08:36:15 2011 -0700"
      },
      "message": "Merge branch \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  perf: Fix comments in include/linux/perf_event.h\n  perf: Comment /proc/sys/kernel/perf_event_paranoid to be part of user ABI\n  perf python: Fix argument name list of read_on_cpu()\n  perf evlist: Don\u0027t die if sample_{id_all|type} is invalid\n  perf python: Use exception to propagate errors\n  perf evlist: Remove dependency on debug routines\n  perf, cgroups: Fix up for new API\n"
    },
    {
      "commit": "cb0a02ecf95e5f47d92e7d4c513cc1f7aeb40cda",
      "tree": "3e9b2341855a1b5ddac5f0edb74a679111f8a350",
      "parents": [
        "d681f1204d701cafbc45fa90e0ac977acddc33cc",
        "c5182b8867e189e14a8df5dbfcba1c73f286e061"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 07 19:21:11 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 07 19:21:11 2011 -0700"
      },
      "message": "Merge branch \u0027irq-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027irq-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  genirq: Ensure we locate the passed IRQ in irq_alloc_descs()\n  genirq: Fix descriptor init on non-sparse IRQs\n  irq: Handle spurios irq detection for threaded irqs\n  genirq: Print threaded handler in spurious debug output\n"
    }
  ],
  "next": "6715a52a581c891e9a2034abe1c81ddb482d70b3"
}
