)]}'
{
  "commit": "098dff738abbeaea15fc95c4f4fdaee1e9bbea75",
  "tree": "b2282f59358b4f1e8bbf9949ff1eec4c8016ca5f",
  "parents": [
    "074037ec79bea73edf1b1ec72fef1010e83e3cc5"
  ],
  "author": {
    "name": "Rafael J. Wysocki",
    "email": "rjw@sisk.pl",
    "time": "Wed Sep 22 22:10:57 2010 +0200"
  },
  "committer": {
    "name": "Rafael J. Wysocki",
    "email": "rjw@sisk.pl",
    "time": "Sun Oct 17 01:57:43 2010 +0200"
  },
  "message": "PM: Fix potential issue with failing asynchronous suspend\n\nThere is a potential issue with the asynchronous suspend code that\na device driver suspending asynchronously may not notice that it\nshould back off.  There are two failing scenarions, (1) when the\ndriver is waiting for a driver suspending synchronously to complete\nand that second driver returns error code, in which case async_error\nwon\u0027t be set and the waiting driver will continue suspending and (2)\nafter the driver has called device_pm_wait_for_dev() and the waited\nfor driver returns error code, in which case the caller of\ndevice_pm_wait_for_dev() will not know that there was an error and\nwill continue suspending.\n\nTo fix this issue make __device_suspend() set async_error, so\nasync_suspend() doesn\u0027t need to set it any more, and make\ndevice_pm_wait_for_dev() return async_error, so that its callers\ncan check whether or not they should continue suspending.\n\nNo more changes are necessary, since device_pm_wait_for_dev() is\nnot used by any drivers\u0027 suspend routines.\n\nReported-by: Colin Cross \u003cccross@android.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "7ae6fe414c383ec27de20752d34430d041754880",
      "old_mode": 33188,
      "old_path": "drivers/base/power/main.c",
      "new_id": "31b526661ec4d78346c3b6edd04b733705285797",
      "new_mode": 33188,
      "new_path": "drivers/base/power/main.c"
    },
    {
      "type": "modify",
      "old_id": "a84118911ced60c1ada69a1bc777db600889461a",
      "old_mode": 33188,
      "old_path": "include/linux/pm.h",
      "new_id": "1abfe84f447d77c9a542ecb305396e204a3d7ab9",
      "new_mode": 33188,
      "new_path": "include/linux/pm.h"
    }
  ]
}
