From: Ingo Molnar work around a NULL skb dereference crash that occurs during high load. Signed-off-by: Ingo Molnar Cc: Ayaz Abdulla Cc: Jeff Garzik Signed-off-by: Andrew Morton --- drivers/net/forcedeth.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff -puN drivers/net/forcedeth.c~forcedeth-work-around-null-skb-dereference-crash drivers/net/forcedeth.c --- a/drivers/net/forcedeth.c~forcedeth-work-around-null-skb-dereference-crash +++ a/drivers/net/forcedeth.c @@ -1902,6 +1902,11 @@ static void nv_tx_done(struct net_device np->stats.tx_carrier_errors++; np->stats.tx_errors++; } else { + if (!np->get_tx_ctx->skb) { + printk("get_tx: %ld, put_tx: %ld\n", np->get_tx_ctx - np->first_tx_ctx, np->put_tx_ctx - np->first_tx_ctx); + WARN_ON(1); + break; + } np->stats.tx_packets++; np->stats.tx_bytes += np->get_tx_ctx->skb->len; } @@ -1917,6 +1922,11 @@ static void nv_tx_done(struct net_device np->stats.tx_carrier_errors++; np->stats.tx_errors++; } else { + if (!np->get_tx_ctx->skb) { + printk("get_tx: %ld, put_tx: %ld\n", np->get_tx_ctx - np->first_tx_ctx, np->put_tx_ctx - np->first_tx_ctx); + WARN_ON(1); + break; + } np->stats.tx_packets++; np->stats.tx_bytes += np->get_tx_ctx->skb->len; } _