linux/drivers/net/ethernet/ti
Sebastian Siewior b4727e69b8 net/cpsw: redo rx skb allocation in rx path
In case that we run into OOM during the allocation of the new rx-skb we
don't get one and we have one skb less than we used to have. If this
continues to happen then we end up with no rx-skbs at all.
This patch changes the following:
- if we fail to allocate the new skb, then we treat the currently
  completed skb as the new one and so drop the currently received data.
- instead of testing multiple times if the device is gone we rely one
  the status field which is set to -ENOSYS in case the channel is going
  down and incomplete requests are purged.
  cpdma_chan_stop() removes most of the packages with -ENOSYS. The
  currently active packet which is removed has the "tear down" bit set.
  So if that bit is set, we send ENOSYS as well otherwise we pass the
  status bits which are required to figure out which of the two possible
  just finished.

Acked-by: Mugunthan V N <mugunthanvnm@ti.com>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
2013-04-25 04:11:50 -04:00
..
cpmac.c net: phy: remove flags argument from phy_{attach, connect, connect_direct} 2013-01-14 15:11:50 -05:00
cpsw.c net/cpsw: redo rx skb allocation in rx path 2013-04-25 04:11:50 -04:00
cpsw_ale.c drivers: net: cpsw: Add helper functions for VLAN ALE implementation 2013-02-06 15:46:40 -05:00
cpsw_ale.h drivers: net:ethernet: cpsw: add support for VLAN 2013-02-06 15:46:40 -05:00
cpts.c cpts: fix a run time warn_on. 2012-12-26 14:15:09 -08:00
cpts.h cpts: fix build error by removing useless code. 2012-12-26 14:15:09 -08:00
davinci_cpdma.c net/cpsw: redo rx skb allocation in rx path 2013-04-25 04:11:50 -04:00
davinci_cpdma.h net/davinci_cpdma: remove unused argument in cpdma_chan_submit() 2013-04-25 04:11:50 -04:00
davinci_emac.c net/davinci_cpdma: remove unused argument in cpdma_chan_submit() 2013-04-25 04:11:50 -04:00
davinci_mdio.c ethernet: Remove unnecessary alloc/OOM messages, alloc cleanups 2013-02-04 13:22:33 -05:00
Kconfig drivers/net/ethernet/ti: remove depends on CONFIG_EXPERIMENTAL 2013-01-11 11:38:41 -08:00
Makefile cpts: introduce time stamping code and a PTP hardware clock. 2012-11-01 12:21:30 -04:00
tlan.c tlan: cancel work at remove path 2013-04-16 16:43:34 -04:00
tlan.h