)]}'
{
  "log": [
    {
      "commit": "1e73203cd1157a03facc41ffb54050f5b28e55bd",
      "tree": "12781ea69aa706291949bb1a10141a8a043e09d9",
      "parents": [
        "7b5179ac14dbad945647ac9e76bbbf14ed9e0dbe"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Mar 28 23:30:21 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Mar 28 23:30:21 2012 +0200"
      },
      "message": "PM / Sleep: Move disabling of usermode helpers to the freezer\n\nThe core suspend/hibernation code calls usermodehelper_disable() to\navoid race conditions between the freezer and the starting of\nusermode helpers and each code path has to do that on its own.\nHowever, it is always called right before freeze_processes()\nand usermodehelper_enable() is always called right after\nthaw_processes().  For this reason, to avoid code duplication and\nto make the connection between usermodehelper_disable() and the\nfreezer more visible, make freeze_processes() call it and remove the\ndirect usermodehelper_disable() and usermodehelper_enable() calls\nfrom all suspend/hibernation code paths.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "bc25cf508942c56810d4fb623ef27b56ccef7783",
      "tree": "1a991dd6fc5fcbdc0ef3eebe4ef5291787dd6d30",
      "parents": [
        "93e1ee43a72b11e1b50aab87046c131a836a4456"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Feb 13 16:29:33 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Feb 17 23:36:23 2012 +0100"
      },
      "message": "PM / Sleep: Drop suspend_stats_update()\n\nSince suspend_stats_update() is only called from pm_suspend(),\nmove its code directly into that function and remove the static\ninline definition from include/linux/suspend.h.  Clean_up\npm_suspend() in the process.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "93e1ee43a72b11e1b50aab87046c131a836a4456",
      "tree": "86897d0bec41d2040f371d2bf2951f1f35bf727d",
      "parents": [
        "55ae451918ec62e553f11b6118fec157f90c31c3"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Feb 13 16:29:24 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Feb 17 23:36:10 2012 +0100"
      },
      "message": "PM / Sleep: Make enter_state() in kernel/power/suspend.c static\n\nThe enter_state() function in kernel/power/suspend.c should be\nstatic and state_store() in kernel/power/suspend.c should call\npm_suspend() instead of it, so make that happen (which also reduces\ncode duplication related to suspend statistics).\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "55ae451918ec62e553f11b6118fec157f90c31c3",
      "tree": "4748944f384941623a3abc3634ae07ea4fe785d7",
      "parents": [
        "6f585f750d792652f33b6e85b1ee205be4b5e572"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Feb 13 16:29:14 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Feb 17 23:36:03 2012 +0100"
      },
      "message": "PM / Sleep: Unify kerneldoc comments in kernel/power/suspend.c\n\nThe kerneldoc comments in kernel/power/suspend.c are not formatted\nin the same way and the quality of some of them is questionable.\nUnify the formatting and improve the contents.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "8916e3702ec422b57cc549fbae3986106292100f",
      "tree": "476b8f1079e607518d8be5333abfd58ef53d792f",
      "parents": [
        "3ed3c7b559f3cae7a5a92860a127ceb0cafd5a9c"
      ],
      "author": {
        "name": "Marcos Paulo de Souza",
        "email": "marcos.mage@gmail.com",
        "time": "Sat Feb 04 22:26:13 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Feb 09 23:55:43 2012 +0100"
      },
      "message": "PM / Suspend: Avoid code duplication in suspend statistics update\n\nThe code\n       if (error) {\n               suspend_stats.fail++;\n               dpm_save_failed_errno(error);\n       } else\n               suspend_stats.success++;\n\nAppears in the kernel/power/main.c and kernel/power/suspend.c.\n\nThis patch just creates a new function to avoid duplicated code.\n\nSuggested-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nSigned-off-by: Marcos Paulo de Souza \u003cmarcos.mage@gmail.com\u003e\nAcked-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "cf579dfb82550e34de7ccf3ef090d8b834ccd3a9",
      "tree": "764ed72670c18c86d3eb9650025c56d661a31315",
      "parents": [
        "181e9bdef37bfcaa41f3ab6c948a2a0d60a268b5"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Jan 29 20:38:29 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Jan 29 20:38:29 2012 +0100"
      },
      "message": "PM / Sleep: Introduce \"late suspend\" and \"early resume\" of devices\n\nThe current device suspend/resume phases during system-wide power\ntransitions appear to be insufficient for some platforms that want\nto use the same callback routines for saving device states and\nrelated operations during runtime suspend/resume as well as during\nsystem suspend/resume.  In principle, they could point their\n.suspend_noirq() and .resume_noirq() to the same callback routines\nas their .runtime_suspend() and .runtime_resume(), respectively,\nbut at least some of them require device interrupts to be enabled\nwhile the code in those routines is running.\n\nIt also makes sense to have device suspend-resume callbacks that will\nbe executed with runtime PM disabled and with device interrupts\nenabled in case someone needs to run some special code in that\ncontext during system-wide power transitions.\n\nApart from this, .suspend_noirq() and .resume_noirq() were introduced\nas a workaround for drivers using shared interrupts and failing to\nprevent their interrupt handlers from accessing suspended hardware.\nIt appears to be better not to use them for other porposes, or we may\nhave to deal with some serious confusion (which seems to be happening\nalready).\n\nFor the above reasons, introduce new device suspend/resume phases,\n\"late suspend\" and \"early resume\" (and analogously for hibernation)\nwhose callback will be executed with runtime PM disabled and with\ndevice interrupts enabled and whose callback pointers generally may\npoint to runtime suspend/resume routines.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nReviewed-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nReviewed-by: Kevin Hilman \u003ckhilman@ti.com\u003e\n"
    },
    {
      "commit": "bcda53faf5814c0c6025a0bd47108adfcbe9f199",
      "tree": "a8768204a16b24436f33fac00c1bb4dcfb4fafd5",
      "parents": [
        "9b6fc5dc879bc90f765db0e95eefcf123d0d06dd"
      ],
      "author": {
        "name": "Srivatsa S. Bhat",
        "email": "srivatsa.bhat@linux.vnet.ibm.com",
        "time": "Wed Dec 07 22:29:54 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Dec 08 23:22:29 2011 +0100"
      },
      "message": "PM / Sleep: Replace mutex_[un]lock(\u0026pm_mutex) with [un]lock_system_sleep()\n\nUsing [un]lock_system_sleep() is safer than directly using mutex_[un]lock()\non \u0027pm_mutex\u0027, since the latter could lead to freezing failures. Hence convert\nall the present users of mutex_[un]lock(\u0026pm_mutex) to use these safe APIs\ninstead.\n\nSuggested-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nReviewed-by: Simon Horman \u003chorms@verge.net.au\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "03afed8bc296fa70186ba832c1126228bb992465",
      "tree": "96d0a6a9bffdcfc678d31f21caa88e43693bde94",
      "parents": [
        "376fede80e74d98b49d1ba9ac18f23c9fd026ddd"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 21 12:32:24 2011 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 21 12:32:24 2011 -0800"
      },
      "message": "freezer: clean up freeze_processes() failure path\n\nfreeze_processes() failure path is rather messy.  Freezing is canceled\nfor workqueues and tasks which aren\u0027t frozen yet but frozen tasks are\nleft alone and should be thawed by the caller and of course some\ncallers (xen and kexec) didn\u0027t do it.\n\nThis patch updates __thaw_task() to handle cancelation correctly and\nmakes freeze_processes() and freeze_kernel_threads() call\nthaw_processes() on failure instead so that the system is fully thawed\non failure.  Unnecessary [suspend_]thaw_processes() calls are removed\nfrom kernel/power/hibernate.c, suspend.c and user.c.\n\nWhile at it, restructure error checking if clause in suspend_prepare()\nto be less weird.\n\n-v2: Srivatsa spotted missing removal of suspend_thaw_processes() in\n     suspend_prepare() and error in commit message.  Updated.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "6e5fdeedca610df600aabc393c4b1f44b128fe49",
      "tree": "52a34c30bef1501f19c691a759b81b6f2603cd32",
      "parents": [
        "bdfa97bf7263657b83bc5b68567a3a60dde84c5b"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Thu May 26 16:00:52 2011 -0400"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Oct 31 19:30:05 2011 -0400"
      },
      "message": "kernel: Fix files explicitly needing EXPORT_SYMBOL infrastructure\n\nThese files were getting \u003clinux/module.h\u003e via an implicit non-obvious\npath, but we want to crush those out of existence since they cost\ntime during compiles of processing thousands of lines of headers\nfor no reason.  Give them the lightweight header that just contains\nthe EXPORT_SYMBOL infrastructure.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "74da1ff71350f3638c51613085f89c0865d7fe08",
      "tree": "b8904435ba280a9b70462303909e8d8408428986",
      "parents": [
        "56d82e000cdfb51aa92241d4682302f78c35cd92"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Thu May 26 12:48:41 2011 -0400"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Oct 31 09:20:12 2011 -0400"
      },
      "message": "kernel: fix several implicit usasges of kmod.h\n\nThese files were implicitly relying on \u003clinux/kmod.h\u003e coming in via\nmodule.h, as without it we get things like:\n\nkernel/power/suspend.c:100: error: implicit declaration of function ‘usermodehelper_disable’\nkernel/power/suspend.c:109: error: implicit declaration of function ‘usermodehelper_enable’\nkernel/power/user.c:254: error: implicit declaration of function ‘usermodehelper_disable’\nkernel/power/user.c:261: error: implicit declaration of function ‘usermodehelper_enable’\n\nkernel/sys.c:317: error: implicit declaration of function ‘usermodehelper_disable’\nkernel/sys.c:1816: error: implicit declaration of function ‘call_usermodehelper_setup’\nkernel/sys.c:1822: error: implicit declaration of function ‘call_usermodehelper_setfns’\nkernel/sys.c:1824: error: implicit declaration of function ‘call_usermodehelper_exec’\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "528f7ce6e439edeac38f6b3f8561f1be129b5e91",
      "tree": "6f03bc001aa170656f0d49f4f5afb6352027abaa",
      "parents": [
        "85055dd805f0822f13f736bee2a521e222c38293"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Wed Sep 21 20:55:04 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Oct 16 23:27:46 2011 +0200"
      },
      "message": "PM / Suspend: Off by one in pm_suspend()\n\nIn enter_state() we use \"state\" as an offset for the pm_states[]\narray.  The pm_states[] array only has PM_SUSPEND_MAX elements so\nthis test is off by one.\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "2a77c46de1e3dace73745015635ebbc648eca69c",
      "tree": "a801ed6ba5623c7d963377906776ade6f02eea0a",
      "parents": [
        "9bd717c0dc8224cadfd66df7eeff98c987711d98"
      ],
      "author": {
        "name": "ShuoX Liu",
        "email": "shuox.liu@intel.com",
        "time": "Wed Aug 10 23:01:26 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Oct 16 23:27:45 2011 +0200"
      },
      "message": "PM / Suspend: Add statistics debugfs file for suspend to RAM\n\nRecord S3 failure time about each reason and the latest two failed\ndevices\u0027 names in S3 progress.\nWe can check it through \u0027suspend_stats\u0027 entry in debugfs.\n\nThe motivation of the patch:\n\nWe are enabling power features on Medfield. Comparing with PC/notebook,\na mobile enters/exits suspend-2-ram (we call it s3 on Medfield) far\nmore frequently. If it can\u0027t enter suspend-2-ram in time, the power\nmight be used up soon.\n\nWe often find sometimes, a device suspend fails. Then, system retries\ns3 over and over again. As display is off, testers and developers\ndon\u0027t know what happens.\n\nSome testers and developers complain they don\u0027t know if system\ntries suspend-2-ram, and what device fails to suspend. They need\nsuch info for a quick check. The patch adds suspend_stats under\ndebugfs for users to check suspend to RAM statistics quickly.\n\nIf not using this patch, we have other methods to get info about\nwhat device fails. One is to turn on  CONFIG_PM_DEBUG, but users\nwould get too much info and testers need recompile the system.\n\nIn addition, dynamic debug is another good tool to dump debug info.\nBut it still doesn\u0027t match our utilization scenario closely.\n1) user need write a user space parser to process the syslog output;\n2) Our testing scenario is we leave the mobile for at least hours.\n   Then, check its status. No serial console available during the\n   testing. One is because console would be suspended, and the other\n   is serial console connecting with spi or HSU devices would consume\n   power. These devices are powered off at suspend-2-ram.\n\nSigned-off-by: ShuoX Liu \u003cshuox.liu@intel.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "a5e4fd8783a2bec861ecf1138cdc042269ff59aa",
      "tree": "0662c2283c8d8601aa152f70a0d0abbe128fec9b",
      "parents": [
        "3b5fe85252326217cd96f24a7bda4460d8f71bee"
      ],
      "author": {
        "name": "Kevin Hilman",
        "email": "khilman@ti.com",
        "time": "Mon Jun 27 01:01:07 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Jul 15 23:58:19 2011 +0200"
      },
      "message": "PM / Suspend: Export suspend_set_ops, suspend_valid_only_mem\n\nSome platforms wish to implement their PM core suspend code as\nmodules.  To do so, these functions need to be exported to modules.\n\n[rjw: Replaced EXPORT_SYMBOL with EXPORT_SYMBOL_GPL]\n\nReported-by: Jean Pihet \u003cj-pihet@ti.com\u003e\nSigned-off-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "3b5fe85252326217cd96f24a7bda4460d8f71bee",
      "tree": "cfcf577a53b88109d36f73577a8177279444a09f",
      "parents": [
        "99f381d3549432a250fe846a2a82d61a032804b0"
      ],
      "author": {
        "name": "MyungJoo Ham",
        "email": "myungjoo.ham@samsung.com",
        "time": "Sun Jun 12 15:57:05 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Jul 15 23:58:19 2011 +0200"
      },
      "message": "PM / Suspend: Add .suspend_again() callback to suspend_ops\n\nA system or a device may need to control suspend/wakeup events. It may\nwant to wakeup the system after a predefined amount of time or at a\npredefined event decided while entering suspend for polling or delayed\nwork. Then, it may want to enter suspend again if its predefined wakeup\ncondition is the only wakeup reason and there is no outstanding events;\nthus, it does not wakeup the userspace unnecessary or unnecessary\ndevices and keeps suspended as long as possible (saving the power).\n\nEnabling a system to wakeup after a specified time can be easily\nachieved by using RTC. However, to enter suspend again immediately\nwithout invoking userland and unrelated devices, we need additional\nfeatures in the suspend framework.\n\nSuch need comes from:\n\n 1. Monitoring a critical device status without interrupts that can\nwakeup the system. (in-suspend polling)\n An example is ambient temperature monitoring that needs to shut down\nthe system or a specific device function if it is too hot or cold. The\ntemperature of a specific device may be needed to be monitored as well;\ne.g., a charger monitors battery temperature in order to stop charging\nif overheated.\n\n 2. Execute critical \"delayed work\" at suspend.\n A driver or a system/board may have a delayed work (or any similar\nthings) that it wants to execute at the requested time.\n For example, some chargers want to check the battery voltage some\ntime (e.g., 30 seconds) after the battery is fully charged and the\ncharger has stopped. Then, the charger restarts charging if the voltage\nhas dropped more than a threshold, which is smaller than \"restart-charger\"\nvoltage, which is a threshold to restart charging regardless of the\ntime passed.\n\nThis patch allows to add \"suspend_again\" callback at struct\nplatform_suspend_ops and let the \"suspend_again\" callback return true if\nthe system is required to enter suspend again after the current instance\nof wakeup. Device-wise suspend_again implemented at dev_pm_ops or\nsyscore is not done because: a) suspend_again feature is usually under\nplatform-wise decision and controls the behavior of the whole platform\nand b) There are very limited devices related to the usage cases of\nsuspend_again; chargers and temperature sensors are mentioned so far.\n\nWith suspend_again callback registered at struct platform_suspend_ops\nsuspend_ops in kernel/power/suspend.c with suspend_set_ops by the\nplatform, the suspend framework tries to enter suspend again by\nlooping suspend_enter() if suspend_again has returned true and there has\nbeen no errors in the suspending sequence or pending wakeups (by\npm_wakeup_pending).\n\nTested at Exynos4-NURI.\n\n[rjw: Fixed up kerneldoc comment for suspend_enter().]\n\nSigned-off-by: MyungJoo Ham \u003cmyungjoo.ham@samsung.com\u003e\nSigned-off-by: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "2d2a9163bd4f3ba301f8138c32e4790edc30156c",
      "tree": "ac7d43e6c4f6a2f357454c42d762595cc358104d",
      "parents": [
        "1c1be3a949a61427a962771c85a347c822aeb991",
        "2e711c04dbbf7a7732a3f7073b1fc285d12b369d"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 17 23:23:40 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 17 23:23:40 2011 +0200"
      },
      "message": "Merge branch \u0027syscore\u0027 into for-linus\n\n* syscore:\n  PM: Remove sysdev suspend, resume and shutdown operations\n  PM / PowerPC: Use struct syscore_ops instead of sysdevs for PM\n  PM / UNICORE32: Use struct syscore_ops instead of sysdevs for PM\n  PM / AVR32: Use struct syscore_ops instead of sysdevs for PM\n  PM / Blackfin: Use struct syscore_ops instead of sysdevs for PM\n  ARM / Samsung: Use struct syscore_ops for \"core\" power management\n  ARM / PXA: Use struct syscore_ops for \"core\" power management\n  ARM / SA1100: Use struct syscore_ops for \"core\" power management\n  ARM / Integrator: Use struct syscore_ops for core PM\n  ARM / OMAP: Use struct syscore_ops for \"core\" power management\n  ARM: Use struct syscore_ops instead of sysdevs for PM in common code\n"
    },
    {
      "commit": "3c431936087e93d2219a184a8e19eaa68077e379",
      "tree": "65b9bd696100c808ae02d6c235990a2c4fbb7104",
      "parents": [
        "c1d10d18c542278b7fbc413c289d3cb6219da6b3"
      ],
      "author": {
        "name": "MyungJoo Ham",
        "email": "myungjoo.ham@samsung.com",
        "time": "Fri Apr 22 22:00:54 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 17 23:19:16 2011 +0200"
      },
      "message": "PM / Suspend: Do not ignore error codes returned by suspend_enter()\n\nThe current implementation of suspend-to-RAM returns 0 if there is an\nerror from suspend_enter(), because suspend_devices_and_enter() ignores\nthe return value from suspend_enter().  This patch addresses this issue\nand properly keep the error return from suspend_enter() and let\nsuspend_devices_and_enter relay the error return.\n\nSigned-off-by: MyungJoo Ham \u003cmyungjoo.ham@samsung.com\u003e\nSigned-off-by: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "2e711c04dbbf7a7732a3f7073b1fc285d12b369d",
      "tree": "dbc06a3fff744144d7937a205a91fd8ce71585d4",
      "parents": [
        "f5a592f7d74e38c5007876c731e6bf5580072e63"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Apr 26 19:15:07 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed May 11 21:37:15 2011 +0200"
      },
      "message": "PM: Remove sysdev suspend, resume and shutdown operations\n\nSince suspend, resume and shutdown operations in struct sysdev_class\nand struct sysdev_driver are not used any more, remove them.  Also\ndrop sysdev_suspend(), sysdev_resume() and sysdev_shutdown() used\nfor executing those operations and modify all of their users\naccordingly.  This reduces kernel code size quite a bit and reduces\nits complexity.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "87186475a402391a1ca7d42a675c9b35a18dc348",
      "tree": "01b52ab26eb3b4fed09ca7fb11da4fcc1dddb32a",
      "parents": [
        "54b333529df25b21da462c7dcc16c7dc779d9f26"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 10 21:09:53 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed May 11 21:10:14 2011 +0200"
      },
      "message": "PM: Fix warning in pm_restrict_gfp_mask() during SNAPSHOT_S2RAM ioctl\n\nA warning is printed by pm_restrict_gfp_mask() while the\nSNAPSHOT_S2RAM ioctl is being executed after creating a hibernation\nimage, because pm_restrict_gfp_mask() has been called once already\nbefore the image creation and suspend_devices_and_enter() calls it\nonce again.  This happens after commit 452aa6999e6703ffbddd7f6ea124d3\n(mm/pm: force GFP_NOIO during suspend/hibernation and resume).\n\nTo avoid this issue, move pm_restrict_gfp_mask() and\npm_restore_gfp_mask() from suspend_devices_and_enter() to its caller\nin kernel/power/suspend.c.\n\nReported-by: Alexandre Felipe Muller de Souza \u003calexandrefm@mandriva.com.br\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "2ca6f62f595c01f689b269db6736de5544da7667",
      "tree": "bfc4b2225ea1df64542c92dd8336420515072faa",
      "parents": [
        "a1b49cb7e2a7961ec3aa8b64860bf480d4ec9077"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Apr 18 23:58:59 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Apr 18 23:58:59 2011 +0200"
      },
      "message": "PM: Fix error code paths executed after failing syscore_suspend()\n\nIf syscore_suspend() fails in suspend_enter(), create_image() or\nresume_target_kernel(), it is necessary to call sysdev_resume(),\nbecause sysdev_suspend() has been called already and succeeded\nand we are going to abort the transition.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "40dc166cb5dddbd36aa4ad11c03915ea538f5a61",
      "tree": "0a778159cf89ddee9e7d3134ae40569bdccd2a24",
      "parents": [
        "f9b9e806ae0ede772cbb9916d9ac7354a123d044"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Mar 15 00:43:46 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Mar 15 00:43:46 2011 +0100"
      },
      "message": "PM / Core: Introduce struct syscore_ops for core subsystems PM\n\nSome subsystems need to carry out suspend/resume and shutdown\noperations with one CPU on-line and interrupts disabled.  The only\nway to register such operations is to define a sysdev class and\na sysdev specifically for this purpose which is cumbersome and\ninefficient.  Moreover, the arguments taken by sysdev suspend,\nresume and shutdown callbacks are practically never necessary.\n\nFor this reason, introduce a simpler interface allowing subsystems\nto register operations to be executed very late during system suspend\nand shutdown and very early during resume in the form of\nstrcut syscore_ops objects.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "008d23e4852d78bb2618f2035f8b2110b6a6b968",
      "tree": "81c88f744f6f3fc84132527c1ddc0b4da410c5e2",
      "parents": [
        "8f685fbda43deccd130d192c9fcef1444649eaca",
        "bfc672dcf323877228682aff79dff8ecd9f30ff8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:05:56 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:05:56 2011 -0800"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (43 commits)\n  Documentation/trace/events.txt: Remove obsolete sched_signal_send.\n  writeback: fix global_dirty_limits comment runtime -\u003e real-time\n  ppc: fix comment typo singal -\u003e signal\n  drivers: fix comment typo diable -\u003e disable.\n  m68k: fix comment typo diable -\u003e disable.\n  wireless: comment typo fix diable -\u003e disable.\n  media: comment typo fix diable -\u003e disable.\n  remove doc for obsolete dynamic-printk kernel-parameter\n  remove extraneous \u0027is\u0027 from Documentation/iostats.txt\n  Fix spelling milisec -\u003e ms in snd_ps3 module parameter description\n  Fix spelling mistakes in comments\n  Revert conflicting V4L changes\n  i7core_edac: fix typos in comments\n  mm/rmap.c: fix comment\n  sound, ca0106: Fix assignment to \u0027channel\u0027.\n  hrtimer: fix a typo in comment\n  init/Kconfig: fix typo\n  anon_inodes: fix wrong function name in comment\n  fix comment typos concerning \"consistent\"\n  poll: fix a typo in comment\n  ...\n\nFix up trivial conflicts in:\n - drivers/net/wireless/iwlwifi/iwl-core.c (moved to iwl-legacy.c)\n - fs/ext4/ext4.h\n\nAlso fix missed \u0027diabled\u0027 typo in drivers/net/bnx2x/bnx2x.h while at it.\n"
    },
    {
      "commit": "c8940eca75e6d1ea57f6c491a30bd1023c64c9ad",
      "tree": "d68944ab9fa8ba3c77b18edc2bd836c7e355b23e",
      "parents": [
        "78c92a9fd4b6abbbc1fe1ec335c697cb4e63f252",
        "3ae22e8c8ac39daf88ae32f047fb23825be7c646"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 10 08:14:53 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 10 08:14:53 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6:\n  spi / PM: Support dev_pm_ops\n  PM: Prototype the pm_generic_ operations\n  PM / Runtime: Generic resume shouldn\u0027t set RPM_ACTIVE unconditionally\n  PM: Use dev_name() in core device suspend and resume routines\n  PM: Permit registration of parentless devices during system suspend\n  PM: Replace the device power.status field with a bit field\n  PM: Remove redundant checks from core device resume routines\n  PM: Use a different list of devices for each stage of device suspend\n  PM: Avoid compiler warning in pm_noirq_op()\n  PM: Use pm_wakeup_pending() in __device_suspend()\n  PM / Wakeup: Replace pm_check_wakeup_events() with pm_wakeup_pending()\n  PM: Prevent dpm_prepare() from returning errors unnecessarily\n  PM: Fix references to basic-pm-debugging.txt in drivers-testing.txt\n  PM / Runtime: Add synchronous runtime interface for interrupt handlers (v3)\n  PM / Hibernate: When failed, in_suspend should be reset\n  PM / Hibernate: hibernation_ops-\u003eleave should be checked too\n  Freezer: Fix a race during freezing of TASK_STOPPED tasks\n  PM: Use proper ccflag flag in kernel/power/Makefile\n  PM / Runtime: Fix comments to match runtime callback code\n"
    },
    {
      "commit": "938cfed18bec2c7361f37efc954712a7cc42c353",
      "tree": "39aa3792d84ae74d7c5cbf7c14779ebe5b221e31",
      "parents": [
        "eccdfe2d245a882feacc4630c9bc29805e9929c8"
      ],
      "author": {
        "name": "Jean Pihet",
        "email": "j-pihet@ti.com",
        "time": "Wed Jan 05 19:49:01 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 05 21:25:28 2011 +0100"
      },
      "message": "perf: Add calls to suspend trace point\n\nUses the machine_suspend trace point, called from the\ngeneric kernel suspend_devices_and_enter function.\n\nSigned-off-by: Jean Pihet \u003cj-pihet@ti.com\u003e\nAcked-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCC: Thomas Renninger \u003ctrenn@suse.de\u003e\nCc: Len Brown \u003clen.brown@intel.com\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: linux-pm@lists.linux-foundation.org\nLKML-Reference: \u003c1294253342-29056-2-git-send-email-j-pihet@ti.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a2867e08c8e3bdbc00caf56bc3bdde19ccc058e3",
      "tree": "34cee3dede448f30bb100d8301c422f481678bcc",
      "parents": [
        "1e75227ef0571031cd18536ab768ee35667ec5b9"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Dec 03 22:58:31 2010 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Dec 24 15:02:42 2010 +0100"
      },
      "message": "PM / Wakeup: Replace pm_check_wakeup_events() with pm_wakeup_pending()\n\nTo avoid confusion with the meaning and return value of\npm_check_wakeup_events() replace it with pm_wakeup_pending() that\nwill work the other way around (ie. return true when system-wide\npower transition should be aborted).\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "4b7bd364700d9ac8372eff48832062b936d0793b",
      "tree": "0dbf78c95456a0b02d07fcd473281f04a87e266d",
      "parents": [
        "c0d8768af260e2cbb4bf659ae6094a262c86b085",
        "90a8a73c06cc32b609a880d48449d7083327e11a"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Dec 22 18:57:02 2010 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Dec 22 18:57:02 2010 +0100"
      },
      "message": "Merge branch \u0027master\u0027 into for-next\n\nConflicts:\n\tMAINTAINERS\n\tarch/arm/mach-omap2/pm24xx.c\n\tdrivers/scsi/bfa/bfa_fcpim.c\n\nNeeded to update to apply fixes for which the old branch was too\noutdated.\n"
    },
    {
      "commit": "c9e664f1fdf34aa8cede047b206deaa8f1945af0",
      "tree": "6038002f46173ca785936ac2fe54177197f98a08",
      "parents": [
        "9f339caf8454f0c21983111350ede93983db4340"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Dec 03 22:57:45 2010 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Dec 06 23:52:08 2010 +0100"
      },
      "message": "PM / Hibernate: Fix memory corruption related to swap\n\nThere is a problem that swap pages allocated before the creation of\na hibernation image can be released and used for storing the contents\nof different memory pages while the image is being saved.  Since the\nkernel stored in the image doesn\u0027t know of that, it causes memory\ncorruption to occur after resume from hibernation, especially on\nsystems with relatively small RAM that need to swap often.\n\nThis issue can be addressed by keeping the GFP_IOFS bits clear\nin gfp_allowed_mask during the entire hibernation, including the\nsaving of the image, until the system is finally turned off or\nthe hibernation is aborted.  Unfortunately, for this purpose\nit\u0027s necessary to rework the way in which the hibernate and\nsuspend code manipulates gfp_allowed_mask.\n\nThis change is based on an earlier patch from Hugh Dickins.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nReported-by: Ondrej Zary \u003clinux@rainbow-software.org\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "2f55ac072f5344519348c0c94b3d2f4cca46847b",
      "tree": "f3d544ab2812503b12a205b2515111a796638ffb",
      "parents": [
        "acc2472ed33fc5e72482cc3b3b846077d97c2f8b"
      ],
      "author": {
        "name": "Lionel Debroux",
        "email": "lionel_debroux@yahoo.fr",
        "time": "Tue Nov 16 14:14:02 2010 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Nov 16 14:14:02 2010 +0100"
      },
      "message": "suspend: constify platform_suspend_ops\n\nWhile at it, fix two checkpatch errors.\nSeveral non-const struct instances constified by this patch were added after\nthe introduction of platform_suspend_ops in checkpatch.pl\u0027s list of \"should\nbe const\" structs (79404849e90a41ea2109bd0e2f7c7164b0c4ce73).\n\nPatch against mainline.\nInspired by hunks of the grsecurity patch, updated for newer kernels.\n\nSigned-off-by: Lionel Debroux \u003clionel_debroux@yahoo.fr\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "ce4410116c5debfb0e049f5db4b5cd6211e05b80",
      "tree": "510009c78c5d2757fde08f31c03dd41ddb130463",
      "parents": [
        "d074ee023fa3a4681b64223c5e636102c39628c4"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Jul 07 23:43:45 2010 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Jul 19 02:00:35 2010 +0200"
      },
      "message": "PM / Suspend: Fix ordering of calls in suspend error paths\n\nThe ACPI suspend code calls suspend_nvs_free() at a wrong place,\nwhich may lead to a memory leak if there\u0027s an error executing\nacpi_pm_prepare(), because acpi_pm_finish() will not be called in\nthat case.  However, the root cause of this problem is the\napparently confusing ordering of calls in suspend error paths that\nneeds to be fixed.\n\nIn addition to that, fix a typo in a label name in suspend.c.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "c125e96f044427f38d106fab7bc5e4a5e6a18262",
      "tree": "d9bbd40cc933fe522dbdf8ca2f7edf7b6f2f7ca4",
      "parents": [
        "b14e033e17d0ea0ba12668d0d2f371cd31586994"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Jul 05 22:43:53 2010 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Jul 19 01:58:48 2010 +0200"
      },
      "message": "PM: Make it possible to avoid races between wakeup and system sleep\n\nOne of the arguments during the suspend blockers discussion was that\nthe mainline kernel didn\u0027t contain any mechanisms making it possible\nto avoid races between wakeup and system suspend.\n\nGenerally, there are two problems in that area.  First, if a wakeup\nevent occurs exactly when /sys/power/state is being written to, it\nmay be delivered to user space right before the freezer kicks in, so\nthe user space consumer of the event may not be able to process it\nbefore the system is suspended.  Second, if a wakeup event occurs\nafter user space has been frozen, it is not generally guaranteed that\nthe ongoing transition of the system into a sleep state will be\naborted.\n\nTo address these issues introduce a new global sysfs attribute,\n/sys/power/wakeup_count, associated with a running counter of wakeup\nevents and three helper functions, pm_stay_awake(), pm_relax(), and\npm_wakeup_event(), that may be used by kernel subsystems to control\nthe behavior of this attribute and to request the PM core to abort\nsystem transitions into a sleep state already in progress.\n\nThe /sys/power/wakeup_count file may be read from or written to by\nuser space.  Reads will always succeed (unless interrupted by a\nsignal) and return the current value of the wakeup events counter.\nWrites, however, will only succeed if the written number is equal to\nthe current value of the wakeup events counter.  If a write is\nsuccessful, it will cause the kernel to save the current value of the\nwakeup events counter and to abort the subsequent system transition\ninto a sleep state if any wakeup events are reported after the write\nhas returned.\n\n[The assumption is that before writing to /sys/power/state user space\nwill first read from /sys/power/wakeup_count.  Next, user space\nconsumers of wakeup events will have a chance to acknowledge or\nveto the upcoming system transition to a sleep state.  Finally, if\nthe transition is allowed to proceed, /sys/power/wakeup_count will\nbe written to and if that succeeds, /sys/power/state will be written\nto as well.  Still, if any wakeup events are reported to the PM core\nby kernel subsystems after that point, the transition will be\naborted.]\n\nAdditionally, put a wakeup events counter into struct dev_pm_info and\nmake these per-device wakeup event counters available via sysfs,\nso that it\u0027s possible to check the activity of various wakeup event\nsources within the kernel.\n\nTo illustrate how subsystems can use pm_wakeup_event(), make the\nlow-level PCI runtime PM wakeup-handling code use it.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nAcked-by: markgross \u003cmarkgross@thegnar.org\u003e\nReviewed-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\n"
    },
    {
      "commit": "dd4c4f17d722ffeb2515bf781400675a30fcead7",
      "tree": "0190eff340ffeac7800a3d7d1e0c1232c09397ef",
      "parents": [
        "67a3e12b05e055c0415c556a315a3d3eb637e29e"
      ],
      "author": {
        "name": "Matthew Garrett",
        "email": "mjg@redhat.com",
        "time": "Fri May 28 16:32:14 2010 -0400"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Thu Jun 10 11:02:34 2010 -0400"
      },
      "message": "suspend: Move NVS save/restore code to generic suspend functionality\n\nSaving platform non-volatile state may be required for suspend to RAM as\nwell as hibernation. Move it to more generic code.\n\nSigned-off-by: Matthew Garrett \u003cmjg@redhat.com\u003e\nAcked-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nTested-by: Maxim Levitsky \u003cmaximlevitsky@gmail.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "452aa6999e6703ffbddd7f6ea124d3968915f3e3",
      "tree": "48e375fdb60920675f68b444b462903ad8bb6940",
      "parents": [
        "ad2bd7e0e9647cd48593a6b3a2be07dc2c2d28ed"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Mar 05 13:42:13 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:26 2010 -0800"
      },
      "message": "mm/pm: force GFP_NOIO during suspend/hibernation and resume\n\nThere are quite a few GFP_KERNEL memory allocations made during\nsuspend/hibernation and resume that may cause the system to hang, because\nthe I/O operations they depend on cannot be completed due to the\nunderlying devices being suspended.\n\nAvoid this problem by clearing the __GFP_IO and __GFP_FS bits in\ngfp_allowed_mask before suspend/hibernation and restoring the original\nvalues of these bits in gfp_allowed_mask durig the subsequent resume.\n\n[akpm@linux-foundation.org: fix CONFIG_PM\u003dn linkage]\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nReported-by: Maxim Levitsky \u003cmaximlevitsky@gmail.com\u003e\nCc: Sebastian Ott \u003csebott@linux.vnet.ibm.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a9d7052363a6e06bb623ed1876c56c7ca5b2c6d8",
      "tree": "c4ec7fb30dc4510596ffc9ddffe308ef34837af2",
      "parents": [
        "783ea7d4eeefe895f2731fe73ac951e94418927b"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Jun 10 01:27:12 2009 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Jun 12 21:32:33 2009 +0200"
      },
      "message": "PM: Separate suspend to RAM functionality from core\n\nMove the suspend to RAM and standby code from kernel/power/main.c\nto two separate files, kernel/power/suspend.c containing the basic\nfunctions and kernel/power/suspend_test.c containing the automatic\nsuspend test facility based on the RTC clock alarm.\n\nThere are no changes in functionality related to these modifications.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\n"
    }
  ]
}
