linux/drivers/net/wimax/i2400m
Eric Dumazet b8fbaef586 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>
2012-03-16 02:01:41 -07:00
..
control.c drivers/net: Add moduleparam.h to drivers as required. 2011-10-31 19:31:09 -04:00
debug-levels.h
debugfs.c drivers/net: Add export.h to files using EXPORT_SYMBOL/THIS_MODULE 2011-10-31 19:31:08 -04:00
driver.c Fix common misspellings 2011-03-31 11:26:23 -03:00
fw.c drivers/net: Add export.h to files using EXPORT_SYMBOL/THIS_MODULE 2011-10-31 19:31:08 -04:00
i2400m-sdio.h wimax: make functions local 2010-10-05 00:47:38 -07:00
i2400m-usb.h Fix common misspellings 2011-03-31 11:26:23 -03:00
i2400m.h treewide: Fix typos in various parts of the kernel, and fix some comments. 2011-12-02 14:57:31 +01:00
Kconfig
Makefile
netdev.c wimax/i2400m: fix erroneous NETDEV_TX_BUSY use 2012-03-16 02:01:41 -07:00
op-rfkill.c Fix common misspellings 2011-03-31 11:26:23 -03:00
rx.c drivers/net: Add moduleparam.h to drivers as required. 2011-10-31 19:31:09 -04:00
sdio-debug-levels.h
sdio-fw.c
sdio-rx.c wimax: make functions local 2010-10-05 00:47:38 -07:00
sdio-tx.c wimax/i2400m: add the error recovery mechanism on TX path 2010-05-11 14:05:39 -07:00
sdio.c drivers/net: Add module.h to drivers who were implicitly using it 2011-10-31 19:31:07 -04:00
sysfs.c
tx.c net: fix assignment of 0/1 to bool variables. 2011-12-19 22:27:29 -05:00
usb-debug-levels.h
usb-fw.c Fix common misspellings 2011-03-31 11:26:23 -03:00
usb-notif.c drivers/net: Remove unnecessary returns from void function()s 2010-05-14 00:19:28 -07:00
usb-rx.c Fix common misspellings 2011-03-31 11:26:23 -03:00
usb-tx.c wimax/i2400m: remove an unused variable 2011-12-16 15:57:03 -05:00
usb.c drivers/net: Add module.h to drivers who were implicitly using it 2011-10-31 19:31:07 -04:00