• Alan Stern's avatar
    USB: EHCI: changes related to qh_refresh() · c1fdb68e
    Alan Stern authored
    This patch (as1638) makes several changes to the ehci-hcd driver, all
    related to the qh_refresh() function.  This function must be called
    whenever an idle QH gets linked back into either the async or the
    periodic schedule.
    
    	Change a BUG_ON() in the qh_update routine to a WARN_ON().
    	Since this code runs in atomic context, a BUG_ON() would
    	immediately freeze the whole system.
    
    	Remove two unneeded calls to qh_refresh(), one when a QH is
    	initialized and one when a QH becomes idle.  Adjust the
    	adjacent comments accordingly.
    
    	Move the qh_refresh() and qh_link_periodic() calls for new
    	interrupt URBs to after the new TDs have been added.
    
    	As a result of the previous two changes, qh_refresh() is never
    	called when the qtd_list is empty.  The corresponding check in
    	qh_refresh() can be removed, along with an indentation level.
    
    These changes should not cause any alteration of behavior.
    Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    c1fdb68e
ehci-q.c 38.4 KB