linux/drivers/net
Christian Riesch 5d69703263 davinci_emac: Do not free all rx dma descriptors during init
This patch fixes a regression that was introduced by

commit 0a5f384677
davinci_emac: Add Carrier Link OK check in Davinci RX Handler

Said commit adds a check whether the carrier link is ok. If the link is
not ok, the skb is freed and no new dma descriptor added to the rx dma
channel. This causes trouble during initialization when the carrier
status has not yet been updated. If a lot of packets are received while
netif_carrier_ok returns false, all dma descriptors are freed and the
rx dma transfer is stopped.

The bug occurs when the board is connected to a network with lots of
traffic and the ifconfig down/up is done, e.g., when reconfiguring
the interface with DHCP.

The bug can be reproduced by flood pinging the davinci board while doing
ifconfig eth0 down
ifconfig eth0 up
on the board.

After that, the rx path stops working and the overrun value reported
by ifconfig is counting up.

This patch reverts commit 0a5f384677
and instead issues warnings only if cpdma_chan_submit returns -ENOMEM.

Signed-off-by: Christian Riesch <christian.riesch@omicron.at>
Cc: <stable@vger.kernel.org>
Cc: Hegde, Vinay <vinay.hegde@ti.com>
Cc: Cyril Chemparathy <cyril@ti.com>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Tested-by: Rajashekhara, Sudhakar <sudhakar.raj@ti.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2012-02-24 03:25:10 -05:00
..
appletalk
arcnet net: Revert ARCNET and PHYLIB to tristate options 2011-11-26 14:36:49 -05:00
bonding bonding: fix enslaving in alb mode when link down 2012-01-18 20:59:53 -05:00
caif module_param: make bool parameters really bool (net & drivers/net) 2011-12-19 22:27:29 -05:00
can can: sja1000: fix isr hang when hw is unplugged under load 2012-02-20 11:36:56 +01:00
cris
dsa drivers/net: dsa/mv88e6xxx.c files need linux/module.h 2012-01-24 15:44:50 -05:00
ethernet davinci_emac: Do not free all rx dma descriptors during init 2012-02-24 03:25:10 -05:00
fddi
hamradio
hippi
hyperv net/hyperv: Fix the page buffer when an RNDIS message goes beyond page boundary 2012-02-02 14:35:12 -05:00
irda Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2012-01-14 13:05:21 -08:00
phy phy: IC+101G and PHY_HAS_INTERRUPT flag 2012-02-23 17:14:26 -05:00
plip
ppp pptp: Accept packet with seq zero 2012-01-12 20:05:28 -08:00
slip
team team: send only changed options/ports via netlink 2012-01-24 15:51:00 -05:00
tokenring CONFIG_TR/CONFIG_LLC: work around the problem with select 2012-02-07 13:06:14 -05:00
usb Move Logitech Harmony 900 from cdc_ether to zaurus 2012-02-22 15:50:23 -05:00
vmxnet3 vmxnet3: cap copy length at size of skb to prevent dropped frames on tx 2012-02-19 18:57:51 -05:00
wan module_param: make bool parameters really bool (net & drivers/net) 2011-12-19 22:27:29 -05:00
wimax Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-01-08 13:21:22 -08:00
wireless ath9k: stop on rates with idx -1 in ath9k rate control's .tx_status 2012-02-15 13:56:15 -05:00
xen-netback Merge branch 'stable/for-linus-3.3' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen 2012-01-10 10:09:59 -08:00
dummy.c net: remove NETIF_F_NO_CSUM feature bit 2011-11-16 17:43:12 -05:00
eql.c
ifb.c net: remove NETIF_F_NO_CSUM feature bit 2011-11-16 17:43:12 -05:00
Kconfig Merge branch 'staging-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging 2012-01-09 12:18:17 -08:00
LICENSE.SRC
loopback.c net: remove NETIF_F_NO_CSUM feature bit 2011-11-16 17:43:12 -05:00
macvlan.c macvlan: fix a possible use after free 2012-01-23 13:56:18 -05:00
macvtap.c macvtap: Fix macvtap_get_queue to use rxhash first 2011-12-20 13:45:55 -05:00
Makefile Merge branch 'staging-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging 2012-01-09 12:18:17 -08:00
mdio.c
mii.c net: Change mii to ethtool advertisement function names 2011-11-21 15:27:19 -05:00
netconsole.c
rionet.c
sb1000.c
Space.c
sungem_phy.c
tun.c Sweep away N/A fw_version dustbunnies from the .get_drvinfo routine of a number of drivers 2011-11-22 16:43:32 -05:00
veth.c veth: Enforce minimum size of VETH_INFO_PEER 2012-02-15 14:59:20 -05:00
virtio_net.c virtio: net: Add freeze, restore handlers to support S4 2012-01-12 15:44:46 +10:30
xen-netfront.c xen-netfront: correct MAX_TX_TARGET calculation. 2012-01-26 13:48:35 -05:00