Use mmio barriers at end of transmit and irq processing.
I don't have machines that really require these barriers, but this
matches the documented usage.
Signed-off-by: Stephen Hemminger <[EMAIL PROTECTED]>
--- skge.orig/drivers/net/skge.c 2006-02-20 10:47:24.000000000 -0800
+++ skge/drivers/net/skge.c 2006-02-20 10:47:32.000000000 -0800
@@ -2380,9 +2380,10 @@
netif_stop_queue(dev);
}
- dev->trans_start = jiffies;
+ mmiowb();
spin_unlock_irqrestore(&skge->tx_lock, flags);
+ dev->trans_start = jiffies;
return NETDEV_TX_OK;
}
@@ -2677,6 +2678,7 @@
wmb();
skge_write8(hw, Q_ADDR(rxqaddr[skge->port], Q_CSR),
CSR_START | CSR_IRQ_CL_F);
+ mmiowb();
*budget -= work_done;
dev->quota -= work_done;
@@ -2687,7 +2689,6 @@
netif_rx_complete(dev);
hw->intr_mask |= portirqmask[skge->port];
skge_write32(hw, B0_IMSK, hw->intr_mask);
- skge_read32(hw, B0_IMSK);
return 0;
}
--
-
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