• Eric Dumazet's avatar
    wimax/i2400m: fix erroneous NETDEV_TX_BUSY use · b8fbaef5
    Eric Dumazet authored
    A driver start_xmit() method cannot free skb and return NETDEV_TX_BUSY,
    since caller is going to reuse freed skb.
    
    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
    
    Also increments tx_dropped counter
    Signed-off-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
    Cc: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    b8fbaef5
netdev.c 19.9 KB