)]}'
{
  "commit": "71b7497c078a97e2afb774ad7c1f8ff5bdda8a60",
  "tree": "149cf8cdb985760ef2afea54bfc5181088311caa",
  "parents": [
    "8b6346ec899713a90890c9e832f7eff91ea73504"
  ],
  "author": {
    "name": "Alan Stern",
    "email": "stern@rowland.harvard.edu",
    "time": "Thu Oct 09 15:40:23 2008 -0400"
  },
  "committer": {
    "name": "Greg Kroah-Hartman",
    "email": "gregkh@suse.de",
    "time": "Fri Oct 17 14:41:04 2008 -0700"
  },
  "message": "USB: OHCI: fix endless polling behavior\n\nThis patch (as1149) fixes an obscure problem in OHCI polling.  In the\ncurrent code, if the RHSC interrupt status flag turns on at a time\nwhen RHSC interrupts are disabled, it will remain on forever:\n\n\tThe interrupt handler is the only place where RHSC status\n\tgets turned back off;\n\n\tThe interrupt handler won\u0027t turn RHSC status off because it\n\tdoesn\u0027t turn off status flags if the corresponding interrupt\n\tisn\u0027t enabled;\n\n\tRHSC interrupts will never get enabled because\n\tohci_root_hub_state_changes() doesn\u0027t reenable RHSC if RHSC\n\tstatus is on!\n\nAs a result we will continue polling indefinitely instead of reverting\nto interrupt-driven operation, and the root hub will not autosuspend.\nThis particular sequence of events is not at all unusual; in fact\nplugging a USB device into an OHCI controller will usually cause it to\noccur.\n\nOf course, this is a bug.  The proper thing to do is to turn off RHSC\nstatus just before reading the actual port status values.  That way\neither a port status change will be detected (if it occurs before the\nstatus read) or it will turn RHSC back on.  Possibly both, but that\nwon\u0027t hurt anything.\n\nWe can still check for systems in which RHSC is totally broken, by\nre-reading RHSC after clearing it and before reading the port\nstatuses.  (This re-read has to be done anyway, to post the earlier\nwrite.)  If RHSC is on but no port-change statuses are set, then we\nknow that RHSC is broken and we can avoid re-enabling it.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nCc: stable \u003cstable@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a150e85c901ac5321e282a9d19eefaca3e37837d",
      "old_mode": 33188,
      "old_path": "drivers/usb/host/ohci-hub.c",
      "new_id": "32bbce9718f0626b98cc37e09b14faa51a5cc16f",
      "new_mode": 33188,
      "new_path": "drivers/usb/host/ohci-hub.c"
    }
  ]
}
