)]}'
{
  "commit": "371262ec7bbf0ffc4b2a66c3f7c9230ee5e6a2c5",
  "tree": "ed1cbf54dceddaf20e5819a4090833abfe550145",
  "parents": [
    "9592b90cdc99f58e0674e64037c422ea7e9aa367"
  ],
  "author": {
    "name": "David Mosberger",
    "email": "davidm@egauge.net",
    "time": "Tue Mar 08 14:42:48 2016 -0700"
  },
  "committer": {
    "name": "Ben Hutchings",
    "email": "ben@decadent.org.uk",
    "time": "Thu Jun 11 19:05:39 2020 +0100"
  },
  "message": "drivers: usb: core: Don\u0027t disable irqs in usb_sg_wait() during URB submit.\n\ncommit 98b74b0ee57af1bcb6e8b2e76e707a71c5ef8ec9 upstream.\n\nusb_submit_urb() may take quite long to execute.  For example, a\nsingle sg list may have 30 or more entries, possibly leading to that\nmany calls to DMA-map pages.  This can cause interrupt latency of\nseveral hundred micro-seconds.\n\nAvoid the problem by releasing the io-\u003elock spinlock and re-enabling\ninterrupts before calling usb_submit_urb().  This opens races with\nusb_sg_cancel() and sg_complete().  Handle those races by using\nusb_block_urb() to stop URBs from being submitted after\nusb_sg_cancel() or sg_complete() with error.\n\nNote that usb_unlink_urb() is guaranteed to return -ENODEV if\n!io-\u003eurbs[i]-\u003edev and since the -ENODEV case is already handled,\nwe don\u0027t have to check for !io-\u003eurbs[i]-\u003edev explicitly.\n\nBefore this change, reading 512MB from an ext3 filesystem on a USB\nmemory stick showed a throughput of 12 MB/s with about 500 missed\ndeadlines.\n\nWith this change, reading the same file gave the same throughput but\nonly one or two missed deadlines.\n\nSigned-off-by: David Mosberger \u003cdavidm@egauge.net\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f7019c7e9bc5280cea120285effb0dccb4c0f226",
      "old_mode": 33188,
      "old_path": "drivers/usb/core/message.c",
      "new_id": "a3abe56898a92168681555c4f26a65636d0f153b",
      "new_mode": 33188,
      "new_path": "drivers/usb/core/message.c"
    }
  ]
}
