)]}'
{
  "commit": "b214f191d95ba4b5a35aebd69cd129cf7e3b1884",
  "tree": "ee8f5c1528ea5273a2d1ec360a24582ee4c6407a",
  "parents": [
    "2dea75d96ade3c7cd2bfe73f99c7b3291dc3d03a"
  ],
  "author": {
    "name": "Matthew Wilcox",
    "email": "willy@linux.intel.com",
    "time": "Tue Sep 28 00:57:32 2010 -0400"
  },
  "committer": {
    "name": "Sarah Sharp",
    "email": "sarah.a.sharp@linux.intel.com",
    "time": "Wed Apr 13 16:57:33 2011 -0700"
  },
  "message": "USB: Fix unplug of device with active streams\n\nIf I unplug a device while the UAS driver is loaded, I get an oops\nin usb_free_streams().  This is because usb_unbind_interface() calls\nusb_disable_interface() which calls usb_disable_endpoint() which sets\nep_out and ep_in to NULL.  Then the UAS driver calls usb_pipe_endpoint()\nwhich returns a NULL pointer and passes an array of NULL pointers to\nusb_free_streams().\n\nI think the correct fix for this is to check for the NULL pointer\nin usb_free_streams() rather than making the driver check for this\nsituation.  My original patch for this checked for dev-\u003estate \u003d\u003d\nUSB_STATE_NOTATTACHED, but the call to usb_disable_interface() is\nconditional, so not all drivers would want this check.\n\nNote from Sarah Sharp: This patch does avoid a potential dereference,\nbut the real fix (which will be implemented later) is to set the\n.soft_unbind flag in the usb_driver structure for the UAS driver, and\nall drivers that allocate streams.  The driver should free any streams\nwhen it is unbound from the interface.  This avoids leaking stream rings\nin the xHCI driver when usb_disable_interface() is called.\n\nThis should be queued for stable trees back to 2.6.35.\n\nSigned-off-by: Matthew Wilcox \u003cwilly@linux.intel.com\u003e\nSigned-off-by: Sarah Sharp \u003csarah.a.sharp@linux.intel.com\u003e\nCc: stable@kernel.org\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8eed05d23838932aa0c412aed83c47d46a138e93",
      "old_mode": 33188,
      "old_path": "drivers/usb/core/hcd.c",
      "new_id": "77a7faec8d78a0e7efa8c15f2d96a0b40a538130",
      "new_mode": 33188,
      "new_path": "drivers/usb/core/hcd.c"
    }
  ]
}
