diff options
author | Eric Dumazet <eric.dumazet@gmail.com> | 2012-03-14 13:21:44 +0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-03-16 13:01:41 +0400 |
commit | b8fbaef586176f6abe0eb7887ddae66e99898b79 (patch) | |
tree | de0789276c35e3cb5d55dc858ce6b76a30918efc /net/ipv6/mcast.c | |
parent | bb6d5e76fb4fba9aa36726db41404512f3286c0f (diff) | |
download | linux-b8fbaef586176f6abe0eb7887ddae66e99898b79.tar.xz |
wimax/i2400m: fix erroneous NETDEV_TX_BUSY use
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: Eric Dumazet <eric.dumazet@gmail.com>
Cc: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6/mcast.c')
0 files changed, 0 insertions, 0 deletions