Some transmit side small fixes:
 * When computing number of list elements per transmit, do full
   comparision to check for checksuming.
 * Get rid of racy check for tx_complete
 * Change stop test to match wake condition.

Signed-off-by: Stephen Hemminger <[EMAIL PROTECTED]>


--- sky2-netdev.orig/drivers/net/sky2.c
+++ sky2-netdev/drivers/net/sky2.c
@@ -1051,7 +1051,7 @@ static inline unsigned tx_le_req(const s
        if (skb_shinfo(skb)->tso_size)
                ++count;
 
-       if (skb->ip_summed)
+       if (skb->ip_summed == CHECKSUM_HW)
                ++count;
 
        return count;
@@ -1207,7 +1207,7 @@ static int sky2_xmit_frame(struct sk_buf
        sky2_put_idx(hw, txqaddr[sky2->port], sky2->tx_prod,
                     &sky2->tx_last_put, TX_RING_SIZE);
 
-       if (tx_avail(sky2) < MAX_SKB_TX_LE + 1)
+       if (tx_avail(sky2) <= MAX_SKB_TX_LE)
                netif_stop_queue(dev);
 
 out_unlock:
@@ -1229,8 +1229,7 @@ static void sky2_tx_complete(struct sky2
        struct net_device *dev = sky2->netdev;
        unsigned i;
 
-       if (done == sky2->tx_cons)
-               return;
+       BUG_ON(done >= TX_RING_SIZE);
 
        if (unlikely(netif_msg_tx_done(sky2)))
                printk(KERN_DEBUG "%s: tx done, up to %u\n",

--
Stephen Hemminger <[EMAIL PROTECTED]>
OSDL http://developer.osdl.org/~shemminger

-
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

Reply via email to