On Mon, 2012-03-19 at 19:17 +0000, Haiyang Zhang wrote: > Yes, we called the stop_queue before returning NETDEV_TX_BUSY. > > The stop_queue was called in the function netvsc_send() in file > netvsc.c, then it returns to rndis_filter_send(), which returns to > netvsc_start_xmit() in file netvsc_drv.c. So the NETDEV_TX_BUSY is > indeed returned AFTER queue is stopped. > Thats should be in your changelog, so that next time, reviewers dont have to spend their time to check you did it right, especially when start_xmit() code is not self contained or at least in a single file. Each time we see a NETDEV_TX_BUSY in a patch, this is a sign of a possible problem. Your initial changelog was : Instead of dropping the packet, we keep the skb buffer, and return NETDEV_TX_BUSY to let upper layer retry send. This will not cause endless loop, because the host is taking data away from ring buffer. And this is the typical message that doesnt explain why its safe. _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/devel