• Alan Stern's avatar
    USB: EHCI: don't lose events during a scan · 361aabf3
    Alan Stern authored
    This patch (as1584) fixes a minor bug that has been present in
    ehci-hcd since the beginning.
    
    Scanning the schedules for URB completions is single-threaded.  If a
    completion interrupt occurs while an URB is being given back, the
    interrupt handler realizes that a scan is in progress on another CPU
    and avoids starting a new one.
    
    This means that completion events can be lost.  If an URB completes
    after it has been scanned but while a scan is still in progress, the
    driver won't notice and won't rescan the completed URB.
    
    The patch fixes the problem by adding a new flag to indicate that
    another scan is needed after the current scan is done.  The flag gets
    set whenever a completion interrupt occurs while a scan is in
    progress.  The rescan will see the completion, thus preventing it from
    getting lost.
    Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    361aabf3
ehci-hcd.c 39.2 KB