I didn't mean hard_start_xmit() will do the requeue. I think the misunderstanding was due to the line wrap exactly at speedo_start_xmit() in my earlier mail. The following lines also are supposed to be under qdisc_restart(). > If the device is busy, it requeues the skb and activates a TX soft IRQ > by calling netif_schedule(). Thanks Sridhar Andi Kleen <ak@suse.de>@vger.kernel.org on 04/10/2001 10:09:44 AM Sent by: linux-net-owner@vger.kernel.org To: Sridhar Samudrala/Beaverton/IBM@IBMUS cc: Akshay Adhikari <vakshay2000@yahoo.com>, linux-net@vger.kernel.org Subject: Re: skb_under_panic On Tue, Apr 10, 2001 at 09:50:37AM -0700, samudrala@us.ibm.com wrote: > speedo_start_xmit() > for a intel eepro ethernet card. > If the device is busy, it requeues the skb and activates a TX soft IRQ > by calling netif_schedule(). I think you misread that bit ;) ->hard_start_xmit should not ever requeue a skb, that's the job of the higher layer. When the network cards sets its queue to runable via netif_start_queue it promises that it can at least accept one packet. Exceptions are error conditions that usually result in a lost packet. -Andi - : send the line "unsubscribe linux-net" in the body of a message to majordomo@vger.kernel.org - : send the line "unsubscribe linux-net" in the body of a message to majordomo@vger.kernel.org