On Tue, 26 Mar 2013, Sarah Sharp wrote:
But considering the multicast code is pretty old, I bet I'm running into
a different bug...
The fix is rather small. Approximately one gigabyte was transferred while
alternating in and out of promiscuous mode. No issues.
I guess this should move the driver out of the equation.
cheers,
Petko
diff --git a/drivers/net/usb/pegasus.c b/drivers/net/usb/pegasus.c
index 73051d1..879da39 100644
--- a/drivers/net/usb/pegasus.c
+++ b/drivers/net/usb/pegasus.c
@@ -1220,8 +1220,6 @@ static void pegasus_set_multicast(struct net_device *net)
pegasus->eth_regs[EthCtrl2] &= ~RX_PROMISCUOUS;
}
- pegasus->ctrl_urb->status = 0;
-
pegasus->flags |= ETH_REGS_CHANGE;
ctrl_callback(pegasus->ctrl_urb);
}