Subject: Re: [PATCH] net/hyperv: fix erroneous NETDEV_TX_BUSY use

From: Ben Greear <[email-masked]>
Date: Wed, 14 Mar 2012 11:56:55 -0700

On 03/14/2012 11:53 AM, Eric Dumazet wrote:
> A driver start_xmit() method cannot free skb and return NETDEV_TX_BUSY,
> since caller is going to reuse freed skb.
>
> This is mostly a revert of commit bf769375c (staging: hv: fix the return
> status of netvsc_start_xmit())
>
> In fact netif_tx_stop_queue() / netif_stop_queue() is needed before
> returning NETDEV_TX_BUSY or you can trigger a ksoftirqd fatal loop.
>
> In case of memory allocation error, only safe way is to drop the packet
> and return NETDEV_TX_OK

Can you not just leave the skb alone, not bump any tx-dropped
stats, and return NETDEV_TX_BUSY?

Been a while since I looked at this code however...

Ben

-- 
Ben Greear <[email-masked]>
Candela Technologies Inc  http://www.candelatech.com