ChangeSet 1.1760.26.23, 2004/06/29 09:49:30-07:00, [EMAIL PROTECTED]

[PATCH] USB: Fix pegasus_set_multicast lockup in drivers/usb/net/pegasus.c

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: Greg Kroah-Hartman <[EMAIL PROTECTED]>


 drivers/usb/net/pegasus.c |    4 ----
 1 files changed, 4 deletions(-)


diff -Nru a/drivers/usb/net/pegasus.c b/drivers/usb/net/pegasus.c
--- a/drivers/usb/net/pegasus.c 2004-06-29 16:24:54 -07:00
+++ b/drivers/usb/net/pegasus.c 2004-06-29 16:24:54 -07:00
@@ -1137,8 +1137,6 @@
 {
        pegasus_t *pegasus = net->priv;
 
-       netif_stop_queue(net);
-
        if (net->flags & IFF_PROMISC) {
                pegasus->eth_regs[EthCtrl2] |= RX_PROMISCUOUS;
                info("%s: Promiscuous mode enabled", net->name);
@@ -1154,8 +1152,6 @@
 
        pegasus->flags |= ETH_REGS_CHANGE;
        ctrl_callback(pegasus->ctrl_urb, NULL);
-
-       netif_wake_queue(net);
 }
 
 static __u8 mii_phy_probe(pegasus_t * pegasus)



-------------------------------------------------------
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 -
digital self defense, top technical experts, no vendor pitches,
unmatched networking opportunities. Visit www.blackhat.com
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to