diff options
author | 2012-03-14 09:21:44 +0000 | |
---|---|---|
committer | 2012-03-16 02:01:41 -0700 | |
commit | b8fbaef586176f6abe0eb7887ddae66e99898b79 (patch) | |
tree | de0789276c35e3cb5d55dc858ce6b76a30918efc /net/unix/af_unix.c | |
parent | net/hyperv: fix erroneous NETDEV_TX_BUSY use (diff) | |
download | wireguard-linux-b8fbaef586176f6abe0eb7887ddae66e99898b79.tar.xz wireguard-linux-b8fbaef586176f6abe0eb7887ddae66e99898b79.zip |
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/unix/af_unix.c')
0 files changed, 0 insertions, 0 deletions