)]}'
{
  "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",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e8713d55360ab90d85af0daca3b36bdfbcd430d1",
      "old_mode": 33188,
      "old_path": "include/linux/gfp.h",
      "new_id": "f54adfcbec9c9ea1e8a44003bcf880f4ce8fe9cd",
      "new_mode": 33188,
      "new_path": "include/linux/gfp.h"
    },
    {
      "type": "modify",
      "old_id": "657272e91d0a0af648a892fd64ca2111a100dfb4",
      "old_mode": 33188,
      "old_path": "kernel/power/hibernate.c",
      "new_id": "048d0b5148319db70883ee0c9963459c22048385",
      "new_mode": 33188,
      "new_path": "kernel/power/hibernate.c"
    },
    {
      "type": "modify",
      "old_id": "7335952ee473956e6a1e7b57f3d397220e6c5536",
      "old_mode": 33188,
      "old_path": "kernel/power/suspend.c",
      "new_id": "ecf770509d0d1bb9dce2381716d6e7583ee6c492",
      "new_mode": 33188,
      "new_path": "kernel/power/suspend.c"
    },
    {
      "type": "modify",
      "old_id": "e819e17877ca9cd2540440a67919b2b019222976",
      "old_mode": 33188,
      "old_path": "kernel/power/user.c",
      "new_id": "1b2ea31e6bd8c0eca7eaaf985bc84337a1e750d0",
      "new_mode": 33188,
      "new_path": "kernel/power/user.c"
    },
    {
      "type": "modify",
      "old_id": "e4092704c1a9a281985d7fc650e7655b1e00ea09",
      "old_mode": 33188,
      "old_path": "mm/page_alloc.c",
      "new_id": "ff7e158723987d4355ec84a2c090716ec8accbe9",
      "new_mode": 33188,
      "new_path": "mm/page_alloc.c"
    }
  ]
}
