[PATCH 2.6-BK] Fix stray pointer in e100

From: Deepak Saxena
Date: Fri Mar 12 2004 - 16:35:22 EST



e100_alloc_cbs() allocates the cb's but does not set cb->skb = NULL
which means that the following check in e100_tx_clean() will execute
even though cb->skb is not really a valid pointer an we OOPs:

if(likely(cb->skb != NULL)) {
...
nic->net_stats.tx_bytes += cb->skb->len;

}

Attached patch fixes the issue.

~Deepak

--
Deepak Saxena - dsaxena at plexity dot net - http://www.plexity.net/
diff -Nru a/drivers/net/e100.c b/drivers/net/e100.c
--- a/drivers/net/e100.c Fri Mar 12 14:26:45 2004
+++ b/drivers/net/e100.c Fri Mar 12 14:26:45 2004
@@ -1346,6 +1346,7 @@
cb->dma_addr = nic->cbs_dma_addr + i * sizeof(struct cb);
cb->link = cpu_to_le32(nic->cbs_dma_addr +
((i+1) % count) * sizeof(struct cb));
+ cb->skb = NULL;
}

nic->cb_to_use = nic->cb_to_send = nic->cb_to_clean = nic->cbs;