)]}'
{
  "log": [
    {
      "commit": "2df83fa4bce421f8176932142f1004adfba0f9dd",
      "tree": "edd5051c5b388e82d8954ec09643873be9bc414c",
      "parents": [
        "4e585d25e120f1eae0a3a8bf8f6ebc7692afec18"
      ],
      "author": {
        "name": "Minho Ban",
        "email": "mhban@samsung.com",
        "time": "Mon May 14 21:45:31 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri May 18 20:44:59 2012 +0200"
      },
      "message": "PM / Hibernate: Use get_gendisk to verify partition if resume_file is integer format\n\nSometimes resume\u003d parameter comes in integer style (e.g. major:minor)\nand then name_to_dev_t can not detect partition properly. (especially\nasync device like usb, mmc).\n\nThis patch calls get_gendisk() if resumewait is true and resume_file\nis in integer format to work around this problem.\n\nSigned-off-by: Minho Ban \u003cmhban@samsung.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "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": "7b5179ac14dbad945647ac9e76bbbf14ed9e0dbe",
      "tree": "39213e51f3a19f3198929456f8ab4210a906674d",
      "parents": [
        "9b78c1da60b3c62ccdd1509f0902ad19ceaf776b"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Mar 28 23:30:14 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Mar 28 23:30:14 2012 +0200"
      },
      "message": "PM / Hibernate: Disable usermode helpers right before freezing tasks\n\nThere is no reason to call usermodehelper_disable() before creating\nmemory bitmaps in hibernate() and software_resume(), so call it right\nbefore freeze_processes(), in accordance with the other suspend and\nhibernation code.  Consequently, call usermodehelper_enable() right\nafter the thawing of tasks rather than after freeing the memory\nbitmaps.\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": "05b4877f6a4f1ba4952d1222213d262bf8c132b7",
      "tree": "7205a80a5919c1f389873c78740d504800fb60e5",
      "parents": [
        "4782e1654bdbd30cf307da090b3c4f70157477cb"
      ],
      "author": {
        "name": "Srivatsa S. Bhat",
        "email": "srivatsa.bhat@linux.vnet.ibm.com",
        "time": "Fri Feb 17 23:39:51 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Mar 04 23:08:37 2012 +0100"
      },
      "message": "PM / Hibernate: Enable usermodehelpers in hibernate() error path\n\nIf create_basic_memory_bitmaps() fails, usermodehelpers are not re-enabled\nbefore returning. Fix this. And while at it, reword the goto labels so that\nthey look more meaningful.\n\nSigned-off-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "a556d5b58345ccf51826b9ceac078072f830738b",
      "tree": "35b66f1c49cf6f5437811051965f45a14f1ee15f",
      "parents": [
        "51d6ff7acd920379f54d0be4dbe844a46178a65f"
      ],
      "author": {
        "name": "Srivatsa S. Bhat",
        "email": "srivatsa.bhat@linux.vnet.ibm.com",
        "time": "Sat Feb 04 23:39:56 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Feb 09 23:56:01 2012 +0100"
      },
      "message": "PM / Hibernate: Refactor and simplify freezer_test_done\n\nThe code related to \u0027freezer_test_done\u0027 is needlessly convoluted.\nRefactor the code and simplify the implementation.\n\nSigned-off-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "51d6ff7acd920379f54d0be4dbe844a46178a65f",
      "tree": "b016233eaf9dd4f1698ca6e8e649d1df905a48ec",
      "parents": [
        "9045a05044268b075c13bb0284601b24959dc3c6"
      ],
      "author": {
        "name": "Srivatsa S. Bhat",
        "email": "srivatsa.bhat@linux.vnet.ibm.com",
        "time": "Sat Feb 04 22:26:38 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Feb 09 23:55:54 2012 +0100"
      },
      "message": "PM / Hibernate: Thaw kernel threads in hibernation_snapshot() in error/test path\n\nIn the hibernation call path, the kernel threads are frozen inside\nhibernation_snapshot(). If we happen to encounter an error further down\nthe road or if we are exiting early due to a successful freezer test,\nthen thaw kernel threads before returning to the caller.\n\nSigned-off-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\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": "2e8e89e392c62636ee33532358607baef2863173",
      "tree": "d995a25c68eef57dea580b0f06ba8af76758775a",
      "parents": [
        "0c6aebe31861c470c8cfbfdfdfd72d1369a6440b",
        "d310310cbff18ec385c6ab4d58f33b100192a96a"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Dec 06 22:12:50 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Dec 06 22:12:50 2011 +0100"
      },
      "message": "Merge branch \u0027pm-freezer\u0027 into pm-sleep\n\n* pm-freezer: (26 commits)\n  Freezer / sunrpc / NFS: don\u0027t allow TASK_KILLABLE sleeps to block the freezer\n  Freezer: fix more fallout from the thaw_process rename\n  freezer: fix wait_event_freezable/__thaw_task races\n  freezer: kill unused set_freezable_with_signal()\n  dmatest: don\u0027t use set_freezable_with_signal()\n  usb_storage: don\u0027t use set_freezable_with_signal()\n  freezer: remove unused @sig_only from freeze_task()\n  freezer: use lock_task_sighand() in fake_signal_wake_up()\n  freezer: restructure __refrigerator()\n  freezer: fix set_freezable[_with_signal]() race\n  freezer: remove should_send_signal() and update frozen()\n  freezer: remove now unused TIF_FREEZE\n  freezer: make freezing() test freeze conditions in effect instead of TIF_FREEZE\n  cgroup_freezer: prepare for removal of TIF_FREEZE\n  freezer: clean up freeze_processes() failure path\n  freezer: kill PF_FREEZING\n  freezer: test freezable conditions while holding freezer_lock\n  freezer: make freezing indicate freeze condition in effect\n  freezer: use dedicated lock instead of task_lock() + memory barrier\n  freezer: don\u0027t distinguish nosig tasks on thaw\n  ...\n"
    },
    {
      "commit": "48580ab8729865c81e148d59159fbe2aa7865511",
      "tree": "40fca721d04bb2ceef8a2e603ba529447cd0fe65",
      "parents": [
        "97819a26224f019e73d88bb2fd4eb5a614860461"
      ],
      "author": {
        "name": "Srivatsa S. Bhat",
        "email": "srivatsa.bhat@linux.vnet.ibm.com",
        "time": "Thu Dec 01 22:33:20 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Dec 06 22:08:14 2011 +0100"
      },
      "message": "PM / Hibernate: Remove deprecated hibernation test modes\n\nThe hibernation test modes \u0027test\u0027 and \u0027testproc\u0027 are deprecated, because\nthe \u0027pm_test\u0027 framework offers much more fine-grained control for debugging\nsuspend and hibernation related problems.\n\nSo, remove the deprecated \u0027test\u0027 and \u0027testproc\u0027 hibernation test modes.\n\nSuggested-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "97819a26224f019e73d88bb2fd4eb5a614860461",
      "tree": "d7bb2f83b2564d4f2bf111e2eb3bc1f4714b342e",
      "parents": [
        "0118521cc7acb3ccbc1a01d6144ac32be9d56a4c"
      ],
      "author": {
        "name": "Srivatsa S. Bhat",
        "email": "srivatsa.bhat@linux.vnet.ibm.com",
        "time": "Thu Dec 01 22:33:10 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Dec 06 22:07:59 2011 +0100"
      },
      "message": "PM / Hibernate: Thaw processes in SNAPSHOT_CREATE_IMAGE ioctl test path\n\nCommit 2aede851ddf08666f68ffc17be446420e9d2a056 (PM / Hibernate: Freeze\nkernel threads after preallocating memory) moved the freezing of kernel\nthreads to hibernation_snapshot() function.\n\nSo now, if the call to hibernation_snapshot() returns early due to a\nsuccessful hibernation test, the caller has to thaw processes to ensure\nthat the system gets back to its original state.\n\nBut in SNAPSHOT_CREATE_IMAGE hibernation ioctl, the caller does not thaw\nprocesses in case hibernation_snapshot() returned due to a successful\nfreezer test. Fix this issue. But note we still send the value of \u0027in_suspend\u0027\n(which is now 0) to userspace, because we are not in an error path per-se,\nand moreover, the value of in_suspend correctly depicts the situation here.\n\nSigned-off-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "0118521cc7acb3ccbc1a01d6144ac32be9d56a4c",
      "tree": "2345c7754856f34efc7ac8f1ced88febb99d25ff",
      "parents": [
        "953a206393b1533ceb0e7d725cc5a8c8d7ed97dd"
      ],
      "author": {
        "name": "Srivatsa S. Bhat",
        "email": "srivatsa.bhat@linux.vnet.ibm.com",
        "time": "Thu Dec 01 22:32:43 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Dec 06 22:07:51 2011 +0100"
      },
      "message": "PM / Hibernate: Enable usermodehelpers in software_resume() error path\n\nIn the software_resume() function defined in kernel/power/hibernate.c,\nif the call to create_basic_memory_bitmaps() fails, the usermodehelpers\nare not enabled (which had been disabled in the previous step). Fix it.\n\nSigned-off-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "953a206393b1533ceb0e7d725cc5a8c8d7ed97dd",
      "tree": "7eb6448987f474f287bd2fce66dd1fff6e2eec30",
      "parents": [
        "64e94aafb6a5c4f419e9b8f93950914b5ac162a9"
      ],
      "author": {
        "name": "Srivatsa S. Bhat",
        "email": "srivatsa.bhat@linux.vnet.ibm.com",
        "time": "Tue Nov 22 23:20:31 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Nov 23 21:13:41 2011 +0100"
      },
      "message": "PM / Hibernate: Refactor and simplify hibernation_snapshot() code\n\nThe goto statements in hibernation_snapshot() are a bit complex.\nRefactor the code to remove some of them, thereby simplifying the\nimplementation.\n\nSigned-off-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "986b11c3ee9e0eace25fe74a502205f7fe8c179b",
      "tree": "2271bc519eac458fd92799f5731e2ef604f69341",
      "parents": [
        "bb58dd5d1ffad6c2d21c69698ba766dad4ae54e6",
        "24b7ead3fb0bae267c2ee50898eb4c13aedd1e9f"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Nov 23 21:09:02 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Nov 23 21:09:02 2011 +0100"
      },
      "message": "Merge branch \u0027pm-freezer\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc into pm-freezer\n\n* \u0027pm-freezer\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc: (24 commits)\n  freezer: fix wait_event_freezable/__thaw_task races\n  freezer: kill unused set_freezable_with_signal()\n  dmatest: don\u0027t use set_freezable_with_signal()\n  usb_storage: don\u0027t use set_freezable_with_signal()\n  freezer: remove unused @sig_only from freeze_task()\n  freezer: use lock_task_sighand() in fake_signal_wake_up()\n  freezer: restructure __refrigerator()\n  freezer: fix set_freezable[_with_signal]() race\n  freezer: remove should_send_signal() and update frozen()\n  freezer: remove now unused TIF_FREEZE\n  freezer: make freezing() test freeze conditions in effect instead of TIF_FREEZE\n  cgroup_freezer: prepare for removal of TIF_FREEZE\n  freezer: clean up freeze_processes() failure path\n  freezer: kill PF_FREEZING\n  freezer: test freezable conditions while holding freezer_lock\n  freezer: make freezing indicate freeze condition in effect\n  freezer: use dedicated lock instead of task_lock() + memory barrier\n  freezer: don\u0027t distinguish nosig tasks on thaw\n  freezer: remove racy clear_freeze_flag() and set PF_NOFREEZE on dead tasks\n  freezer: rename thaw_process() to __thaw_task() and simplify the implementation\n  ...\n"
    },
    {
      "commit": "bb58dd5d1ffad6c2d21c69698ba766dad4ae54e6",
      "tree": "aedde5149df5e3eb8c217b90540222ee507d5e9e",
      "parents": [
        "f10cdea68b70bd85706baed0decab59618f9c353"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Nov 22 23:08:10 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Nov 23 21:03:38 2011 +0100"
      },
      "message": "PM / Hibernate: Do not leak memory in error/test code paths\n\nThe hibernation core code forgets to release memory preallocated\nfor hibernation if there\u0027s an error in its early stages or if test\nmodes causing hibernation_snapshot() to return early are used.  This\ncauses the system to be hardly usable, because the amount of\npreallocated memory is usually huge.  Fix this problem.\n\nReported-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\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": "aa9a7b11821e883a7b93ecce190881e0ea48648b",
      "tree": "b917fb563df2d27b95d6012afd9bf63237a7e3d5",
      "parents": [
        "88995e809f8a8115f30db24696c9137aad93d570"
      ],
      "author": {
        "name": "Srivatsa S. Bhat",
        "email": "srivatsa.bhat@linux.vnet.ibm.com",
        "time": "Fri Nov 18 23:02:42 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Nov 18 23:02:42 2011 +0100"
      },
      "message": "PM / Hibernate: Fix the early termination of test modes\n\nCommit 2aede851ddf08666f68ffc17be446420e9d2a056\n(PM / Hibernate: Freeze kernel threads after preallocating memory)\npostponed the freezing of kernel threads to after preallocating memory\nfor hibernation. But while doing that, the hibernation test TEST_FREEZER\nand the test mode HIBERNATION_TESTPROC were not moved accordingly.\n\nAs a result, when using these test modes, it only goes upto the freezing of\nuserspace and exits, when in fact it should go till the complete end of task\nfreezing stage, namely the freezing of kernel threads as well.\n\nSo, move these points of exit to appropriate places so that freezing of\nkernel threads is also tested while using these test harnesses.\n\nSigned-off-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\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": "081a9d043c983f161b78fdc4671324d1342b86bc",
      "tree": "4382d88e5705b18a95471af2a71319401c47744f",
      "parents": [
        "d231ff1af70a2df43d809173cf8c94e9c3beb853"
      ],
      "author": {
        "name": "Bojan Smojver",
        "email": "bojan@rexursive.com",
        "time": "Thu Oct 13 23:58:07 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Oct 16 23:30:38 2011 +0200"
      },
      "message": "PM / Hibernate: Improve performance of LZO/plain hibernation, checksum image\n\nUse threads for LZO compression/decompression on hibernate/thaw.\nImprove buffering on hibernate/thaw.\nCalculate/verify CRC32 of the image pages on hibernate/thaw.\n\nIn my testing, this improved write/read speed by a factor of about two.\n\nSigned-off-by: Bojan Smojver \u003cbojan@rexursive.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "d231ff1af70a2df43d809173cf8c94e9c3beb853",
      "tree": "fa6efbb106f36738032bd035e10f54936d3b683d",
      "parents": [
        "27920651fe0d16a25632dc238e81b54f3a504869"
      ],
      "author": {
        "name": "Barry Song",
        "email": "Baohua.Song@csr.com",
        "time": "Tue Oct 11 23:29:18 2011 -0700"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Oct 16 23:30:38 2011 +0200"
      },
      "message": "PM / Hibernate: Do not initialize static and extern variables to 0\n\nStatic and extern variables in kernel/power/hibernate.c need not be\ninitialized to 0 explicitly, so remove those initializations.\n\n[rjw: Modified subject, added changelog.]\n\nSigned-off-by: Barry Song \u003cBaohua.Song@csr.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "f126f7334f72e2fd1b7a62bba20c488b86e6e7c4",
      "tree": "c56a286700df963245e56cb8caea3e96565b478b",
      "parents": [
        "bf1c138e350155edb06709c7fbf0946f252b257c"
      ],
      "author": {
        "name": "Barry Song",
        "email": "baohua.song@csr.com",
        "time": "Mon Oct 10 23:38:41 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Oct 16 23:30:37 2011 +0200"
      },
      "message": "PM / Hibernate: Add resumedelay kernel param in addition to resumewait\n\nPatch \"PM / Hibernate: Add resumewait param to support MMC-like\ndevices as resume file\" added the resumewait kernel command line\noption.  The present patch adds resumedelay so that\nresumewait/delay were analogous to rootwait/delay.\n\n[rjw: Modified the subject and changelog slightly.]\n\nSigned-off-by: Barry Song \u003cbaohua.song@csr.com\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "6f8d7022a842809aeb24db1d15669198ef02c131",
      "tree": "ae1d4bacda83b3f430c644cf2479ffb1948bb30c",
      "parents": [
        "21e82808fc465b66fedaac0f4e885cafb304e843"
      ],
      "author": {
        "name": "Barry Song",
        "email": "baohua.song@csr.com",
        "time": "Thu Oct 06 20:34:46 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Oct 16 23:30:36 2011 +0200"
      },
      "message": "PM / Hibernate: Add resumewait param to support MMC-like devices as resume file\n\nSome devices like MMC are async detected very slow. For example,\ndrivers/mmc/host/sdhci.c launches a 200ms delayed work to detect\nMMC partitions then add disk.\n\nWe have wait_for_device_probe() and scsi_complete_async_scans()\nbefore calling swsusp_check(), but it is not enough to wait for MMC.\n\nThis patch adds resumewait kernel param just like rootwait so\nthat we have enough time to wait until MMC is ready. The difference is\nthat we wait for resume partition whereas rootwait waits for rootfs\npartition (which may be on a different device).\n\nThis patch will make hibernation support many embedded products\nwithout SCSI devices, but with devices like MMC.\n\n[rjw: Modified the changelog slightly.]\n\nSigned-off-by: Barry Song \u003cBaohua.Song@csr.com\u003e\nReviewed-by: Valdis Kletnieks \u003cvaldis.kletnieks@vt.edu\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "21e82808fc465b66fedaac0f4e885cafb304e843",
      "tree": "58b66ddda8b7900c52e43007df6679fc352dd13e",
      "parents": [
        "2aede851ddf08666f68ffc17be446420e9d2a056"
      ],
      "author": {
        "name": "Barry Song",
        "email": "Baohua.Song@csr.com",
        "time": "Tue Sep 27 22:05:44 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Oct 16 23:28:52 2011 +0200"
      },
      "message": "PM / Hibernate: Fix typo in a kerneldoc comment\n\nFix a typo in a function name in the kerneldoc comment next to\nresume_target_kernel().\n\n[rjw: Changed the subject slightly, added the changelog.]\n\nSigned-off-by: Barry Song \u003cBaohua.Song@csr.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "2aede851ddf08666f68ffc17be446420e9d2a056",
      "tree": "f63a0477c9fe618cd374065bac4cb5f172aaf7db",
      "parents": [
        "8f88893c05f2f677f18f2ce5591b4bed5d4a7535"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Sep 26 20:32:27 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Oct 16 23:28:52 2011 +0200"
      },
      "message": "PM / Hibernate: Freeze kernel threads after preallocating memory\n\nThere is a problem with the current ordering of hibernate code which\nleads to deadlocks in some filesystems\u0027 memory shrinkers.  Namely,\nsome filesystems use freezable kernel threads that are inactive when\nthe hibernate memory preallocation is carried out.  Those same\nfilesystems use memory shrinkers that may be triggered by the\nhibernate memory preallocation.  If those memory shrinkers wait for\nthe frozen kernel threads, the hibernate process deadlocks (this\nhappens with XFS, for one example).\n\nApparently, it is not technically viable to redesign the filesystems\nin question to avoid the situation described above, so the only\npossible solution of this issue is to defer the freezing of kernel\nthreads until the hibernate memory preallocation is done, which is\nimplemented by this change.\n\nUnfortunately, this requires the memory preallocation to be done\nbefore the \"prepare\" stage of device freeze, so after this change the\nonly way drivers can allocate additional memory for their freeze\nroutines in a clean way is to use PM notifiers.\n\nReported-by: Christoph \u003ccr2005@u-club.de\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "f42a9813fbf930fea3bdd0524dcb43c7feb0c977",
      "tree": "9396a7cf0b18ff2ce04cbe4698466ad6196afc75",
      "parents": [
        "354258011e8e86961f7a72ad154ca8caf0c4c6f7"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 24 23:36:06 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 24 23:36:06 2011 +0200"
      },
      "message": "PM / Hibernate: Update kerneldoc comments in hibernate.c\n\nSome of the kerneldoc comments in kernel/power/hibernate.c are\noutdated and some of them don\u0027t adhere to the kernel\u0027s standards.\nUpdate them and make them look in a consistent way.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\n"
    },
    {
      "commit": "354258011e8e86961f7a72ad154ca8caf0c4c6f7",
      "tree": "e1c680e692a9cdddaabece1fe73dd85928bd1b23",
      "parents": [
        "4e2d9491a78929badcf774869b458486acb96365"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 24 23:35:55 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 24 23:35:55 2011 +0200"
      },
      "message": "PM / Hibernate: Remove arch_prepare_suspend()\n\nAll architectures supporting hibernation define\narch_prepare_suspend() as an empty function, so remove it.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "4e2d9491a78929badcf774869b458486acb96365",
      "tree": "772bf28990cec5c78747cbc3c99ba836d6c1737b",
      "parents": [
        "257313b2a87795e07a0bdf58d0fffbdba8b31051"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 24 00:21:26 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 24 00:21:26 2011 +0200"
      },
      "message": "PM / Hibernate: Update some comments in core hibernate code\n\nSome comments in the core hibernate code are outdated, some aren\u0027t\nnecessary any more and at least one of them is plain wrong.  Remove\nthose comments or update them.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "91e7c75ba93c48a82670d630b9daac92ff70095d",
      "tree": "b44ac3dca1d03cce99cccc3f4ce55d4b5475d373",
      "parents": [
        "c650da23d59d2c82307380414606774c6d49b8bd"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 17 23:26:00 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 17 23:26:00 2011 +0200"
      },
      "message": "PM: Allow drivers to allocate memory from .prepare() callbacks safely\n\nIf device drivers allocate substantial amounts of memory (above 1 MB)\nin their hibernate .freeze() callbacks (or in their legacy suspend\ncallbcks during hibernation), the subsequent creation of hibernate\nimage may fail due to the lack of memory.  This is the case, because\nthe drivers\u0027 .freeze() callbacks are executed after the hibernate\nmemory preallocation has been carried out and the preallocated amount\nof memory may be too small to cover the new driver allocations.\nUnfortunately, the drivers\u0027 .prepare() callbacks also are executed\nafter the hibernate memory preallocation has completed, so they are\nnot suitable for allocating additional memory either.  Thus the only\nway a driver can safely allocate memory during hibernation is to use\na hibernate/suspend notifier.  However, the notifiers are called\nbefore the freezing of user space and the drivers wanting to use them\nfor allocating additional memory may not know how much memory needs\nto be allocated at that point.\n\nTo let device drivers overcome this difficulty rework the hibernation\nsequence so that the memory preallocation is carried out after the\ndrivers\u0027 .prepare() callbacks have been executed, so that the\n.prepare() callbacks can be used for allocating additional memory\nto be used by the drivers\u0027 .freeze() callbacks.  Update documentation\nto match the new behavior of the code.\n\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": "ddeb648708108091a641adad0a438ec4fd8bf190",
      "tree": "722367ce903d362af29898db7c2bc2c1058d80c5",
      "parents": [
        "13e381365614855bf14c8ad68f9b65e3afd3dd2c"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun May 15 11:38:48 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 17 23:19:19 2011 +0200"
      },
      "message": "PM / Hibernate: Add sysfs knob to control size of memory for drivers\n\nMartin reports that on his system hibernation occasionally fails due\nto the lack of memory, because the radeon driver apparently allocates\ntoo much of it during the device freeze stage.  It turns out that the\namount of memory allocated by radeon during hibernation (and\npresumably during system suspend too) depends on the utilization of\nthe GPU (e.g. hibernating while there are two KDE 4 sessions with\ncompositing enabled causes radeon to allocate more memory than for\none KDE 4 session).\n\nIn principle it should be possible to use image_size to make the\nmemory preallocation mechanism free enough memory for the radeon\ndriver, but in practice it is not easy to guess the right value\nbecause of the way the preallocation code uses image_size.  For this\nreason, it seems reasonable to allow users to control the amount of\nmemory reserved for driver allocations made after the hibernate\npreallocation, which currently is constant and amounts to 1 MB.\n\nIntroduce a new sysfs file, /sys/power/reserved_size, whose value\nwill be used as the amount of memory to reserve for the\npost-preallocation reservations made by device drivers, in bytes.\nFor backwards compatibility, set its default (and initial) value to\nthe currently used number (1 MB).\n\nReferences: https://bugzilla.kernel.org/show_bug.cgi?id\u003d34102\nReported-and-tested-by: Martin Steigerwald \u003cMartin@Lichtvoll.de\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": "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": "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": "5262a47502adcfc3a64403120768f528418a3b79",
      "tree": "5c60e077979fd3d8eed966493b2afaa026b62022",
      "parents": [
        "5729c63a51f0f8a351e0f1dc7b3250ebac12c309"
      ],
      "author": {
        "name": "MyungJoo Ham",
        "email": "myungjoo.ham@samsung.com",
        "time": "Fri Nov 26 23:07:56 2010 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Dec 24 15:02:40 2010 +0100"
      },
      "message": "PM / Hibernate: When failed, in_suspend should be reset\n\nWhen hibernation failed due to an error in swsusp_write() called by\nhibernate(), it skips calling \"power_down()\" and returns. When\nhibernate() is called again (probably after fixing up so that\nswsusp_write() wouldn\u0027t fail again), before \"in_suspend \u003d 1\" of\ncreate_image is called, in_suspend should be 0. However, because\nhibernate() did not reset \"in_suspend\" after a failure, it\u0027s already 1.\n\nThis patch fixes such inconsistency of \"in_suspend\" value.\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": "5729c63a51f0f8a351e0f1dc7b3250ebac12c309",
      "tree": "739030dfbc26519ec7fd813d797f9865678df11d",
      "parents": [
        "8cfe400ca54fd1ed96f962bea5f7e20b09b6d69f"
      ],
      "author": {
        "name": "MyungJoo Ham",
        "email": "myungjoo.ham@samsung.com",
        "time": "Fri Nov 26 23:07:48 2010 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Dec 24 15:02:40 2010 +0100"
      },
      "message": "PM / Hibernate: hibernation_ops-\u003eleave should be checked too\n\nBecause hibernate calls hibernation_ops-\u003eleave() without checking\nwhether hibernation_ops-\u003eleave is NULL or not, hiberantion_set_ops\nshould WARN_ON if hibernation_ops-\u003eleave is NULL.\n\nThis patch added one more condition to check hibernation_ops-\u003eleave.\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": "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": "073ef1f6e508688392580e4f35dcad9aabd1e100",
      "tree": "2b82dc274ab415524c9c3ab7b8f2cc2d66654b2e",
      "parents": [
        "c996d8b9a8f37bd1b4dd7823abc42780b20998f8"
      ],
      "author": {
        "name": "Lionel Debroux",
        "email": "lionel_debroux@yahoo.fr",
        "time": "Tue Nov 09 21:48:49 2010 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Nov 16 14:13:58 2010 +0100"
      },
      "message": "hibernation: constify platform_hibernation_ops\n\nPatch against mainline.\n\nChanges since v1: added one hunk; no longer adding \"const\" qualifier to\npointers in platform_hibernation_ops after seeing\nb4144e4f6e3b448d322095ca08af393682a69e33.\n\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "d0941ead3fdd31aafff992d211bcefdbff1eaedb",
      "tree": "3afd75a241739a7b3188a8e8ead167c10aeaac46",
      "parents": [
        "15bcb91d7e607d8a2e060f01f7784a7454668da4"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Sep 28 23:31:22 2010 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Oct 17 01:57:48 2010 +0200"
      },
      "message": "PM / Hibernate: Make some boot messages look less scary\n\nThe hibernate resume code checks if there is an image to resume from\non every boot and, if the kernel is built with CONFIG_PM_DEBUG set\nand the image is not present, it prints some scary messages\nsuggesting there was a boot error of some sort.  Apparently, some\nusers are confused by them, so make them look less scary and adjust\nthe other hibernate resume debug messages to match them.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "f996fc9671d088bd5f52a70f18c64bfe3d0e418f",
      "tree": "3d88b5adfa21fc71cbabb9a891d37b0c1ce1c692",
      "parents": [
        "05aa55dddb9ee4045c320661068bea78dad6a6e5"
      ],
      "author": {
        "name": "Bojan Smojver",
        "email": "bojan@rexursive.com",
        "time": "Thu Sep 09 23:06:23 2010 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Oct 17 01:57:42 2010 +0200"
      },
      "message": "PM / Hibernate: Compress hibernation image with LZO\n\nCompress hibernation image with LZO in order to save on I/O and\ntherefore time to hibernate/thaw.\n\n[rjw: Added hibernate\u003dnocompress command line option instead of just\n nocompress which would be confusing, fixed a couple of compiler\n warnings, fixed kerneldoc comments, minor cleanups.]\n\nSigned-off-by: Bojan Smojver \u003cbojan@rexursive.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "910321ea817a202ff70fac666e37e2c8e2f88823",
      "tree": "aaead29e7797986e2b804746b565bb5d05117c54",
      "parents": [
        "ac8456d6f9a3011c824176bd6084d39e5f70a382"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Thu Sep 09 16:38:07 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 09 18:57:25 2010 -0700"
      },
      "message": "swap: revert special hibernation allocation\n\nPlease revert 2.6.36-rc commit d2997b1042ec150616c1963b5e5e919ffd0b0ebf\n\"hibernation: freeze swap at hibernation\".  It complicated matters by\nadding a second swap allocation path, just for hibernation; without in any\nway fixing the issue that it was intended to address - page reclaim after\nfixing the hibernation image might free swap from a page already imaged as\nswapcache, letting its swap be reallocated to store a different page of\nthe image: resulting in data corruption if the imaged page were freed as\nclean then swapped back in.  Pages freed to si-\u003eswap_map were still in\ndanger of being reallocated by the alternative allocation path.\n\nI guess it inadvertently fixed slow SSD swap allocation for hibernation,\nas reported by Nigel Cunningham: by missing out the discards that occur on\nthe usual swap allocation path; but that was unintentional, and needs a\nseparate fix.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Ondrej Zary \u003clinux@rainbow-software.org\u003e\nCc: Andrea Gelmini \u003candrea.gelmini@gmail.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Nigel Cunningham \u003cnigel@tuxonice.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d2997b1042ec150616c1963b5e5e919ffd0b0ebf",
      "tree": "c970746ad3d5c3e0ccbd1695d07144dbe4534ec4",
      "parents": [
        "966cca029f739716fbcc8068b8c6dfe381f86fc3"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Mon Aug 09 17:20:11 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:04 2010 -0700"
      },
      "message": "hibernation: freeze swap at hibernation\n\nWhen taking a memory snapshot in hibernate_snapshot(), all (directly\ncalled) memory allocations use GFP_ATOMIC.  Hence swap misusage during\nhibernation never occurs.\n\nBut from a pessimistic point of view, there is no guarantee that no page\nallcation has __GFP_WAIT.  It is better to have a global indication \"we\nenter hibernation, don\u0027t use swap!\".\n\nThis patch tries to freeze new-swap-allocation during hibernation.  (All\nuser processes are frozenm so swapin is not a concern).\n\nThis way, no updates will happen to swap_map[] between\nhibernate_snapshot() and save_image().  Swap is thawed when swsusp_free()\nis called.  We can be assured that swap corruption will not occur.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Ondrej Zary \u003clinux@rainbow-software.org\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3cfc2c42c1cbc8e238bb9c0612c0df4565e3a8b4",
      "tree": "5adc1ff2eaf64d450bf28bb6b2ce890db2567288",
      "parents": [
        "5cf65713f87775c548e3eb48dbafa32e12f28000",
        "0ea6e61122196509af82cc4f36cbdaacbefb8227"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 04 15:31:02 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 04 15:31:02 2010 -0700"
      },
      "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: (48 commits)\n  Documentation: update broken web addresses.\n  fix comment typo \"choosed\" -\u003e \"chosen\"\n  hostap:hostap_hw.c Fix typo in comment\n  Fix spelling contorller -\u003e controller in comments\n  Kconfig.debug: FAIL_IO_TIMEOUT: typo Faul -\u003e Fault\n  fs/Kconfig: Fix typo Userpace -\u003e Userspace\n  Removing dead MACH_U300_BS26\n  drivers/infiniband: Remove unnecessary casts of private_data\n  fs/ocfs2: Remove unnecessary casts of private_data\n  libfc: use ARRAY_SIZE\n  scsi: bfa: use ARRAY_SIZE\n  drm: i915: use ARRAY_SIZE\n  drm: drm_edid: use ARRAY_SIZE\n  synclink: use ARRAY_SIZE\n  block: cciss: use ARRAY_SIZE\n  comment typo fixes: charater \u003d\u003e character\n  fix comment typos concerning \"challenge\"\n  arm: plat-spear: fix typo in kerneldoc\n  reiserfs: typo comment fix\n  update email address\n  ...\n"
    },
    {
      "commit": "a2531293dbb7608fa672ff28efe3ab4027917a2f",
      "tree": "017d5a38fa33838ebdca1a332db6887096885d2d",
      "parents": [
        "7a53cd16d4d9968d1962e378b14eec2d99aa43e0"
      ],
      "author": {
        "name": "Pavel Machek",
        "email": "pavel@ucw.cz",
        "time": "Sun Jul 18 14:27:13 2010 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Jul 19 10:56:54 2010 +0200"
      },
      "message": "update email address\n\npavel@suse.cz no longer works, replace it with working address.\n\nSigned-off-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "d074ee023fa3a4681b64223c5e636102c39628c4",
      "tree": "830000adb529463806773d819fe20d76ac0388c5",
      "parents": [
        "f6f71f187518477cecc01cd887933b5da19585e6"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Jul 07 23:43:35 2010 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Jul 19 02:00:35 2010 +0200"
      },
      "message": "PM / Hibernate: Fix snapshot error code path\n\nThere is an inconsistency between hibernation_platform_enter()\nand hibernation_snapshot(), because the latter calls\nhibernation_ops-\u003eend() after failing hibernation_ops-\u003ebegin(), while\nthe former doesn\u0027t do that.  Make hibernation_snapshot() behave in\nthe same way as hibernation_platform_enter() in that respect.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "f6f71f187518477cecc01cd887933b5da19585e6",
      "tree": "d59705a937ca35d241f274a0db772e688ff9191a",
      "parents": [
        "82f682514a5df89ffb3890627eebf0897b7a84ec"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Jul 07 23:43:18 2010 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Jul 19 02:00:35 2010 +0200"
      },
      "message": "PM / Hibernate: Fix hibernation_platform_enter()\n\nThe hibernation_platform_enter() function calls dpm_suspend_noirq()\ninstead of dpm_resume_noirq() by mistake.  Fix this.\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": "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": "8e60c6a1348e17e68ad73589a52a03876e7059be",
      "tree": "320d06254eabd0367e36c65233e6394f83308e8e",
      "parents": [
        "0414f2ec03d72dc4e569627e6112fa6dafc99a79"
      ],
      "author": {
        "name": "Nigel Cunningham",
        "email": "nigel@tuxonice.net",
        "time": "Sun Dec 06 16:16:07 2009 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Dec 06 16:16:07 2009 +0100"
      },
      "message": "PM / Hibernate: Shift remaining code from swsusp.c to hibernate.c\n\nShift the remaining declaration of the variable in_suspend and the\nfunction swsusp_show_speed from swsusp.c to hibernate.c, and delete\nswsusp.c.\n\nSigned-off-by: Nigel Cunningham \u003cnigel@tuxonice.net\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "76b57e613f6006ff525a17876c89326d127cadc9",
      "tree": "244d876f24581fb40d1900003c55b1c7ca5abb91",
      "parents": [
        "9905d1b411946fb3fb228e8c6529fd94afda8a92"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jirislaby@gmail.com",
        "time": "Wed Oct 07 22:37:35 2009 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Nov 03 11:01:46 2009 +0100"
      },
      "message": "PM / Hibernate: Fix blkdev refleaks\n\nWhile cruising through the swsusp code I found few blkdev reference\nleaks of resume_bdev.\n\nswsusp_read: remove blkdev_put altogether. Some fail paths do\n             not do that.\nswsusp_check: make sure we always put a reference on fail paths\nsoftware_resume: all fail paths between swsusp_check and swsusp_read\n                 omit swsusp_close. Add it in those cases. And since\n                 swsusp_read doesn\u0027t drop the reference anymore, do\n                 it here unconditionally.\n\n[rjw: Fixed a small coding style issue.]\n\nSigned-off-by: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "64a473cb74a88cb4991edf985d55a266e65292e1",
      "tree": "173402070f904951c9ec16a55e3f96e75289f14c",
      "parents": [
        "4bb334353ebd821bc8eeabeb019eaac33c7307df"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Jul 08 13:24:05 2009 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Sep 14 20:26:58 2009 +0200"
      },
      "message": "PM/Hibernate: Do not release preallocated memory unnecessarily (rev. 2)\n\nSince the hibernation code is now going to use allocations of memory\nto make enough room for the image, it can also use the page frames\nallocated at this stage as image page frames.  The low-level\nhibernation code needs to be rearranged for this purpose, but it\nallows us to avoid freeing a great number of pages and allocating\nthese same pages once again later, so it generally is worth doing.\n\n[rev. 2: Take highmem into account correctly.]\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "e681c9dd62fe8fcc5bba28a3ca3f7dc8be940206",
      "tree": "3ac522149e3171417897754b53b765e38d9ca25a",
      "parents": [
        "ac8d513a6801c8636922ccf4f30211810c9a56ce"
      ],
      "author": {
        "name": "Thadeu Lima de Souza Cascardo",
        "email": "cascardo@holoscopio.com",
        "time": "Wed Jul 08 13:23:32 2009 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Sep 14 20:26:58 2009 +0200"
      },
      "message": "PM: Fix typo in label name s/Platofrm_finish/Platform_finish/\n\nAlthough the same label name is used somewhere else in the file, this\nparticular label was consistently typoed in all of its uses.\n\nSigned-off-by: Thadeu Lima de Souza Cascardo \u003ccascardo@holoscopio.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "8b759b84c8b3c27ccc8dd787294636297b3ebb40",
      "tree": "c80ae791c342d242fb97434c26be2b63764da77a",
      "parents": [
        "a9d7052363a6e06bb623ed1876c56c7ca5b2c6d8"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Jun 10 01:27:49 2009 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Jun 12 21:32:33 2009 +0200"
      },
      "message": "PM/Hibernate: Rename disk.c to hibernate.c\n\nChange the name of kernel/power/disk.c to kernel/power/hibernate.c\nin analogy with the file names introduced by the changes that\nseparated the suspend to RAM and standby funtionality from the\ncommon PM functions.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\n"
    },
    {
      "commit": "d161630297a20802d01c55847bfcba85d2118a9f",
      "tree": "51685c169319400b6da4dc6c56b69e731c45f297",
      "parents": [
        "e39a71ef80877f4e30d808af9acceec80f4d2f7c"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Sun May 24 22:05:42 2009 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Jun 12 21:32:31 2009 +0200"
      },
      "message": "PM core: rename suspend and resume functions\n\nThis patch (as1241) renames a bunch of functions in the PM core.\nRather than go through a boring list of name changes, suffice it to\nsay that in the end we have a bunch of pairs of functions:\n\n\tdevice_resume_noirq\tdpm_resume_noirq\n\tdevice_resume\t\tdpm_resume\n\tdevice_complete\t\tdpm_complete\n\tdevice_suspend_noirq\tdpm_suspend_noirq\n\tdevice_suspend\t\tdpm_suspend\n\tdevice_prepare\t\tdpm_prepare\n\nin which device_X does the X operation on a single device and dpm_X\ninvokes device_X for all devices in the dpm_list.\n\nIn addition, the old dpm_power_up and device_resume_noirq have been\ncombined into a single function (dpm_resume_noirq).\n\nLastly, dpm_suspend_start and dpm_resume_end are the renamed versions\nof the former top-level device_suspend and device_resume routines.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nAcked-by: Magnus Damm \u003cdamm@igel.co.jp\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "e39a71ef80877f4e30d808af9acceec80f4d2f7c",
      "tree": "e9d4ff1618328cf3a3fafee04621b9776ca169de",
      "parents": [
        "1380a37e3da5d9e14ea5c2a4c6ab2b307a2798ea"
      ],
      "author": {
        "name": "Magnus Damm",
        "email": "damm@igel.co.jp",
        "time": "Fri May 15 00:53:26 2009 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Jun 12 21:32:31 2009 +0200"
      },
      "message": "PM: Rename device_power_down/up()\n\nRename the functions performing \"_noirq\" dev_pm_ops\noperations from device_power_down() and device_power_up()\nto device_suspend_noirq() and device_resume_noirq().\n\nThe new function names are chosen to show that the functions\nare responsible for calling the _noirq() versions to finalize\nthe suspend/resume operation. The current function names do\nnot perform power down/up anymore so the names may be misleading.\n\nGlobal function renames:\n- device_power_down() -\u003e device_suspend_noirq()\n- device_power_up() -\u003e device_resume_noirq()\n\nStatic function renames:\n- suspend_device_noirq() -\u003e __device_suspend_noirq()\n- resume_device_noirq() -\u003e __device_resume_noirq()\n\nSigned-off-by: Magnus Damm \u003cdamm@igel.co.jp\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nAcked-by: Len Brown \u003clenb@kernel.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "32bdfac5462d777f35b00838893c4f87baf23efe",
      "tree": "92e4ef3af7b68007e8004eaca978865a29e543b0",
      "parents": [
        "59a3759d0fe8d969888c741bb33f4946e4d3750d"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun May 24 21:15:07 2009 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun May 24 21:15:07 2009 +0200"
      },
      "message": "PM: Do not hold dpm_list_mtx while disabling/enabling nonboot CPUs\n\nWe shouldn\u0027t hold dpm_list_mtx while executing\n[disable|enable]_nonboot_cpus(), because theoretically this may lead\nto a deadlock as shown by the following example (provided by Johannes\nBerg):\n\nCPU 3       CPU 2                     CPU 1\n                                      suspend/hibernate\n            something:\n            rtnl_lock()               device_pm_lock()\n                                       -\u003e mutex_lock(\u0026dpm_list_mtx)\n\n            mutex_lock(\u0026dpm_list_mtx)\n\nlinkwatch_work\n -\u003e rtnl_lock()\n                                      disable_nonboot_cpus()\n                                       -\u003e flush CPU 3 workqueue\n\nFortunately, device drivers are supposed to stop any activities that\nmight lead to the registration of new device objects way before\ndisable_nonboot_cpus() is called, so it shouldn\u0027t be necessary to\nhold dpm_list_mtx over the entire late part of device suspend and\nearly part of device resume.\n\nThus, during the late suspend and the early resume of devices acquire\ndpm_list_mtx only when dpm_list is going to be traversed and release\nit right after that.\n\nThis patch is reported to fix the regressions tracked as\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d13245.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nReported-by: Miles Lane \u003cmiles.lane@gmail.com\u003e\nTested-by: Ming Lei \u003ctom.leiming@gmail.com\u003e\n"
    },
    {
      "commit": "4484079d517c2b6521621be0b1ea246ccc55c7d7",
      "tree": "60d0ae568555f1bd7329be411b28e55b12dc64c3",
      "parents": [
        "8c21f34126222239450717b78dda0c4962d9ebfa"
      ],
      "author": {
        "name": "Bjorn Helgaas",
        "email": "bjorn.helgaas@hp.com",
        "time": "Fri May 15 23:30:50 2009 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri May 15 23:30:50 2009 +0200"
      },
      "message": "PM: check sysdev_suspend(PMSG_FREEZE) return value\n\nCheck the return value of sysdev_suspend().  I think this was a typo.\nWithout this change, the following \"if\" check is always false.\nI also changed the error message so it\u0027s distinguishable from the\nsimilar message a few lines above.\n\nSigned-off-by: Bjorn Helgaas \u003cbjorn.helgaas@hp.com\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "0c8454f56623505a99463405fd7d5664adfbb094",
      "tree": "64e594f2846d997213890b59168307d12e676ff0",
      "parents": [
        "4b2b0b9753194cad44d7295c32044b89710efd70"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Apr 25 00:16:06 2009 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 24 15:31:30 2009 -0700"
      },
      "message": "PM/Hibernate: Fix waiting for image device to appear on resume\n\nCommit c751085943362143f84346d274e0011419c84202 (\"PM/Hibernate: Wait for\nSCSI devices scan to complete during resume\") added a call to\nscsi_complete_async_scans() to software_resume(), so that it waited for\nthe SCSI scanning to complete, but the call was added at a wrong place.\n\nNamely, it should have been added after wait_for_device_probe(), which\nis called only if the image partition hasn\u0027t been specified yet.  Also,\nit\u0027s reasonable to check if the image partition is present and only wait\nfor the device probing and SCSI scanning to complete if it is not the\ncase.\n\nAdditionally, since noresume is checked right at the beginning of\nsoftware_resume() and the function returns immediately if it\u0027s set, it\ndoesn\u0027t make sense to check it once again later.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c751085943362143f84346d274e0011419c84202",
      "tree": "5323da4e3eba8126bf44e5107960ee2323d28a16",
      "parents": [
        "7b11428d37fe65643172feff66cd0a4d72d1932a"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Apr 12 20:06:56 2009 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 13 11:37:07 2009 -0700"
      },
      "message": "PM/Hibernate: Wait for SCSI devices scan to complete during resume\n\nThere is a race between resume from hibernation and the asynchronous\nscanning of SCSI devices and to prevent it from happening we need to\ncall scsi_complete_async_scans() during resume from hibernation.\n\nIn addition, if the resume from hibernation is userland-driven, it\u0027s\nbetter to wait for all device probes in the kernel to complete before\nattempting to open the resume device.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "811158b147a503fbdf9773224004ffd32002d1fe",
      "tree": "0a11dcfefe721bfc38ea9f1f4a238822dbae0dda",
      "parents": [
        "4e76c5ccd5ac9bd003467d3bb0f49b18572dd4cd",
        "b26e0ed4936b743b693a4cc1413561fa3e4eaf65"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 03 15:24:35 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 03 15:24:35 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (28 commits)\n  trivial: Update my email address\n  trivial: NULL noise: drivers/mtd/tests/mtd_*test.c\n  trivial: NULL noise: drivers/media/dvb/frontends/drx397xD_fw.h\n  trivial: Fix misspelling of \"Celsius\".\n  trivial: remove unused variable \u0027path\u0027 in alloc_file()\n  trivial: fix a pdlfush -\u003e pdflush typo in comment\n  trivial: jbd header comment typo fix for JBD_PARANOID_IOFAIL\n  trivial: wusb: Storage class should be before const qualifier\n  trivial: drivers/char/bsr.c: Storage class should be before const qualifier\n  trivial: h8300: Storage class should be before const qualifier\n  trivial: fix where cgroup documentation is not correctly referred to\n  trivial: Give the right path in Documentation example\n  trivial: MTD: remove EOL from MODULE_DESCRIPTION\n  trivial: Fix typo in bio_split()\u0027s documentation\n  trivial: PWM: fix of #endif comment\n  trivial: fix typos/grammar errors in Kconfig texts\n  trivial: Fix misspelling of firmware\n  trivial: cgroups: documentation typo and spelling corrections\n  trivial: Update contact info for Jochen Hein\n  trivial: fix typo \"resgister\" -\u003e \"register\"\n  ...\n"
    },
    {
      "commit": "a8af78982ff4c0b3731527b0217d286a343a3089",
      "tree": "10f0ebe13c999dd54efdf79ff606b65e7952b69d",
      "parents": [
        "5f0e3da6e186598bbd2569410ab60fa645ba00c9"
      ],
      "author": {
        "name": "Magnus Damm",
        "email": "damm@igel.co.jp",
        "time": "Tue Mar 31 15:23:37 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:16 2009 -0700"
      },
      "message": "pm: rework includes, remove arch ifdefs\n\nMake the following header file changes:\n\n - remove arch ifdefs and asm/suspend.h from linux/suspend.h\n - add asm/suspend.h to disk.c (for arch_prepare_suspend())\n - add linux/io.h to swsusp.c (for ioremap())\n - x86 32/64 bit compile fixes\n\nSigned-off-by: Magnus Damm \u003cdamm@igel.co.jp\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nAcked-by: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4aecd6718939eb3c4145b248369b65f7483a8a02",
      "tree": "20030736ca8e762b5de7ad2e66c39321c9ef94f5",
      "parents": [
        "900af0d973856d6feb6fc088c2d0d3fde57707d3"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 16 22:34:26 2009 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 30 21:46:54 2009 +0200"
      },
      "message": "PM: Change hibernation code ordering\n\nChange the ordering of the hibernation core code so that the platform\n\"prepare\" callbacks are executed and the nonboot CPUs are disabled\nafter calling device drivers\u0027 \"late suspend\" methods.\n\nThis change (along with the previous analogous change of the suspend\ncore code) will allow us to rework the PCI PM core so that the power\nstate of devices is changed in the \"late\" phase of suspend (and\nanalogously in the \"early\" phase of resume), which in turn will allow\nus to avoid the race condition where a device using shared interrupts\nis put into a low power state with interrupts enabled and then an\ninterrupt (for another device) comes in and confuses its driver.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2ed8d2b3a81bdbb0418301628ccdb008ac9f40b7",
      "tree": "54ab0cd7aa7db73151533b463bd490b62a29c462",
      "parents": [
        "0a0c5168df270a50e3518e4f12bddb31f8f5f38f"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 16 22:34:06 2009 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 30 21:46:54 2009 +0200"
      },
      "message": "PM: Rework handling of interrupts during suspend-resume\n\nUse the functions introduced in by the previous patch,\nsuspend_device_irqs(), resume_device_irqs() and check_wakeup_irqs(),\nto rework the handling of interrupts during suspend (hibernation) and\nresume.  Namely, interrupts will only be disabled on the CPU right\nbefore suspending sysdevs, while device drivers will be prevented\nfrom receiving interrupts, with the help of the new helper function,\nbefore their \"late\" suspend callbacks run (and analogously during\nresume).\n\nIn addition, since the device interrups are now disabled before the\nCPU has turned all interrupts off and the CPU will ACK the interrupts\nsetting the IRQ_PENDING bit for them, check in sysdev_suspend() if\nany wake-up interrupts are pending and abort suspend if that\u0027s the\ncase.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "877d03105d04b2c13e241130277fa69c8d2564f0",
      "tree": "79234721145f9dab3e0970027ed0b9b9f8929725",
      "parents": [
        "caa790ba6cb88dccfab356960d93e2f4e0bd8704"
      ],
      "author": {
        "name": "Nick Andrew",
        "email": "nick@nick-andrew.net",
        "time": "Mon Jan 26 11:06:57 2009 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Mar 30 15:21:59 2009 +0200"
      },
      "message": "trivial: Fix misspelling of firmware\n\nFix misspelling of firmware.\n\nSigned-off-by: Nick Andrew \u003cnick@nick-andrew.net\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "770824bdc421ff58a64db608294323571c949f4c",
      "tree": "2fbeef604fe982bf322249a53a95dd2ff851d5f4",
      "parents": [
        "936577c61d0c10b8929608a92c98d839b22053bc"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Feb 22 18:38:50 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Feb 22 10:33:44 2009 -0800"
      },
      "message": "PM: Split up sysdev_[suspend|resume] from device_power_[down|up]\n\nMove the sysdev_suspend/resume from the callee to the callers, with\nno real change in semantics, so that we can rework the disabling of\ninterrupts during suspend/hibernation.\n\nThis is based on an earlier patch from Linus.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "eed3ee08292d821282169708e5e8e89a0d0a0c63",
      "tree": "0c455705568521c99c84d9ef095a3ae29d1f02db",
      "parents": [
        "216773a787c3c46ef26bf1742c1fdba37d26be45"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Sat Feb 14 02:00:19 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 21 14:17:17 2009 -0800"
      },
      "message": "PM/resume: wait for device probing to finish\n\nthe resume code does not currently wait for device probing to finish.\nEven without async function calls this is dicey and not correct,\nbut with async function calls during the boot sequence this is going\nto get hit more...\n\nThis patch adds the synchronization using the newly introduced helper.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Len Brown \u003clenb@kernel.org\u003e\nAcked-by: Greg KH \u003cgregkh@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "abfe2d7b915c872f3a1fd203267cedebf90daa45",
      "tree": "a76cc5012e6d46da44b2e861df172ceef25bd39b",
      "parents": [
        "f3b8436ad9a8ad36b3c9fa1fe030c7f38e5d3d0b"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Jan 19 20:54:54 2009 +0100"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Tue Jan 27 02:15:45 2009 -0500"
      },
      "message": "Hibernation: Introduce system_entering_hibernation\n\nIntroduce boolean function system_entering_hibernation() returning\n\u0027true\u0027 during the last phase of hibernation, in which devices are\nbeing put into low power states and the sleep state (for example,\nACPI S4) is finally entered.\n\nSome device drivers need such a function to check if the system is\nin the final phase of hibernation.  In particular, some SATA drivers\nare going to use it for blacklisting systems in which the disks\nshould not be spun down during the last phase of hibernation (the\nBIOS will do that anyway).\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "b2576e1d4408e134e2188c967b1f28af39cd79d4",
      "tree": "004f3c82faab760f304ce031d6d2f572e7746a50",
      "parents": [
        "3cc8a5f4ba91f67bbdb81a43a99281a26aab8d77",
        "2150edc6c5cf00f7adb54538b9ea2a3e9cedca3f"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Jan 09 03:39:43 2009 -0500"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Jan 09 03:39:43 2009 -0500"
      },
      "message": "Merge branch \u0027linus\u0027 into release\n"
    },
    {
      "commit": "3fe0313e6ec572e6bb3f9d247316a834336db4be",
      "tree": "a066731451d4a8da20b2c85211edba8a5ccefb32",
      "parents": [
        "929096fe9ff1f4b3645cf3919527ab47e8d5e17c"
      ],
      "author": {
        "name": "Zhang Rui",
        "email": "rui.zhang@intel.com",
        "time": "Sun Oct 26 20:50:26 2008 +0100"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Dec 19 04:40:34 2008 -0500"
      },
      "message": "Hibernate: Call platform_begin before swsusp_shrink_memory\n\nCall platform_begin() before swsusp_shrink_memory() so that we can\nalways allocate enough memory to save the ACPI NVS region from\nplatform_begin().\n\nSigned-off-by: Zhang Rui \u003crui.zhang@intel.com\u003e\nAcked-by: Nigel Cunningham \u003cnigel@tuxonice.net\u003e\nAcked-by: Pavel Machek \u003cpavel@suse.cz\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "cbe2f5a6e84eebb98ab42fc5e58c3cd5b7767349",
      "tree": "801547a9c777ce65ad291e1225e5266a1e34f99f",
      "parents": [
        "a0a70c735ef714fe1b6777b571630c3d50c7b008"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 10:37:12 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 10:48:44 2008 +0100"
      },
      "message": "tracing: allow tracing of suspend/resume \u0026 hibernation code again\n\nImpact: widen function-tracing to suspend+resume (and hibernation) sequences\n\nNow that the ftrace kernel thread is gone, we can allow tracing\nduring suspend/resume again.\n\nSo revert these two commits:\n\n  f42ac38c5 \"ftrace: disable tracing for suspend to ram\"\n  41108eb10 \"ftrace: disable tracing for hibernation\"\n\nThis should be tested very carefully, as it could interact with\naltneratives instruction patching, etc.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c2dd0dae185423fb243b13d490c3fcfaa18ff333",
      "tree": "e2d721533713fc2b09b6d06d64a306bbcf6c4c76",
      "parents": [
        "30c40d2c01f68c7eb1a41ab3552bdaf5dbf300d4"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Oct 08 13:21:10 2007 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Oct 21 07:49:02 2008 -0400"
      },
      "message": "[PATCH] propagate mode through swsusp_close()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1bfcf1304ea79c46efc3724e548b13b4b442b418",
      "tree": "5adbf95b25d1d9e86fc0e5d0784550ccb9bf5be9",
      "parents": [
        "574f34cee2b6574d43bf4506f771c1cec6a5d391"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Oct 15 22:01:21 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:29 2008 -0700"
      },
      "message": "pm: rework disabling of user mode helpers during suspend/hibernation\n\nWe currently use a PM notifier to disable user mode helpers before suspend\nand hibernation and to re-enable them during resume.  However, this is not\nan ideal solution, because if any drivers want to upload firmware into\nmemory before suspend, they have to use a PM notifier for this purpose and\nthere is no guarantee that the ordering of PM notifiers will be as\nexpected (ie.  the notifier that disables user mode helpers has to be run\nafter the driver\u0027s notifier used for uploading the firmware).\n\nFor this reason, it seems better to move the disabling and enabling of\nuser mode helpers to separate functions that will be called by the PM core\nas necessary.\n\n[akpm@linux-foundation.org: remove unneeded ifdefs]\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nAcked-by: Pavel Machek \u003cpavel@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "41108eb10142e0552f2de1e4c0675b108c5f018f",
      "tree": "bb9ef817e2729915fbbe29291c827e7eef83eb54",
      "parents": [
        "b09331e530777963ed65ce2fdf074b7b077768c7"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Aug 28 14:39:12 2008 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 28 12:27:39 2008 -0700"
      },
      "message": "ftrace: disable tracing for hibernation\n\nIn accordance with commit f42ac38c59e0a03d6da0c24a63fb211393f484b0\n(\"ftrace: disable tracing for suspend to ram\"), disable tracing\naround the suspend code in hibernation code paths.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d8f3de0d2412bb91639cfefc5b3c79dbf3812212",
      "tree": "05d0530d06e898b7eeac5c781ee9f00972a7f67a",
      "parents": [
        "53eb2fbeb9e68e1a9a23945de8450999c46270ce"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jun 12 23:24:06 2008 +0200"
      },
      "committer": {
        "name": "Jesse Barnes",
        "email": "jbarnes@virtuousgeek.org",
        "time": "Thu Jun 12 14:25:09 2008 -0700"
      },
      "message": "Suspend-related patches for 2.6.27\n\nACPI PM: Add possibility to change suspend sequence\n\nThere are some systems out there that don\u0027t work correctly with\nour current suspend/hibernation code ordering.  Provide a workaround\nfor these systems allowing them to pass \u0027acpi_sleep\u003dold_ordering\u0027 in\nthe kernel command line so that it will use the pre-ACPI 2.0 (\"old\")\nsuspend code ordering.\n\nUnfortunately, this requires us to add a platform hook to the\nresuming of devices for recovering the platform in case one of the\ndevice drivers\u0027 .suspend() routines returns error code.  Namely,\nACPI 1.0 specifies that _PTS should be called before suspending\ndevices, but _WAK still should be called before resuming them in\norder to undo the changes made by _PTS.  However, if there is an\nerror during suspending devices, they are automatically resumed\nwithout returning control to the PM core, so the _WAK has to be\ncalled from within device_resume() in that cases.\n\nThe patch also reorders and refactors the ACPI suspend/hibernation\ncode to avoid duplication as far as reasonably possible.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@suse.cz\u003e\nSigned-off-by: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\n"
    },
    {
      "commit": "1eede070a59e1cc73da51e1aaa00d9ab86572cfc",
      "tree": "eafccca4f2a1ae2e8ebb06d2dff9528d5a289da4",
      "parents": [
        "bb71ad880204b79d60331d3384103976e086cb9f"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 20 23:00:01 2008 +0200"
      },
      "committer": {
        "name": "Jesse Barnes",
        "email": "jbarnes@virtuousgeek.org",
        "time": "Tue Jun 10 10:59:50 2008 -0700"
      },
      "message": "Introduce new top level suspend and hibernation callbacks\n\nIntroduce \u0027struct pm_ops\u0027 and \u0027struct pm_ext_ops\u0027 (\u0027ext\u0027 meaning\n\u0027extended\u0027) representing suspend and hibernation operations for bus\ntypes, device classes, device types and device drivers.\n\nModify the PM core to use \u0027struct pm_ops\u0027 and \u0027struct pm_ext_ops\u0027\nobjects, if defined, instead of the -\u003esuspend(), -\u003eresume(),\n-\u003esuspend_late(), and -\u003eresume_early() callbacks (the old callbacks\nwill be considered as legacy and gradually phased out).\n\nThe main purpose of doing this is to separate suspend (aka S2RAM and\nstandby) callbacks from hibernation callbacks in such a way that the\nnew callbacks won\u0027t take arguments and the semantics of each of them\nwill be clearly specified.  This has been requested for multiple\ntimes by many people, including Linus himself, and the reason is that\nwithin the current scheme if -\u003eresume() is called, for example, it\u0027s\ndifficult to say why it\u0027s been called (ie. is it a resume from RAM or\nfrom hibernation or a suspend/hibernation failure etc.?).\n\nThe second purpose is to make the suspend/hibernation callbacks more\nflexible so that device drivers can handle more than they can within\nthe current scheme.  For example, some drivers may need to prevent\nnew children of the device from being registered before their\n-\u003esuspend() callbacks are executed or they may want to carry out some\noperations requiring the availability of some other devices, not\ndirectly bound via the parent-child relationship, in order to prepare\nfor the execution of -\u003esuspend(), etc.\n\nUltimately, we\u0027d like to stop using the freezing of tasks for suspend\nand therefore the drivers\u0027 suspend/hibernation code will have to take\ncare of the handling of the user space during suspend/hibernation.\nThat, in turn, would be difficult within the current scheme, without\nthe new -\u003eprepare() and -\u003ecomplete() callbacks.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\n"
    },
    {
      "commit": "3a2d5b700132f35401f1d9e22fe3c2cab02c2549",
      "tree": "ad991428c41aee92a5f78b06bf73430af0e6f7ae",
      "parents": [
        "39273b58a409cd6d65c9732bdca00bacd1626672"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Feb 23 19:13:25 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Feb 23 10:40:04 2008 -0800"
      },
      "message": "PM: Introduce PM_EVENT_HIBERNATE callback state\n\nDuring the last step of hibernation in the \"platform\" mode (with the\nhelp of ACPI) we use the suspend code, including the devices\u0027\n-\u003esuspend() methods, to prepare the system for entering the ACPI S4\nsystem sleep state.\n\nBut at least for some devices the operations performed by the\n-\u003esuspend() callback in that case must be different from its operations\nduring regular suspend.\n\nFor this reason, introduce the new PM event type PM_EVENT_HIBERNATE and\npass it to the device drivers\u0027 -\u003esuspend() methods during the last phase\nof hibernation, so that they can distinguish this case and handle it as\nappropriate.  Modify the drivers that handle PM_EVENT_SUSPEND in a\nspecial way and need to handle PM_EVENT_HIBERNATE in the same way.\n\nThese changes are necessary to fix a hibernation regression related\nto the i915 driver (ref. http://lkml.org/lkml/2008/2/22/488).\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nTested-by: Jeff Chua \u003cjeff.chua.linux@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "47a460d5a307e639d6c9cdf9bb4857e2f5f3cb76",
      "tree": "afdb7f011316551978d301f4a7fcd79f347d8b33",
      "parents": [
        "cbed6c6e0f7a52859fd0207ef3ffcf4bfffdbf95"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Mon Feb 04 22:30:06 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:22 2008 -0800"
      },
      "message": "kernel/power/disk.c: make code static\n\nresume_file[] and create_image() can become static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5a0a2f304612bd63948177fef05987f4bcaddcaf",
      "tree": "17a72bcefbb7806ed5e3627230d6d04fd5f06600",
      "parents": [
        "af258f516b3e4e214121f5d6d53cab32ce0d8010"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Jan 11 01:25:21 2008 +0100"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Feb 01 18:30:59 2008 -0500"
      },
      "message": "Hibernation: Invoke suspend notifications after console switch\n\nFollowing the recent change in the suspend code path, switch consoles before\ncalling PM notifiers during hibernation.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "caea99ef339af8e07cda8d03fa415e4b8820f400",
      "tree": "46b975f61a3409a30fc6a7c15a6db2c7f6d9876b",
      "parents": [
        "60417f5976df029227450b46d7fa6f0e9b1e654c"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Jan 08 00:08:44 2008 +0100"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Feb 01 18:30:58 2008 -0500"
      },
      "message": "Hibernation: Introduce begin() and end() callbacks\n\nIntroduce global hibernation callback .end() and rename global\nhibernation callback .start() to .begin(), in analogy with the\nrecent modifications of the global suspend callbacks.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "23976728a48c3b76d34e17ead19addd52b3a280e",
      "tree": "964eb95ae9dccb179165649c7ea631d96b23bc91",
      "parents": [
        "465d2b477f6a0ffe01242561a93e7bf81d67c776"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Dec 08 02:09:43 2007 +0100"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Feb 01 18:30:55 2008 -0500"
      },
      "message": "Hibernation: Update messages\n\nMake hibernation messages start with one common prefix \"PM: \" and use\nthe word \"hibernation\" in the messages as a synonym of \"suspend to\ndisk\".\n\nTurn some KERN_INFO messages into debug ones.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "9575809c6fc15e7b6bb1932b6104c80a6d4ffdc9",
      "tree": "75cbdf455233325575d5f892aaa0f561fa1a953c",
      "parents": [
        "9628c0ee6a6d9ef06a77ea25932c00817f9e88a0"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Dec 08 02:06:57 2007 +0100"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Feb 01 18:30:55 2008 -0500"
      },
      "message": "Hibernation: Fix comment in disk.c\n\nFix a comment in kernel/power/disk.c so that it doesn\u0027t contain lines\nlonger that 80 characters.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "72df68ca8e006a0107933c4fb13c741a0a48163f",
      "tree": "c6d0d36bffc54989fffcebc8ec1368a47cfa6d65",
      "parents": [
        "2ed43b63285c394cb5e1829c199cc94c7b8233b9"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Dec 08 02:04:21 2007 +0100"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Feb 01 18:30:54 2008 -0500"
      },
      "message": "Hibernation: Move low level resume to disk.c\n\nMove the low level restore code to kernel/power/disk.c , since the\ncorresponding low level hibernation code is already there.\n\nMake restore fail if device_power_down(PMSG_PRETHAW) returns an\nerror.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "4cc79776c9ea431790e04fcacbebb30d28eb1570",
      "tree": "42eb5b8c5f2a2d1fcfb1dae8fa77ad70be209cbb",
      "parents": [
        "039a75c6e17ba4ff76998d6ac6ee3d508fff1930"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Nov 19 23:42:31 2007 +0100"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Feb 01 18:30:54 2008 -0500"
      },
      "message": "Hibernation: New testing facility (rev. 2)\n\nMake it possible to test the hibernation core code with the help of the\n/sys/power/pm_test attribute introduced for suspend testing in the previous\npatch.\n\nWriting an appropriate string to this file causes the hibernation code to work\nin one of the test modes defined as follows:\n\nfreezer\n- test the freezing of processes\n\ndevices\n- test the freezing of processes and suspending of devices\n\nplatform\n- test the freezing of processes, suspending of devices and platform global\n  control methods(*)\n\nprocessors\n- test the freezing of processes, suspending of devices, platform global\n  control methods(*) and the disabling of nonboot CPUs\n\ncore\n- test the freezing of processes, suspending of devices, platform global\n  control methods(*), the disabling of nonboot CPUs and suspending of\n  platform/system devices\n\n(*) - the platform global control methods are only available on ACPI systems\n      and are only tested if the hibernation mode is set to \"platform\"\n\nThen, if a hibernation is started by normal means, the hibernation core will\nperform its normal operations up to the point indicated by given test level.\nNext, it will wait for 5 seconds and carry out the resume operations needed to\ntransition the system back to the fully functional state.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "c3e94d899c864e558f938f9845ddb8c2e5d5ccd0",
      "tree": "cdc2d5007e2d8053ab1903f9e66c46dca9a9de81",
      "parents": [
        "2f8ed1c60b06b797bf79a1dc540f0bed8c9d75a0"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Mon Nov 19 23:38:25 2007 +0100"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Feb 01 18:30:53 2008 -0500"
      },
      "message": "Hibernation: Add PM_RESTORE_PREPARE and PM_POST_RESTORE notifiers (rev. 2)\n\nAdd PM_RESTORE_PREPARE and PM_POST_RESTORE notifiers to the PM core, to be used\nin analogy with the existing PM_HIBERNATION_PREPARE and PM_POST_HIBERNATION\nnotifiers.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "d76e15fb20eeb7632ef38876a884fe3508b2c01d",
      "tree": "5f3d63e70d8ac2365ee0c3f6b0489c8377ec1cd0",
      "parents": [
        "37b0c020343080241984d978981d6caf877b278a"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Nov 27 11:28:26 2007 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jan 24 20:40:25 2008 -0800"
      },
      "message": "driver core: make /sys/power a kobject\n\n/sys/power should not be a kset, that\u0027s overkill.  This patch renames it\nto power_kset and fixes up all usages of it in the tree.\n\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "386f275f5d097758f867bc99ddeaeb7a03b6b190",
      "tree": "bd27130e78e1aad1ce080f8c8ca76b9166b33ed4",
      "parents": [
        "23b5212cc7422f475b82124334b64277b5b43013"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Fri Nov 02 13:47:53 2007 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jan 24 20:40:18 2008 -0800"
      },
      "message": "Driver Core: switch all dynamic ksets to kobj_sysfs_ops\n\nSwitch all dynamically created ksets, that export simple attributes,\nto kobj_attribute from subsys_attribute. Struct subsys_attribute will\nbe removed.\n\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nCc: Mike Halcrow \u003cmhalcrow@us.ibm.com\u003e\nCc: Phillip Hellewell \u003cphillip@hellewell.homeip.net\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "039a5dcd2fc45188a2d522df630db4f7ef903a0f",
      "tree": "dbadc8ef13f00f90acf3c9caad8a3834a34f6ce9",
      "parents": [
        "7405c1e15edfe43b137bfbc5882f1af34d6d414d"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Nov 01 10:39:50 2007 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jan 24 20:40:16 2008 -0800"
      },
      "message": "kset: convert /sys/power to use kset_create\n\nDynamically create the kset instead of declaring it statically.  We also\nrename power_subsys to power_kset to catch all users of the variable and\nwe properly export it so that people don\u0027t have to guess that it really\nis present in the system.\n\nThe pseries code is wierd, why is it createing /sys/power if CONFIG_PM\nis disabled?  Oh well, stupid big boxes ignoring config options...\n\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "60a0d23386eab0559ad32ae50b200cc58545f327",
      "tree": "e80067693fe0600ae8cbb0b550b84ab22f43c4fe",
      "parents": [
        "c642b8391cf8efc3622cc97329a0f46e7cbb70b8"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Wed Nov 14 17:00:16 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Nov 14 18:45:43 2007 -0800"
      },
      "message": "hibernate: fix lockdep report\n\nLockdep reports a circular locking dependency in the hibernate code\nbecause\n - during system boot hibernate code (from an initcall) locks pm_mutex\n   and then a sysfs buffer mutex via name_to_dev_t\n - during regular operation hibernate code locks pm_mutex under a\n   sysfs buffer mutex because it\u0027s called from sysfs methods.\n\nThe deadlock can never happen because during initcall invocation nothing\ncan write to sysfs yet. This removes the lockdep report by marking the\ninitcall locking as being in a different class.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9cd9a0058dd35268b24fa16795a92c800f4086d4",
      "tree": "2525a95542eaa16a9aea865e8078cf66f3274e18",
      "parents": [
        "c7e0831d385d620a58d95b25e4afa9b643f9a411"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Oct 18 03:04:56 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Oct 18 14:37:20 2007 -0700"
      },
      "message": "Hibernation: Enter platform hibernation state in a consistent way\n\nMake hibernation_platform_enter() execute the enter-a-sleep-state sequence\ninstead of the mixed shutdown-with-entering-S4 thing.\n\nReplace the shutting down of devices done by kernel_shutdown_prepare(), before\nentering the ACPI S4 sleep state, with suspending them and the shutting down\nof sysdevs with calling device_power_down(PMSG_SUSPEND) (just like before\nentering S1 or S3, but the target state is now S4).   Also, disable the\nnonboot CPUs before entering the sleep state (S4), which generally always is a\ngood idea.\n\nThis is known to fix the \"double disk spin down during hibernation\" on some\nmachines, eg.  HPC nx6325 (ref.  http://lkml.org/lkml/2007/8/7/316 and the\nfollowing thread).   Moreover, it has been reported to make\n/sys/class/rtc/rtc0/wakealarm work correctly with hibernation for some users.\nIt also generally causes the hibernation state (ACPI S4) to be entered faster.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c7e0831d385d620a58d95b25e4afa9b643f9a411",
      "tree": "d3dde7c47276aeb6fad0a1f25fa6b74cc5dacfc1",
      "parents": [
        "efa4d2fb047b25a6be67fe92178a2a78da6b3f6a"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Oct 18 03:04:55 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Oct 18 14:37:20 2007 -0700"
      },
      "message": "Hibernation: Check if ACPI is enabled during restore in the right place\n\nThe following scenario leads to total confusion of the platform firmware on\nsome boxes (eg. HPC nx6325):\n* Hibernate with ACPI enabled\n* Resume passing \"acpi\u003doff\" to the boot kernel\n\nTo prevent this from happening it\u0027s necessary to check if ACPI is enabled (and\nenable it if that\u0027s not the case) _right_ _after_ control has been transfered\nfrom the boot kernel to the image kernel, before device_power_up() is called\n(ie.  with interrupts disabled).   Enabling ACPI after calling\ndevice_power_up() turns out to be insufficient.\n\nFor this reason, introduce new hibernation callback -\u003eleave() that will be\nexecuted before device_power_up() by the restored image kernel.   To make it\nwork, it also is necessary to move swsusp_suspend() from swsusp.c to disk.c\n(it\u0027s name is changed to \"create_image\", which is more up to the point).\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "232b14328050a4639130b0dec185f43968e72035",
      "tree": "eb3b525278bd3efd5403bc4f5cfb3e41614d40c4",
      "parents": [
        "2776365370b579afc36cff14dc70a567b66f0378"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Oct 18 03:04:44 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Oct 18 14:37:18 2007 -0700"
      },
      "message": "freezer: do not sync filesystems from freeze_processes\n\nThe syncing of filesystems from within the freezer is generally not needed.\nAlso, if there\u0027s an ext3 filesystem loopback-mounted from a FUSE one, the\nsyncing results in writes to it and deadlocks.  Similarly, it will deadlock if\nFUSE implements sync.\n\nChange freeze_processes() so that it doesn\u0027t execute sys_sync() and make the\nsuspend and hibernation code path sync filesystems independently of the\nfreezer.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Nigel Cunningham \u003cnigel@nigel.suspend2.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b3dac3b304bdfbb06e92b0d4bba9ecab006795e6",
      "tree": "850b1162febb536b2ae31d1ff10378057322aa7a",
      "parents": [
        "74f270af0c1ed5b9d4413784256959dcfe3593ce"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Oct 18 03:04:43 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Oct 18 14:37:18 2007 -0700"
      },
      "message": "PM: Rename hibernation_ops to platform_hibernation_ops\n\nRename \u0027struct hibernation_ops\u0027 to \u0027struct platform_hibernation_ops\u0027 in\nanalogy with \u0027struct platform_suspend_ops\u0027.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Len Brown \u003clenb@kernel.org\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "74f270af0c1ed5b9d4413784256959dcfe3593ce",
      "tree": "5b74248167be086b0050a84f9ebe072bbb43fdb3",
      "parents": [
        "f242d9196fd1ef4e6bf0e50d2e7f32866fb145c2"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Oct 18 03:04:42 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Oct 18 14:37:18 2007 -0700"
      },
      "message": "PM: Rework struct hibernation_ops\n\nDuring hibernation we also need to tell the ACPI core that we\u0027re going to put\nthe system into the S4 sleep state.  For this reason, an additional method in\n\u0027struct hibernation_ops\u0027 is needed, playing the role of set_target() in\n\u0027struct platform_suspend_operations\u0027.  Moreover, the role of the .prepare()\nmethod is now different, so it\u0027s better to introduce another method, that in\ngeneral may be different from .prepare(), that will be used to prepare the\nplatform for creating the hibernation image (.prepare() is used anyway to\nnotify the platform that we\u0027re going to enter the low power state after the\nimage has been saved).\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "58b3b71dfaaecbf7cff1fe10c049d663f0313e5f",
      "tree": "38f34ce39e1c93d6d54730ead4e414a5070e3b45",
      "parents": [
        "602033ed5907a59ce86f709082a35be047743a86"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jul 26 16:29:55 2007 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 26 12:13:06 2007 -0700"
      },
      "message": "Fix ThinkPad T42 poweroff failure introduced by by \"PM: Introduce pm_power_off_prepare\"\n\nCommit bd804eba1c8597cbb7cd5a5f9fe886aae16a079a (\"PM: Introduce\npm_power_off_prepare\") caused problems in the poweroff path, as reported by\nYOSHIFUJI Hideaki / 吉藤英明.\n\nGenerally, sysdev_shutdown() should be called after the ACPI preparation for\npowering the system off.  To make it happen, we can separate sysdev_shutdown()\nfrom device_shutdown() and call it directly wherever necessary.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nTested-by: YOSHIFUJI Hideaki / 吉藤英明 \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b10d911749d37dccfa5873d2088aea3f074b9e45",
      "tree": "56bd0ccb2861d7ae562d4e48a737727628358b42",
      "parents": [
        "c2cf7d87d804c66e063829d5ca739053e901dc15"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jul 19 01:47:36 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:42 2007 -0700"
      },
      "message": "PM: introduce hibernation and suspend notifiers\n\nMake it possible to register hibernation and suspend notifiers, so that\nsubsystems can perform hibernation-related or suspend-related operations that\nshould not be carried out by device drivers\u0027 .suspend() and .resume()\nroutines.\n\n[akpm@linux-foundation.org: build fixes]\n[akpm@linux-foundation.org: cleanups]\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Nigel Cunningham \u003cnigel@nigel.suspend2.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b1457bcc3a00a0446c7f6e2f22fd24b6d8d0a309",
      "tree": "57b25b23e861ce5d0aa4e0ddc0a69ed405ae4701",
      "parents": [
        "10a1803d667e209914eaada9b95525252f23ec78"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jul 19 01:47:31 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:42 2007 -0700"
      },
      "message": "Hibernation: prepare to enter the low power state\n\nDuring hibernation we call hibernation_ops-\u003eprepare() before creating the image,\nbut then, before saving it, we cancel the power transition by calling\nhibernation_ops-\u003efinish().  Thus prior to calling hibernation_ops-\u003eenter() we\nshould let the platform firmware know that we\u0027re going to enter the low power\nstate after all.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Nigel Cunningham \u003cnigel@nigel.suspend2.net\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "10a1803d667e209914eaada9b95525252f23ec78",
      "tree": "0969e95d7f55d62aa8a5a3a0dd616fe4e151323e",
      "parents": [
        "a634cc10164d1c229fbeca33923e6a0ed939e894"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jul 19 01:47:31 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:42 2007 -0700"
      },
      "message": "swsusp: fix hibernation code ordering\n\nChange the code ordering so that hibernation_ops-\u003eprepare() is called after\ndevice_suspend().  This is needed so that we don\u0027t violate the ACPI\nspecification, which states that the _PTS and _GTS system-control methods,\nexecuted from acpi_sleep_prepare(), ought to be called after devices have been\nput in low power states.\n\nThe \"Finish\" label in hibernation_restore() is moved, because device_suspend()\nresumes devices if the suspending of them fails and the restore code ordering\nshould reflect the hibernation code ordering.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Nigel Cunningham \u003cnigel@nigel.suspend2.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "a634cc10164d1c229fbeca33923e6a0ed939e894"
}
