]> git.baikalelectronics.ru Git - kernel.git/commit
USB: fix ehci unlink regressions
authorDavid Brownell <david-b@pacbell.net>
Fri, 7 Mar 2008 21:49:42 +0000 (13:49 -0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 10 Mar 2008 23:42:27 +0000 (16:42 -0700)
commit4b39d891e4024baef1436ad2f97604998569bd06
treec582499d6e926cf57b56cd0cdf4e85e05cc7d133
parent447df96e14de54ad7a4de0b6105da8ad78ceacce
USB: fix ehci unlink regressions

The recent EHCI driver update to split the IAA watchdog timer out from
the other timers made several things work better, but not everything;
and it created a couple new issues in bugzilla.  Ergo this patch:

  - Handle a should-be-rare SMP race between the watchdog firing
    and (very late) IAA interrupts;

  - Remove a shouldn't-have-been-added WARN_ON() test;

  - Guard against one observed OOPS;

  - If this watchdog fires during clean HC shutdown, it should act
    as a NOP instead of interfering with the shutdown sequence;

  - Guard against silicon errata hypothesized by some vendors:
      * IAA status latch broken, but IAAD cleared OK;
      * IAAD wasn't cleared when IAA status got reported;

The WARN_ON is in bugzilla as 10168; the OOPS as 10078; these are
both regressions.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Tested-by: Gordon Farquharson <gordonfarquharson@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/host/ehci-hcd.c