)]}'
{
  "commit": "828b18866ce0907fdb67afe143d5d851deb9fec6",
  "tree": "535626cc8ab742a056df4acef9d6509397f4661c",
  "parents": [
    "ede3e03c6d28bc3aca30206995fec585031698af"
  ],
  "author": {
    "name": "Alan Stern",
    "email": "stern@rowland.harvard.edu",
    "time": "Wed Nov 07 10:31:30 2012 -0500"
  },
  "committer": {
    "name": "Greg Kroah-Hartman",
    "email": "gregkh@linuxfoundation.org",
    "time": "Thu Jan 17 08:51:22 2013 -0800"
  },
  "message": "USB: fix endpoint-disabling for failed config changes\n\ncommit 36caff5d795429c572443894e8789c2150dd796b upstream.\n\nThis patch (as1631) fixes a bug that shows up when a config change\nfails for a device under an xHCI controller.  The controller needs to\nbe told to disable the endpoints that have been enabled for the new\nconfig.  The existing code does this, but before storing the\ninformation about which endpoints were enabled!  As a result, any\nsecond attempt to install the new config is doomed to fail because\nxhci-hcd will refuse to enable an endpoint that is already enabled.\n\nThe patch optimistically initializes the new endpoints\u0027 device\nstructures before asking the device to switch to the new config.  If\nthe request fails then the endpoint information is already stored, so\nwe can use usb_hcd_alloc_bandwidth() to disable the endpoints with no\ntrouble.  The rest of the error path is slightly more complex now; we\nhave to disable the new interfaces and call put_device() rather than\nsimply deallocating them.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nReported-and-tested-by: Matthias Schniedermeyer \u003cms@citd.de\u003e\nCC: Sarah Sharp \u003csarah.a.sharp@linux.intel.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n[bwh: Backported to 3.2: adjust context]\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ef116a55afa43476c4acbbf9f457642889ea522c",
      "old_mode": 33188,
      "old_path": "drivers/usb/core/message.c",
      "new_id": "ab11ca3c79a5371541409d098852c1f7a8028f24",
      "new_mode": 33188,
      "new_path": "drivers/usb/core/message.c"
    }
  ]
}
