net: smc1111: fix memory congestions
As the SMC1111 has a shared pool of 2k memory buckets for both
transmission and reception, and as there are variants which have as few
as 4 buckets in total, the memory pool can be hogged by unclaimed
receptions, and impeed any further transmission.

This happens on the zylonite pxa board, where 4 packets, most probably
icmp and arp, fill the 4 buckets, preventing any further ethernet
transmission, and stalling the driver.

The fix is rather rough : whenever all the buckets are filled by
reception packets, and if a transmission is required, the transmission
code path will empty up all received packets.

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
1 parent 556a391 commit fec4b794499a628e534a45a3da82d9c0ed94561c
@Robert Jarzmik Robert Jarzmik authored on 1 Jan 2015
Sascha Hauer committed on 6 Jan 2015
Showing 1 changed file
View
drivers/net/smc91111.c