)]}'
{
  "commit": "418e4da33f45fd7bdcce48778b149b780ff730bc",
  "tree": "fca80fd94c2ec3ce7c7384daa07c9783ed33d96a",
  "parents": [
    "5ee810072175042775e39bdd3eaaa68884c27805"
  ],
  "author": {
    "name": "Rafael J. Wysocki",
    "email": "rjw@sisk.pl",
    "time": "Mon Jan 26 21:43:08 2009 +0100"
  },
  "committer": {
    "name": "Jesse Barnes",
    "email": "jbarnes@virtuousgeek.org",
    "time": "Tue Jan 27 09:45:46 2009 -0800"
  },
  "message": "PCI PM: Fix suspend error paths and testing facility breakage\n\nIf one of device drivers refuses to suspend by returning error code\nfrom its -\u003esuspend() callback, the devices that have already been\nsuspended are resumed by executing their drivers\u0027 -\u003eresume()\ncallbacks.  Some of these callbacks expect the device\u0027s\nconfiguration space to be restored if the device has been put into\nD3 before they are called.  Unfortunately, this mechanism has been\nbroken by recent changes moving the restoration of config spaces\nof some devices (most importantly, USB controllers and HDA Intel)\ninto the resume callbacks executed with interrupts off.  Obviously,\nthese callbacks are not invoked in the suspend error path and, as a\nresult, the system cannot be successfully brought back into the\nworking state in case of a suspend error.  The same thing happens\nin the hibernation error path right before putting the system into\nS4.\n\nSimilarly, the suspend testing facility associated with the\n/sys/power/pm_test file is broken, because it uses the very same\nmechanism that is used in the suspend and hibernation error paths.\n\nFix the breakage by making the PCI core restore the configuration\nspaces of PCI devices that haven\u0027t been restored already before\npci_pm_resume() is called for those devices by the PM core.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9de07b75b993b0e81346cd516c2021849d50901e",
      "old_mode": 33188,
      "old_path": "drivers/pci/pci-driver.c",
      "new_id": "4884c4840b3d317bca74b9d5d76a2c7978dfee52",
      "new_mode": 33188,
      "new_path": "drivers/pci/pci-driver.c"
    }
  ]
}
