Skip to contentSkip to conversation

lance.c - dev_kfree_skb() then reference skb->len

PATCH In review Eli Carter 2 participants 2 messages Nov 28, 2000

lore
Share & tools
lore

Eli Carter

author
#0 lore raw

PATCH 1/1 lance.c - dev_kfree_skb() then reference skb->len

Greetings all,

Patch is against 2.2.17, drivers/net/lance.c.
I believe this to be "obviously correct," but please correct me if I'm wrong.
This moves a reference to skb->len to before the possible dev_kfree_skb(skb) call. Though it appears to work as is, I suspect it is incorrect.

Please apply or let me know why.

Eli

ps. It's an attachment rather than inline because I can't seem to get Netscape (4.71) to do that without replacing tabs with spaces. Grr.

--------------------. "To the systems programmer, users and applications
Eli Carter | serve only to provide a test load."
[email protected] `---------------------------------- (random fortune)

lance.c renamed from lance.c.2.2.17 +2 -1
@@ -926,6 +926,8 @@
 
 	lp->tx_ring[entry].misc = 0x0000;
 
+	lp->stats.tx_bytes += skb->len;
+
 	/* If any part of this buffer is >16M we must copy it to a low-memory
 	   buffer. */
 	if ((u32)virt_to_bus(skb->data) + skb->len > 0x01000000) {
@@ -941,7 +943,6 @@
 		lp->tx_ring[entry].base = ((u32)virt_to_bus(skb->data) & 0xffffff) | 0x83000000;
 	}
 	lp->cur_tx++;
-	lp->stats.tx_bytes += skb->len;
 
 	/* Trigger an immediate send poll. */
 	outw(0x0000, ioaddr+LANCE_ADDR);
#1 lore raw
Quoted 6 lines · Eli Carter

Patch is against 2.2.17, drivers/net/lance.c.
I believe this to be "obviously correct," but please correct me if I'm wrong.
This moves a reference to skb->len to before the possible dev_kfree_skb(skb) call. Though it appears to work as is, I suspect it is incorrect.

This patch looks reasonable.

Perhaps it would be better to have the driver retain the skbuff until the transmit succeeds, and only then add the length to the stats. But this specific bug is related the ISA bounce buffer code. Any ISA card is in the "legacy" category, so it's better to make minimal change needed to correct the obvious potential problem.

Donald Becker [email protected]
Scyld Computing Corporation http://www.scyld.com
410 Severn Ave. Suite 210 Second Generation Beowulf Clusters
Annapolis MD 21403 410-990-9993

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/