From: Dale Farnsworth <[EMAIL PROTECTED]>

When I/O is non-cache-coherent, we need to ensure that the I/O buffers
we use don't share cache lines with other data.

Signed-off-by: Dale Farnsworth <[EMAIL PROTECTED]>

---

This patch fixes red zone error messages that appear when CONFIG_SLAB_DEBUG=y.

 drivers/net/mv643xx_eth.h |   18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

Index: linux-2.6-mv643xx_enet/drivers/net/mv643xx_eth.h
===================================================================
--- linux-2.6-mv643xx_enet.orig/drivers/net/mv643xx_eth.h
+++ linux-2.6-mv643xx_enet/drivers/net/mv643xx_eth.h
@@ -42,13 +42,23 @@
 #define MAX_DESCS_PER_SKB      1
 #endif
 
+/*
+ * The MV643XX HW requires 8-byte alignment.  However, when I/O
+ * is non-cache-coherent, we need to ensure that the I/O buffers
+ * we use don't share cache lines with other data.
+ */
+#if defined(CONFIG_DMA_NONCOHERENT) || defined(CONFIG_NOT_COHERENT_CACHE)
+#define ETH_DMA_ALIGN          L1_CACHE_BYTES
+#else
+#define ETH_DMA_ALIGN          8
+#endif
+
 #define ETH_VLAN_HLEN          4
 #define ETH_FCS_LEN            4
-#define ETH_DMA_ALIGN          8       /* hw requires 8-byte alignment */
-#define ETH_HW_IP_ALIGN                2       /* hw aligns IP header */
+#define ETH_HW_IP_ALIGN                2               /* hw aligns IP header 
*/
 #define ETH_WRAPPER_LEN                (ETH_HW_IP_ALIGN + ETH_HLEN + \
-                               ETH_VLAN_HLEN + ETH_FCS_LEN)
-#define ETH_RX_SKB_SIZE                ((dev->mtu + ETH_WRAPPER_LEN + 7) & 
~0x7)
+                                       ETH_VLAN_HLEN + ETH_FCS_LEN)
+#define ETH_RX_SKB_SIZE                (dev->mtu + ETH_WRAPPER_LEN + 
ETH_DMA_ALIGN)
 
 #define ETH_RX_QUEUES_ENABLED  (1 << 0)        /* use only Q0 for receive */
 #define ETH_TX_QUEUES_ENABLED  (1 << 0)        /* use only Q0 for transmit */
-
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