aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/marvell
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2012-01-03 05:27:47 +0000
committerDavid S. Miller <davem@davemloft.net>2012-01-03 13:50:49 -0500
commit86d8c07ff2448eb4e860e50f34ef6ee78e45c40c (patch)
treef9ea58e3a3f5c9bcff28e36feb9b444d78fb0e9c /drivers/net/ethernet/marvell
parentnet_sched: qdisc_alloc_handle() can be too slow (diff)
downloadlinux-dev-86d8c07ff2448eb4e860e50f34ef6ee78e45c40c.tar.xz
linux-dev-86d8c07ff2448eb4e860e50f34ef6ee78e45c40c.zip
net/davinci: do not use all descriptors for tx packets
The driver uses a shared pool for both rx and tx descriptors. During open it queues fixed number of 128 descriptors for receive packets. For each received packet it tries to queue another descriptor. If this fails the descriptor is lost for rx. The driver has no limitation on tx descriptors to use, so it can happen during a nmap / ping -f attack that the driver allocates all descriptors for tx and looses all rx descriptors. The driver stops working then. To fix this limit the number of tx descriptors used to half of the descriptors available, the rx path uses the other half. Tested on a custom board using nmap / ping -f to the board from two different hosts. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/marvell')
0 files changed, 0 insertions, 0 deletions