05 Jul, 2008

20 commits


04 Jul, 2008

20 commits

  • * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6:
    USB: adding comment for ipaq forcing number of ports
    USB: fix Oops on loading ipaq module since 2.6.26
    USB: add a pl2303 device id
    USB: another option device id
    USB: don't lose disconnections during suspend
    USB: fix interrupt disabling for HCDs with shared interrupt handlers
    USB: New device ID for ftdi_sio driver
    sisusbvga: Fix oops on disconnect.
    USB: mass storage: new id for US_SC_CYP_ATACB
    USB: ohci - record data toggle after unlink
    USB: ehci - fix timer regression
    USB: fix cdc-acm resume()
    OHCI: Fix problem if SM501 and another platform driver is selected

    Linus Torvalds
     
  • The reason for forcing a number of ports should be documented.

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

    Oliver Neukum
     
  • Fixes bugzilla.kernel.org #10868

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

    Oliver Neukum
     
  • As reported by Ken A Scott

    Cc: Ken A Scott
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     
  • Thanks to umesh b for the information here.

    Cc: umesh b
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     
  • This patch (as1111) fixes a bug in the hub driver. When a hub
    resumes, disconnections that occurred while the hub was suspended are
    lost.

    A completely different fix for this problem has already been accepted
    for 2.6.27; however the problem still needs to be handled in 2.6.26.

    Signed-off-by: Alan Stern
    Tested-by: Lukas Hejtmanek
    Signed-off-by: Greg Kroah-Hartman

    Alan Stern
     
  • USB: fix interrupt disabling for HCDs with shared interrupt handlers

    As has been discussed several times on LKML, IRQF_SHARED | IRQF_DISABLED
    doesn't work reliably, i.e. a shared interrupt handler CAN'T be certain to
    be called with interrupts disabled. Most USB HCD handlers use IRQF_DISABLED
    and therefore havoc can break out if they share their interrupt with a
    handler that doesn't use it.

    On my test machine the yenta_socket interrupt handler (no IRQF_DISABLED)
    was registered before ehci_hcd and one uhci_hcd instance. Therefore all
    usb_hcd_irq() invocations for ehci_hcd and for one uhci_hcd instance
    happened with interrupts enabled. That led to random lockups as USB core
    HCD functions that acquire the same spinlock could be called twice
    from interrupt handlers.

    This patch updates usb_hcd_irq() to always disable/restore interrupts.
    usb_add_hcd() will silently remove any IRQF_DISABLED requested from HCD code.

    Signed-off-by: Stefan Becker
    Cc: stable
    Acked-by: David Brownell
    Acked-by: Alan Stern
    Signed-off-by: Greg Kroah-Hartman

    Stefan Becker
     
  • Here's a new device ID for the ftdio_sio driver.
    The diff is with linus's tree as of this morning.

    The device is the RigExpert Tiny USB Soundcard Transceiver Interface for ham
    radio.

    (I didn't actually test this. A fellow ham couldn't get the device to work, and
    I suggested binding the device ID using sysfs - see
    "http://jk.ufisa.uninett.no/usb/". However, he had had moved on to other things
    by then. I guess adding the device ID to the kernel "on spec" won't hurt.
    The relevant part of cat /proc/bus/usb/devices shows:

    T: Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=12 MxCh= 0
    D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
    P: Vendor=0403 ProdID=ed22 Rev= 5.00
    S: Manufacturer=FTDI
    S: Product=MixW RigExpert Tiny
    S: SerialNumber=00000000
    C:* #Ifs= 2 Cfg#= 1 Atr=80 MxPwr=100mA
    I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
    E: Ad=81(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
    E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
    I:* If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
    E: Ad=83(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
    E: Ad=04(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
    )

    From: Jon K Hellan
    Signed-off-by: Greg Kroah-Hartman

    Jon K Hellan
     
  • Remove dev_info call on disconnect. The sisusb_dev pointer may have been
    set to zero by sisusb_delete at this point causing an oops.

    The message does not provide any extra information over the standard USB
    subsystem output so removing it does not affect functionality.

    Signed-off-by: Will Newton
    Signed-off-by: Greg Kroah-Hartman

    Will Newton
     
  • CY7C68310 chip also support cypress atacb "ATA command" pass_thru.

    Signed-off-by: Matthieu CASTET
    Signed-off-by: Greg Kroah-Hartman

    matthieu castet
     
  • 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
     
  • To return garbage_args, the accept_stat must be 0, and we must have a
    verifier. So we shouldn't be resetting the write pointer as we reject
    the call.

    Also, we must add the two placeholder words here regardless of success
    of the unwrap, to ensure the output buffer is left in a consistent state
    for svcauth_gss_release().

    This fixes a BUG() in svcauth_gss.c:svcauth_gss_release().

    Thanks to Aime Le Rouzic for bug report, debugging help, and testing.

    Signed-off-by: J. Bruce Fields
    Tested-by: Aime Le Rouzic
    Signed-off-by: Linus Torvalds

    J. Bruce Fields
     
  • * 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus:
    [MIPS] cevt-txx9: Reset timer counter on initialization
    [MIPS] IP22: Fix crashes due to wrong L1_CACHE_BYTES
    [MIPS] IP32: Fix unexpected irq 71

    Linus Torvalds
     
  • Due to a possible deadlock, the waking of the softirq was pushed outside
    of the hrtimer base locks. See commit 0c96c5979a522c3323c30a078a70120e29b5bdbc

    Unfortunately this allows the task to migrate after setting up the softirq
    and raising it. Since softirqs run a queue that is per-cpu we may raise the
    softirq on the wrong CPU and this will keep the queued softirq task from
    running.

    To solve this issue, this patch disables preemption around the releasing
    of the hrtimer lock and raising of the softirq.

    Signed-off-by: Steven Rostedt
    Signed-off-by: Linus Torvalds

    Steven Rostedt
     
  • The txx9_tmr_init() will not clear a timer counter register in a certain
    case. The counter register is cleared on 1->0 transition of TCE bit if
    CRE=1. So just clearing the TCE bit is not enough.

    Signed-off-by: Atsushi Nemoto
    Signed-off-by: Ralf Baechle

    Atsushi Nemoto
     
  • The introduction of a real dma cache invalidate makes it important
    to have a correct cache line size, otherwise the kernel will gives
    out two memory segment, which might share one cache line. The R4400
    Indy/Indigo2 CPU modules are using a second level cache line size
    of 128 bytes, so MIPS_L1_CACHE_SHIFT needs to be bumped up to 7 for
    IP22.

    Signed-off-by: Thomas Bogendoerfer
    Signed-off-by: Ralf Baechle

    Thomas Bogendoerfer
     
  • It's possible that the crime interrupt handler is called without
    pending interrupts (probably a hardware issue). To avoid irritating
    "unexpected irq 71" messages, we now just ignore the spurious crime
    interrupts.

    Signed-off-by: Thomas Bogendoerfer
    Signed-off-by: Ralf Baechle

    Thomas Bogendoerfer