You could try this "patch" that might help, but which disables the
speed-optimizations altogether in 3c59x.c around line 1745:
/* Check if the packet is long enough to just accept without
copying to a properly sized skbuff. */
if (pkt_len < rx_copybreak
&& (skb = DEV_ALLOC_SKB(pkt_len + 2)) != 0) {
.... old code ....
remove the aboe lines, do something like this instead:
skb = DEV_ALLOC_SKB(pkt_len + 2);
if (!skb)
break;
if (1) {
.... old code ....
This essentially forces it to go through the "slow" case all the time, and
if the allocation fails we exit the while-loop. I don't think this is a
good patch, but it might be enough to see if you can get rid of that
particular error case..
Linus
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu