• Herbert Xu's avatar
    [PATCH] USB: Fix pegasus_set_multicast lockup in drivers/usb/net/pegasus.c · 52c190d8
    Herbert Xu authored
    I strongly recommend that this patch be applied.
    
    Without this patch, running tcpdump on an SMP machine with the
    pegasus adapter locks up 9 times out of 10.  This is what happens:
    
    CPU0				CPU1
    pegasus_start_xmit
    	netif_stop_queue
    				pegasus_set_multicast
    					netif_stop_queue
    					netif_wake_queue
    
    Which crashes if another packet is sent to pegasus_start_xmit before
    the first one is finished.
    
    If there are other drivers doing this, please fix them too.
    
    PS I submitted this to Petkan years ago but he probably lost it.
    Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
    52c190d8
pegasus.c 32.5 KB