)]}'
{
  "log": [
    {
      "commit": "9f8f2172537de7af0b0fbd33502d18d52b1339bc",
      "tree": "273c86583ed0295059c5526d3bd6927520a20add",
      "parents": [
        "e2848a0efedef4dad52d1334d37f8719cd6268fd"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Feb 04 22:29:11 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:17 2008 -0800"
      },
      "message": "Page allocator: clean up pcp draining functions\n\n- Add comments explaing how drain_pages() works.\n\n- Eliminate useless functions\n\n- Rename drain_all_local_pages to drain_all_pages(). It does drain\n  all pages not only those of the local processor.\n\n- Eliminate useless interrupt off / on sequences. drain_pages()\n  disables interrupts on its own. The execution thread is\n  pinned to processor by the caller. So there is no need to\n  disable interrupts.\n\n- Put drain_all_pages() declaration in gfp.h and remove the\n  declarations from suspend.h and from mm/memory_hotplug.c\n\n- Make software suspend call drain_all_pages(). The draining\n  of processor local pages is may not the right approach if\n  software suspend wants to support SMP. If they call drain_all_pages\n  then we can make drain_pages() static.\n\n[akpm@linux-foundation.org: fix build]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Daniel Walker \u003cdwalker@mvista.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\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": "c697eecebc6cfc0b393afea3c4ff1a5041526ad1",
      "tree": "36b0cb4e667792212c2b5d05ac212662555d1682",
      "parents": [
        "7671b8ae5381a504d4c4ef8dd9c47128c2c3fd7e"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Jan 08 00:04:17 2008 +0100"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Feb 01 18:30:56 2008 -0500"
      },
      "message": "Suspend: Introduce begin() and end() callbacks\n\nOn ACPI systems the target state set by acpi_pm_set_target() is\nreset by acpi_pm_finish(), but that need not be called if the\nsuspend fails.  All platforms that use the .set_target() global\nsuspend callback are affected by analogous issues.\n\nFor this reason, we need an additional global suspend callback that\nwill reset the target state regardless of whether or not the suspend\nis successful.  Also, it is reasonable to rename the .set_target()\ncallback, since it will be used for a different purpose on ACPI\nsystems (due to ACPI 1.0x code ordering requirements).\n\nIntroduce the global suspend callback .end() to be executed at the\nend of the suspend sequence and rename the .set_target() global\nsuspend callback to .begin().\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "825257569350e913bee3bc918508c0aa6e3398cd",
      "tree": "2d016a04dfc09938565d5e932f0d2d5e43fb6bdd",
      "parents": [
        "90dda1cb6ace6abd777f84bf051c4f86fa58986a"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Mon Nov 19 23:49:18 2007 +0100"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Feb 01 18:30:54 2008 -0500"
      },
      "message": "PM: Convert PM notifiers to out-of-line code\n\nThis patch (as1008b) converts the PM notifier routines from inline\ncalls to out-of-line code.  It also prevents pm_chain_head from\nbeing created when CONFIG_PM_SLEEP isn\u0027t enabled, and EXPORTs the\nnotifier registration and unregistration routines.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "cae4595764cb3b08f6517e99bac1e3862854b1a1",
      "tree": "7abb47b9e81fa4bcde3b6a0b98f87c5f88b5722a",
      "parents": [
        "3e7622f9d7807a0a826d042cafc211cd1a29448c"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "jbeulich@novell.com",
        "time": "Wed Jan 30 13:31:23 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:31:23 2008 +0100"
      },
      "message": "x86: make __{save,restore}_processor_state static\n\n.. allowing to remove their declarations from a global include file\n(the symbols don\u0027t exist for anything but x86).\n\nLikewise for 64-bits\u0027 fix_processor_context(), just that that one was\nproperly declared in an arch-specific header.\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\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": "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": "f242d9196fd1ef4e6bf0e50d2e7f32866fb145c2",
      "tree": "f611d44e54e7633ff1d94169cf83485472127e08",
      "parents": [
        "e6c5eb9541f2197a3ffab90b1c7a3250a9b51bf6"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Oct 18 03:04:41 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Oct 18 14:37:18 2007 -0700"
      },
      "message": "PM: Make suspend_ops static\n\nThe variable suspend_ops representing the set of global platform-specific\nsuspend-related operations, used by the PM core, need not be exported outside\nof kernel/power/main.c .   Make it static.\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": "e6c5eb9541f2197a3ffab90b1c7a3250a9b51bf6",
      "tree": "ac227415da22d4345f8e72a6a8e781757b6ce85a",
      "parents": [
        "26398a70ea35f153feb799fa850c71685667712b"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Oct 18 03:04:41 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 platform_suspend_ops\n\nThere is no reason why the .prepare() and .finish() methods in \u0027struct\nplatform_suspend_ops\u0027 should take any arguments, since architectures don\u0027t use\nthese methods\u0027 argument in any practically meaningful way (ie.  either the\ntarget system sleep state is conveyed to the platform by .set_target(), or\nthere is only one suspend state supported and it is indicated to the PM core\nby .valid(), or .prepare() and .finish() aren\u0027t defined at all).   There also\nis no reason why .finish() should return any result.\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": "26398a70ea35f153feb799fa850c71685667712b",
      "tree": "e75959ef010bf3521bce2a33e59565c34b0c109d",
      "parents": [
        "95d9ffbe01fb21d524c86bf77871255066bc6e55"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Oct 18 03:04:40 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Oct 18 14:37:18 2007 -0700"
      },
      "message": "PM: Rename struct pm_ops and related things\n\nThe name of \u0027struct pm_ops\u0027 suggests that it is related to the power\nmanagement in general, but in fact it is only related to suspend.   Moreover,\nits name should indicate what this structure is used for, so it seems\nreasonable to change it to \u0027struct platform_suspend_ops\u0027.   In that case, the\nname of the global variable of this type used by the PM core and the names of\nrelated functions should be changed accordingly.\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": "95d9ffbe01fb21d524c86bf77871255066bc6e55",
      "tree": "647355f56f85b1038ffc81fa50ff2c3878ab6597",
      "parents": [
        "a065c86e1bfcdd36709025d018965afea3f3a2b6"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Oct 18 03:04:39 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Oct 18 14:37:18 2007 -0700"
      },
      "message": "PM: Move definition of struct pm_ops to suspend.h\n\nMove the definition of \u0027struct pm_ops\u0027 and related functions from \u003clinux/pm.h\u003e\nto \u003clinux/suspend.h\u003e .\n\nThere are, at least, the following reasons to do that:\n* \u0027struct pm_ops\u0027 is specifically related to suspend and not to the power\n  management in general.\n* As long as \u0027struct pm_ops\u0027 is defined in \u003clinux/pm.h\u003e, any modification of it\n  causes the entire kernel to be recompiled, which is unnecessary and annoying.\n* Some suspend-related features are already defined in \u003clinux/suspend.h\u003e, so it\n  is logical to move the definition of \u0027struct pm_ops\u0027 into there.\n* \u0027struct hibernation_ops\u0027, being the hibernation-related counterpart of\n  \u0027struct pm_ops\u0027, is defined in \u003clinux/suspend.h\u003e .\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": "296699de6bdc717189a331ab6bbe90e05c94db06",
      "tree": "53c847ecc8cce11952502921844052e44ca60d5e",
      "parents": [
        "b0cb1a19d05b8ea8611a9ef48a17fe417f1832e6"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Jul 29 23:27:18 2007 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Jul 29 16:45:38 2007 -0700"
      },
      "message": "Introduce CONFIG_SUSPEND for suspend-to-Ram and standby\n\nIntroduce CONFIG_SUSPEND representing the ability to enter system sleep\nstates, such as the ACPI S3 state, and allow the user to choose SUSPEND\nand HIBERNATION independently of each other.\n\nMake HOTPLUG_CPU be selected automatically if SUSPEND or HIBERNATION has\nbeen chosen and the kernel is intended for SMP systems.\n\nAlso, introduce CONFIG_PM_SLEEP which is automatically selected if\nCONFIG_SUSPEND or CONFIG_HIBERNATION is set and use it to select the\ncode needed for both suspend and hibernation.\n\nThe top-level power management headers and the ACPI code related to\nsuspend and hibernation are modified to use the new definitions (the\nchanges in drivers/acpi/sleep/main.c are, mostly, moving code to reduce\nthe number of ifdefs).\n\nThere are many other files in which CONFIG_PM can be replaced with\nCONFIG_PM_SLEEP or even with CONFIG_SUSPEND, but they can be updated in\nthe future.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b0cb1a19d05b8ea8611a9ef48a17fe417f1832e6",
      "tree": "895fe53e8dc4fc59d05b963ac079f6ff759ad0fb",
      "parents": [
        "6c8dca5d53f95009d4fff00195bf38f277dc4366"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Jul 29 23:24:36 2007 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Jul 29 16:45:38 2007 -0700"
      },
      "message": "Replace CONFIG_SOFTWARE_SUSPEND with CONFIG_HIBERNATION\n\nReplace CONFIG_SOFTWARE_SUSPEND with CONFIG_HIBERNATION to avoid\nconfusion (among other things, with CONFIG_SUSPEND introduced in the\nnext patch).\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "70f38db60cc5c8c6c3a95f0d2e6360272d6014a3",
      "tree": "4eb323efe7e056fa074a1c461d5ae89dee19b504",
      "parents": [
        "415ad26d8c8665a0fcfc18552daf411a9bc1a41e"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Thu Jul 26 10:40:59 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 26 11:35:16 2007 -0700"
      },
      "message": "PM: fix compiler error of PPC dart_iommu\n\nA dummy inline function of register_nosave_region_late was accidentally\nremoved by the recent PM patch that introduced suspend notifiers.\nThis elimination causes the following compiler error on PPC machines.\n\n  CC      arch/powerpc/sysdev/dart_iommu.o\narch/powerpc/sysdev/dart_iommu.c: In function \u0027iommu_init_late_dart\u0027:\narch/powerpc/sysdev/dart_iommu.c:376: error: implicit declaration of function\n\u0027register_nosave_region_late\u0027\nmake[1]: *** [arch/powerpc/sysdev/dart_iommu.o] Error 1\nmake: *** [arch/powerpc/sysdev] Error 2\n\nThis patch fixes the problem.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\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": "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": "a634cc10164d1c229fbeca33923e6a0ed939e894",
      "tree": "a2cdc5403127ca71b2cf378feb86d46745022ac1",
      "parents": [
        "7777fab989b5d006903188c966058ebcd2d6342a"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jul 19 01:47:30 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:42 2007 -0700"
      },
      "message": "swsusp: introduce restore platform operations\n\nAt least on some machines it is necessary to prepare the ACPI firmware for the\nrestoration of the system memory state from the hibernation image if the\n\"platform\" mode of hibernation has been used.  Namely, in that cases we need\nto disable the GPEs before replacing the \"boot\" kernel with the \"frozen\"\nkernel (cf.  http://bugzilla.kernel.org/show_bug.cgi?id\u003d7887).  After the\nrestore they will be re-enabled by hibernation_ops-\u003efinish(), but if the\nrestore fails, they have to be re-enabled by the restore code explicitly.\n\nFor this purpose we can introduce two additional hibernation operations,\ncalled pre_restore() and restore_cleanup() and call them from the restore code\npath.  Still, they should be called if the \"platform\" mode of hibernation has\nbeen used, so we need to pass the information about the hibernation mode from\nthe \"frozen\" kernel to the \"boot\" kernel in the image header.\n\nApparently, we can\u0027t drop the disabling of GPEs before the restore because of\nBug #7887 .   We also can\u0027t do it unconditionally, because the GPEs wouldn\u0027t\nhave been enabled after a successful restore if the suspend had been done in\nthe \u0027shutdown\u0027 or \u0027reboot\u0027 mode.\n\nIn principle we could (and probably should) unconditionally disable the GPEs\nbefore each snapshot creation *and* before the restore, but then we\u0027d have to\nunconditionally enable them after the snapshot creation as well as after the\nrestore (or restore failure)   Still, for this purpose we\u0027d need to modify\nacpi_enter_sleep_state_prep() and acpi_leave_sleep_state() and we\u0027d have to\nintroduce some mechanism synchronizing the disablind/enabling of the GPEs with\nthe device drivers\u0027 .suspend()/.resume() routines and with\ndisable_/enable_nonboot_cpus().   However, this would have affected the\nsuspend (ie.  s2ram) code as well as the hibernation, which I\u0027d like to avoid\nin this patch series.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Nigel Cunningham \u003cnigel@nigel.suspend2.net\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": "aabded9c3aab5160ae2ca3dd1fa0fa37f3d510e4",
      "tree": "8544d546735bcb975b8dec296eb9b6dc6531fb2a",
      "parents": [
        "9a9136e270af14da506f66bcafcc506b86a86498",
        "f1a1eb299a8422c3e8d41753095bec44b2493398"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:56:01 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:56:01 2007 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc\n\n* \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc:\n  [POWERPC] Further fixes for the removal of 4level-fixup hack from ppc32\n  [POWERPC] EEH: log all PCI-X and PCI-E AER registers\n  [POWERPC] EEH: capture and log pci state on error\n  [POWERPC] EEH: Split up long error msg\n  [POWERPC] EEH: log error only after driver notification.\n  [POWERPC] fsl_soc: Make mac_addr const in fs_enet_of_init().\n  [POWERPC] Don\u0027t use SLAB/SLUB for PTE pages\n  [POWERPC] Spufs support for 64K LS mappings on 4K kernels\n  [POWERPC] Add ability to 4K kernel to hash in 64K pages\n  [POWERPC] Introduce address space \"slices\"\n  [POWERPC] Small fixes \u0026 cleanups in segment page size demotion\n  [POWERPC] iSeries: Make HVC_ISERIES the default\n  [POWERPC] iSeries: suppress build warning in lparmap.c\n  [POWERPC] Mark pages that don\u0027t exist as nosave\n  [POWERPC] swsusp: Introduce register_nosave_region_late\n"
    },
    {
      "commit": "a3d25c275d383975504dc53c25b691df59bd3c48",
      "tree": "161a2ae12a20a630c2f639e144872db2b92eb098",
      "parents": [
        "d60846c4d16f9518b098b905af2b87cb6bf6dc42"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed May 09 02:33:18 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:48 2007 -0700"
      },
      "message": "PM: Separate hibernation code from suspend code\n\n[ With Johannes Berg \u003cjohannes@sipsolutions.net\u003e ]\n\nSeparate the hibernation (aka suspend to disk code) from the other suspend\ncode.  In particular:\n\n * Remove the definitions related to hibernation from include/linux/pm.h\n * Introduce struct hibernation_ops and a new hibernate() function to hibernate\n   the system, defined in include/linux/suspend.h\n * Separate suspend code in kernel/power/main.c from hibernation-related code\n   in kernel/power/disk.c and kernel/power/user.c (with the help of\n   hibernation_ops)\n * Switch ACPI (the only user of pm_ops.pm_disk_mode) to hibernation_ops\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: 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": "940d67f6b95166475ff6e600ef7658e1cd441278",
      "tree": "390f7e30228ae2f22d0009831f80fb909df1e177",
      "parents": [
        "de372ecd80a42c4fb485c7232475301a18d05184"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Tue May 08 19:23:49 2007 +1000"
      },
      "committer": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Wed May 09 16:34:56 2007 +1000"
      },
      "message": "[POWERPC] swsusp: Introduce register_nosave_region_late\n\nThis patch introduces a new register_nosave_region_late function that\ncan be called from initcalls when register_nosave_region can no longer\nbe used because it uses bootmem.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nAcked-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\n"
    },
    {
      "commit": "02bbc0f09c90cefdb2837605c96a66c5ce4ba2e1",
      "tree": "04ef573cd4de095c500c9fc3477f4278c0b36300",
      "parents": [
        "7487a2245b8841c77ba9db406cf99a483b9334e9",
        "5b94f675f57e4ff16c8fda09088d7480a84dcd91"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Tue May 08 13:37:51 2007 +1000"
      },
      "committer": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Tue May 08 13:37:51 2007 +1000"
      },
      "message": "Merge branch \u0027linux-2.6\u0027\n"
    },
    {
      "commit": "56f99bcb52d64d70078b41cc176dd8b6f5763108",
      "tree": "4383e31e46975ae1c1f6c7833bed0766f762f6d5",
      "parents": [
        "9b95e43763cfdfebc1318d27e55712e7b6bfe098"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun May 06 14:50:52 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:59 2007 -0700"
      },
      "message": "swsusp: free more memory\n\nMove the definition of PAGES_FOR_IO to kernel/power/power.h and introduce\nSPARE_PAGES representing the number of pages that should be freed by the\nswsusp\u0027s memory shrinker in addition to PAGES_FOR_IO so that device drivers\ncan allocate some memory (up to 1 MB total) in their .suspend() routines\nwithout causing the suspend to fail.\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": "ab3bfca7abf3fd0fe41d26d839610a787aa7e587",
      "tree": "e62e58beaf9d22d4156b27d4523c3728bf5769bc",
      "parents": [
        "b1296cc48b39355241470ef934a5e2270e3f23bd"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Sun May 06 14:50:49 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:59 2007 -0700"
      },
      "message": "remove software_suspend()\n\nRemove software_suspend() and all its users since\npm_suspend(PM_SUSPEND_DISK) should be equivalent and there\u0027s no point in\nhaving two interfaces for the same thing.\n\nThe patch also changes the valid_state function to return 0 (false) for\nPM_SUSPEND_DISK when SOFTWARE_SUSPEND is not configured instead of\naccepting it and having the whole thing fail later.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nAcked-by: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\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": "74dfd666de861c97d47bdbd892f6d21b801d0247",
      "tree": "7200946212cf546f4e5fac31db3dc97dbb144300",
      "parents": [
        "7be9823491ecbaf9700d7d3502cb4b4dd0ed868a"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun May 06 14:50:43 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:59 2007 -0700"
      },
      "message": "swsusp: do not use page flags\n\nMake swsusp use memory bitmaps instead of page flags for marking \u0027nosave\u0027 and\nfree pages.  This allows us to \u0027recycle\u0027 two page flags that can be used for\nother purposes.  Also, the memory needed to store the bitmaps is allocated\nwhen necessary (ie.  before the suspend) and freed after the resume which is\nmore reasonable.\n\nThe patch is designed to minimize the amount of changes and there are some\nnice simplifications and optimizations possible on top of it.  I am going to\nimplement them separately in the future.\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": "7be9823491ecbaf9700d7d3502cb4b4dd0ed868a",
      "tree": "10f606c59837d851376823dae5d8faf50a51bde8",
      "parents": [
        "433ecb4ab312f873870b67ee374502e84f6dcf92"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun May 06 14:50:42 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:58 2007 -0700"
      },
      "message": "swsusp: use inline functions for changing page flags\n\nReplace direct invocations of SetPageNosave(), SetPageNosaveFree() etc.  with\ncalls to inline functions that can be changed in subsequent patches without\nmodifying the code calling them.\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": "543b9fd3528f64c4b20439de0edb453764482de7",
      "tree": "50271e7d5365b088bea63a5a2938aedf3aa87741",
      "parents": [
        "7e11580b362fc64693de7ad5c11fbf3d1d9d0e50"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Thu May 03 22:31:38 2007 +1000"
      },
      "committer": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Mon May 07 20:31:14 2007 +1000"
      },
      "message": "[POWERPC] powermac: Suspend to disk on G5\n\nPowermac G5 suspend to disk implementation.  The code is platform\nagnostic but only tested on powermac, no other 64-bit powerpc\nmachines.\n\nBecause nvidiafb still breaks suspend I have marked it EXPERIMENTAL on\npowermac and because I can\u0027t test it and some lowlevel code will need\nchanges it is BROKEN on all other 64-bit platforms.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nAcked-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\n"
    },
    {
      "commit": "8357376d3df21b7d6f857931a57ac50da9c66e26",
      "tree": "daf2c369e9b79d24c1666323b3ae75189e482a4a",
      "parents": [
        "bf73bae6ba0dc4bd4f1e570feb34a06b72725af6"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Dec 06 20:34:18 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:27 2006 -0800"
      },
      "message": "[PATCH] swsusp: Improve handling of highmem\n\nCurrently swsusp saves the contents of highmem pages by copying them to the\nnormal zone which is quite inefficient (eg.  it requires two normal pages\nto be used for saving one highmem page).  This may be improved by using\nhighmem for saving the contents of saveable highmem pages.\n\nNamely, during the suspend phase of the suspend-resume cycle we try to\nallocate as many free highmem pages as there are saveable highmem pages.\nIf there are not enough highmem image pages to store the contents of all of\nthe saveable highmem pages, some of them will be stored in the \"normal\"\nmemory.  Next, we allocate as many free \"normal\" pages as needed to store\nthe (remaining) image data.  We use a memory bitmap to mark the allocated\nfree pages (ie.  highmem as well as \"normal\" image pages).\n\nNow, we use another memory bitmap to mark all of the saveable pages\n(highmem as well as \"normal\") and the contents of the saveable pages are\ncopied into the image pages.  Then, the second bitmap is used to save the\npfns corresponding to the saveable pages and the first one is used to save\ntheir data.\n\nDuring the resume phase the pfns of the pages that were saveable during the\nsuspend are loaded from the image and used to mark the \"unsafe\" page\nframes.  Next, we try to allocate as many free highmem page frames as to\nload all of the image data that had been in the highmem before the suspend\nand we allocate so many free \"normal\" page frames that the total number of\nallocated free pages (highmem and \"normal\") is equal to the size of the\nimage.  While doing this we have to make sure that there will be some extra\nfree \"normal\" and \"safe\" page frames for two lists of PBEs constructed\nlater.\n\nNow, the image data are loaded, if possible, into their \"original\" page\nframes.  The image data that cannot be written into their \"original\" page\nframes are loaded into \"safe\" page frames and their \"original\" kernel\nvirtual addresses, as well as the addresses of the \"safe\" pages containing\ntheir copies, are stored in one of two lists of PBEs.\n\nOne list of PBEs is for the copies of \"normal\" suspend pages (ie.  \"normal\"\npages that were saveable during the suspend) and it is used in the same way\nas previously (ie.  by the architecture-dependent parts of swsusp).  The\nother list of PBEs is for the copies of highmem suspend pages.  The pages\nin this list are restored (in a reversible way) right before the\narch-dependent code is called.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "940864ddabdb180e02041c4dcd46ba6f9eee732f",
      "tree": "cee174e45717dce64f7108a1c74182e691c1c8c2",
      "parents": [
        "b788db79896ef2a5817b9395ad63573b254a6d93"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Sep 25 23:32:55 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:49:02 2006 -0700"
      },
      "message": "[PATCH] swsusp: Use memory bitmaps during resume\n\nMake swsusp use memory bitmaps to store its internal information during the\nresume phase of the suspend-resume cycle.\n\nIf the pfns of saveable pages are saved during the suspend phase instead of\nthe kernel virtual addresses of these pages, we can use them during the resume\nphase directly to set the corresponding bits in a memory bitmap.  Then, this\nbitmap is used to mark the page frames corresponding to the pages that were\nsaveable before the suspend (aka \"unsafe\" page frames).\n\nNext, we allocate as many page frames as needed to store the entire suspend\nimage and make sure that there will be some extra free \"safe\" page frames for\nthe list of PBEs constructed later.  Subsequently, the image is loaded and, if\npossible, the data loaded from it are written into their \"original\" page\nframes (ie.  the ones they had occupied before the suspend).\n\nThe image data that cannot be written into their \"original\" page frames are\nloaded into \"safe\" page frames and their \"original\" kernel virtual addresses,\nas well as the addresses of the \"safe\" pages containing their copies, are\nstored in a list of PBEs.  Finally, the list of PBEs is used to copy the\nremaining image data into their \"original\" page frames (this is done\natomically, by the architecture-dependent parts of swsusp).\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@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "dcbb5a54f6e3984efa24772394f2225b11495c55",
      "tree": "60a3877a9f6b23ae42509773b93256c28329af59",
      "parents": [
        "cd560bb2f9e2cd451bb3942af43da19632ba4a8e"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Sep 25 23:32:51 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:49:00 2006 -0700"
      },
      "message": "[PATCH] swsusp: clean up suspend header\n\nRemove some things that are no longer used or defined elsewhere from suspend.h\nand make the inline version of software_suspend() return the right error code.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e3920fb42c8ddfe63befb54d95c0e13eabacea9b",
      "tree": "08371a71e58e6e9d3ec62dfa6a22b3b5e6ff0fd5",
      "parents": [
        "e8eff5ac294e12531c4195e0c15a222d3c9015e5"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Sep 25 23:32:48 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:59 2006 -0700"
      },
      "message": "[PATCH] Disable CPU hotplug during suspend\n\nThe current suspend code has to be run on one CPU, so we use the CPU\nhotplug to take the non-boot CPUs offline on SMP machines.  However, we\nshould also make sure that these CPUs will not be enabled by someone else\nafter we have disabled them.\n\nThe functions disable_nonboot_cpus() and enable_nonboot_cpus() are moved to\nkernel/cpu.c, because they now refer to some stuff in there that should\nbetter be static.  Also it\u0027s better if disable_nonboot_cpus() returns an\nerror instead of panicking if something goes wrong, and\nenable_nonboot_cpus() has no reason to panic(), because the CPUs may have\nbeen enabled by the userland before it tries to take them online.\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@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3448097fccdce4ea8f0fcad4f37f502a8cd72e68",
      "tree": "583ee97128a9e2657d5bf73def841c460371804a",
      "parents": [
        "5503967307f3fa443f5770a4df5ea4fbe9fb3917"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jun 25 18:41:00 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jun 25 18:41:00 2006 -0700"
      },
      "message": "Revert \"swsusp special saveable pages support\" commits\n\nThis reverts commits\n\n  3e3318dee0878d42ed62a19c292a2ac284135db3 [PATCH] swsusp: x86_64 mark special saveable/unsaveable pages\n  b6370d96e09944c6e3ae8d5743ca8a8ab1f79f6c [PATCH] swsusp: i386 mark special saveable/unsaveable pages\n  ce4ab0012b32c1a4a1d6e934aeb73bf3151c48d9 [PATCH] swsusp: add architecture special saveable pages support\n\nbecause not only do they apparently cause page faults on x86, the\ninfrastructure doesn\u0027t compile on powerpc.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ce4ab0012b32c1a4a1d6e934aeb73bf3151c48d9",
      "tree": "83b5ba44e93eeb8b72fe14028ac25943f77844fe",
      "parents": [
        "82dcaafc92fdfbe2c1d6c50b9f5e17d533caf950"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Fri Jun 23 02:04:44 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:59 2006 -0700"
      },
      "message": "[PATCH] swsusp: add architecture special saveable pages support\n\n1. Add architecture specific pages save/restore support.  Next two patches\n   will use this to save/restore \u0027ACPI NVS\u0027 pages.\n\n2. Allow reserved pages \u0027nosave\u0027.  This could avoid save/restore BIOS\n   reserved pages.\n\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Nigel Cunningham \u003cnigel@suspend2.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "62c4f0a2d5a188f73a94f2cb8ea0dba3e7cf0a7f",
      "tree": "e85ca2d0dd43f90dccf758338764c3caa55f333f",
      "parents": [
        "089f26d5e31b7bf42a9a8fefec08b30cd27f4b0e"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed Apr 26 12:56:16 2006 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed Apr 26 12:56:16 2006 +0100"
      },
      "message": "Don\u0027t include linux/config.h from anywhere else in include/\n\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\n"
    },
    {
      "commit": "46cd2f32baf181b74b16cceb123bab6fe1f61f85",
      "tree": "6f6c7b370e4004c629bb6c6cab3f822951eb9a26",
      "parents": [
        "7b4fe29e00a5ab4e778bb24be86d836a25570bc9"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Feb 07 12:58:50 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Feb 07 16:12:33 2006 -0800"
      },
      "message": "[PATCH] Fix build failure in recent pm_prepare_* changes.\n\nFix compilation problem in PM headers.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c0c1633bdb844ec5b4ac15c97ab8927d80550c42",
      "tree": "8f70444139c8564c0f1e88e1f33adda036ae6a96",
      "parents": [
        "278ff9537030bbb292b33504f5e1f6e0126793eb"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Fri Feb 03 03:03:44 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Feb 03 08:32:00 2006 -0800"
      },
      "message": "[PATCH] Fix build failure in recent pm_prepare_* changes.\n\nkernel/power/power.h:49: error: static declaration of \u0027pm_prepare_console\u0027 follows non-static declaration\ninclude/linux/suspend.h:46: error: previous declaration of \u0027pm_prepare_console\u0027 was here\nkernel/power/power.h:50: error: static declaration of \u0027pm_restore_console\u0027 follows non-static declaration\ninclude/linux/suspend.h:47: error: previous declaration of \u0027pm_restore_console\u0027 was here\n\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "72a97e08394a3b2e75481ff680ec2a0591e3cba4",
      "tree": "d8ba72d6e81ad31ed10876386d3d2067921979e3",
      "parents": [
        "7088a5c00103ef48782d6c359cd12b13a10666e6"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Jan 06 00:13:46 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:40 2006 -0800"
      },
      "message": "[PATCH] swsusp: improve freeing of memory\n\nThis patch makes swsusp free only as much memory as needed to complete the\nsuspend and not as much as possible.   In the most of cases this should speed\nup the suspend and make the system much more responsive after resume,\nespecially if a GUI (eg.  X Windows) is used.\n\nIf needed, the old behavior (ie to free as much memory as possible during\nsuspend) can be restored by unsetting FAST_FREE in power.h\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7088a5c00103ef48782d6c359cd12b13a10666e6",
      "tree": "b731c8af48e00c0ec88bbe57b6b2a2c1ec20fbde",
      "parents": [
        "f2d97f02961e8b1f8a24befb88ab0e5c886586ff"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Jan 06 00:13:05 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:40 2006 -0800"
      },
      "message": "[PATCH] swsusp: introduce the swap map structure\n\nThis patch introduces the swap map structure that can be used by swsusp for\nkeeping tracks of data pages written to the swap.   The structure itself is\ndescribed in a comment within the patch.\n\nThe overall idea is to reduce the amount of metadata written to the swap and\nto write and read the image pages sequentially, in a file-alike way.  This\nmakes the swap-handling part of swsusp fairly independent of its\nsnapshot-handling part and will hopefully allow us to completely separate\nthese two parts in the future.\n\nThis patch is needed to remove the suspend image size limit imposed by the\nlimited size of the swsusp_info structure, which is essential for x86-64\nsystems with more than 512 MB of RAM.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2c1b4a5ca48831595979a850f40ced8e7da026f8",
      "tree": "06fe8a400df8c5166c7f47ca2c30a584473f1170",
      "parents": [
        "a0f496517f3e28d651d0cbbcf2d4fb701ed6957e"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Oct 30 14:59:58 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:14 2005 -0800"
      },
      "message": "[PATCH] swsusp: rework memory freeing on resume\n\nThe following patch makes swsusp use the PG_nosave and PG_nosave_free flags to\nmark pages that should be freed in case of an error during resume.\n\nThis allows us to simplify the code and to use swsusp_free() in all of the\nswsusp\u0027s resume error paths, which makes them actually work.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "25761b6eb7b33823bcfff6bfe2a015badcd76fb8",
      "tree": "a25841a3f4c4cf087ce75c0907c00966f19d339a",
      "parents": [
        "351619baf9878731b4272fa10dda0f84f5582241"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Oct 30 14:59:56 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:14 2005 -0800"
      },
      "message": "[PATCH] swsusp: move snapshot functionality to separate file\n\nThe following patch moves the functionality of swsusp related to creating and\nhandling the snapshot of memory to a separate file, snapshot.c\n\nThis should enable us to untangle the code in the future and eventually to\nimplement some parts of swsusp.c in the user space.\n\nThe patch does not change the code.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Pavel Machek \u003cpavel@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9796fdd829da626374458e8706daedcc0e432ddd",
      "tree": "a0b4af7f45267cdcdfb677c2167906c6ef981b76",
      "parents": [
        "55016f10e31bb15b85d8c500f979dfdceb37d548"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 21 03:22:03 2005 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Oct 28 08:16:49 2005 -0700"
      },
      "message": "[PATCH] gfp_t: kernel/*\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3dd083255ddcfa87751fa8e32f61a9547a15a541",
      "tree": "9767ee9d882e57037d8423ea06205f6f0139bfea",
      "parents": [
        "52a2d3e45e06012a662f627177729d3196ba8903"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Oct 09 21:19:40 2005 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 10 08:36:46 2005 -0700"
      },
      "message": "[PATCH] x86_64: Set up safe page tables during resume\n\nThe following patch makes swsusp avoid the possible temporary corruption\nof page translation tables during resume on x86-64.  This is achieved by\ncreating a copy of the relevant page tables that will not be modified by\nswsusp and can be safely used by it on resume.\n\nThe problem is that during resume on x86-64 swsusp may temporarily\ncorrupt the page tables used for the direct mapping of RAM.  If that\nhappens, a page fault occurs and cannot be handled properly, which leads\nto the solid hang of the affected system.  This leads to the loss of the\nsystem\u0027s state from before suspend and may result in the loss of data or\nthe corruption of filesystems, so it is a serious issue.  Also, it\nappears to happen quite often (for me, as often as 50% of the time).\n\nThe problem is related to the fact that (at least) one of the PMD\nentries used in the direct memory mapping (starting at PAGE_OFFSET)\npoints to a page table the physical address of which is much greater\nthan the physical address of the PMD entry itself.  Moreover,\nunfortunately, the physical address of the page table before suspend\n(i.e.  the one stored in the suspend image) happens to be different to\nthe physical address of the corresponding page table used during resume\n(i.e.  the one that is valid right before swsusp_arch_resume() in\narch/x86_64/kernel/suspend_asm.S is executed).  Thus while the image is\nrestored, the \"offending\" PMD entry gets overwritten, so it does not\npoint to the right physical address any more (i.e.  there\u0027s no page\ntable at the address pointed to by it, because it points to the address\nthe page table has been at during suspend).  Consequently, if the PMD\nentry is used later on, and it _is_ used in the process of copying the\nimage pages, a page fault occurs, but it cannot be handled in the normal\nway and the system hangs.\n\nIn principle we can call create_resume_mapping() from\nswsusp_arch_resume() (ie.  from suspend_asm.S), but then the memory\nallocations in create_resume_mapping(), resume_pud_mapping(), and\nresume_pmd_mapping() must be made carefully so that we use _only_\nNosaveFree pages in them (the other pages are overwritten by the loop in\nswsusp_arch_resume()).  Additionally, we are in atomic context at that\ntime, so we cannot use GFP_KERNEL.  Moreover, if one of the allocations\nfails, we should free all of the allocated pages, so we need to trace\nthem somehow.\n\nAll of this is done in the appended patch, except that the functions\npopulating the page tables are located in arch/x86_64/kernel/suspend.c\nrather than in init.c.  It may be done in a more elegan way in the\nfuture, with the help of some swsusp patches that are in the works now.\n\n[AK: move some externs into headers, renamed a function]\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5a72e04df5470df0ec646029d31e5528167ab1a7",
      "tree": "11be00c3ed3d8bad775e6eec44078c9f942537b9",
      "parents": [
        "fb69c3907ead36b9e9f41ea6f0d0e0ae10a38a47"
      ],
      "author": {
        "name": "Li Shaohua",
        "email": "shaohua.li@intel.com",
        "time": "Sat Jun 25 14:55:06 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Jun 25 16:24:32 2005 -0700"
      },
      "message": "[PATCH] suspend/resume SMP support\n\nUsing CPU hotplug to support suspend/resume SMP.  Both S3 and S4 use\ndisable/enable_nonboot_cpus API.  The S4 part is based on Pavel\u0027s original S4\nSMP patch.\n\nSigned-off-by: Li Shaohua\u003cshaohua.li@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
