)]}'
{
  "commit": "db7c7c0aeef51dba12d877875b8deb78d9886647",
  "tree": "09567f469abcb49861ab347ffae0685b26836db6",
  "parents": [
    "fbf9865c6d96f4a131092d2018056e86113e5cea"
  ],
  "author": {
    "name": "Sarah Sharp",
    "email": "sarah.a.sharp@linux.intel.com",
    "time": "Wed Dec 29 22:03:07 2010 -0800"
  },
  "committer": {
    "name": "Sarah Sharp",
    "email": "sarah.a.sharp@linux.intel.com",
    "time": "Sun Mar 13 18:07:07 2011 -0700"
  },
  "message": "usb: Always return 0 or -EBUSY to the runtime PM core.\n\nThe PM core reacts badly when the return code from usb_runtime_suspend()\nis not 0, -EAGAIN, or -EBUSY.  The PM core regards this as a fatal error,\nand refuses to run anymore PM helper functions.  In particular,\nusbfs_open() and other usbfs functions will fail because the PM core will\nreturn an error code when usb_autoresume_device() is called.  This causes\nlibusb and/or lsusb to either hang or segfault.\n\nIf a USB device cannot suspend for some reason (e.g. a hub doesn\u0027t report\nit has remote wakeup capabilities), we still want lsusb and other\nuserspace programs to work.  So return -EBUSY, which will fill people\u0027s\nlog files with failed tries, but will ensure userspace still works.\n\nSigned-off-by: Sarah Sharp \u003csarah.a.sharp@linux.intel.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "fca61720b8733140c805c36fd8b7398fd58fac12",
      "old_mode": 33188,
      "old_path": "drivers/usb/core/driver.c",
      "new_id": "38072e4e74bd66776e64ae6fdd9c1ad97dac3aae",
      "new_mode": 33188,
      "new_path": "drivers/usb/core/driver.c"
    }
  ]
}
