04 Jul, 2008

4 commits

  • This patch fixes a problem with OHCI where canceling bulk or
    interrupt URBs may lose track of the right data toggle. This
    seems to be a longstanding bug, possibly dating back to the
    Linux 2.4 kernel, which stayed hidden because

    (a) about half the time the data toggle bit was correct;
    (b) canceling such URBs is unusual; and
    (c) the few drivers which cancel these URBs either
    [1] do it only as part of shutting down, or
    [2] have fault recovery logic, which recovers.

    For those transfer types, the toggle is normally written back
    into the ED when each TD is retired. But canceling bypasses
    the mechanism used to retire TDs ... so on average, half the
    time the toggle bit will be invalid after cancelation.

    The fix is simple: the toggle state of any canceled TDs are
    propagated back to the ED in the finish_unlinks function.

    (Issue found by leonidv11@gmail.com ...)

    Signed-off-by: David Brownell
    Cc: Leonid
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    David Brownell
     
  • This patch fixes a regression in the EHCI driver's TIMER_IO_WATCHDOG
    behavior. The patch "USB: EHCI: add separate IAA watchdog timer" changed
    how that timer is handled, so that short timeouts on the remaining
    timer (unfortunately, overloaded) would never be used.

    This takes a more direct approach, reorganizing the code slightly to
    be explicit about only the I/O watchdog role now being overridable.
    It also replaces a now-obsolete comment describing older timer behavior.

    Signed-off-by: David Brownell
    Cc: Alan Stern
    Cc: Leonid
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    David Brownell
     
  • cdc-acm has
    - a memory leak in resume()
    - will fail to reactivate the read code path if this is needed.
    his corrects it by deleting the useless relict code.

    Signed-off-by: Oliver Neukum
    Signed-off-by: Greg Kroah-Hartman

    Oliver Neukum
     
  • If the SM501 and another platform driver, such as the SM501
    then we end up defining PLATFORM_DRIVER twice. This patch
    seperated the SM501 onto a seperate define of SM501_OHCI_DRIVER
    so that it can be selected without overwriting the original
    definition.

    Signed-off-by: Ben Dooks
    Acked-by: David Brownell
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    Ben Dooks
     

03 Jul, 2008

22 commits


02 Jul, 2008

14 commits