Michael Chan a écrit :
On Tue, 2007-02-06 at 21:53 +0100, Eric Dumazet wrote:
Signed-off-by: Eric Dumazet <[EMAIL PROTECTED]>
plain text document attachment (tg3_avoid_divide.patch)
--- linux-2.6.20/drivers/net/tg3.c.orig 2007-02-06 22:30:39.000000000 +0100
+++ linux-2.6.20-ed/drivers/net/tg3.c 2007-02-06 22:32:42.000000000 +0100
@@ -3384,7 +3384,7 @@
}
next_pkt_nopost:
sw_idx++;
- sw_idx %= TG3_RX_RCB_RING_SIZE(tp);
+ sw_idx &= (TG3_RX_RCB_RING_SIZE(tp) - 1);
/* Refresh hw_idx to see if there is new work */
if (sw_idx == hw_idx) {
There are other places doing similar divide (e.g. tg3_recycle_rx(),
tg3_alloc_rx_skb()). I think we should change them all.
Well, I checked whole tg3.o with objdump --disassemble and there are only
three points using a div : tg3_nvram_phys_addr()/tg3_set_eeprom() &
tg3_open(), wich are seldom used :)
Eric
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html