* [RFC][NET] Alignment in mv643xx_eth
@ 2007-02-26 19:52 Ralf Baechle
2007-02-26 21:48 ` Dale Farnsworth
2007-02-27 9:21 ` Jeff Garzik
0 siblings, 2 replies; 3+ messages in thread
From: Ralf Baechle @ 2007-02-26 19:52 UTC (permalink / raw)
To: Dale Farnsworth; +Cc: netdev, linux-mips, Jeff Garzik
The driver contains this little piece of candy:
#if defined(CONFIG_DMA_NONCOHERENT) || defined(CONFIG_NOT_COHERENT_CACHE)
#define ETH_DMA_ALIGN L1_CACHE_BYTES
#else
#define ETH_DMA_ALIGN 8
#endif
Any reason why we're not using dma_get_cache_alignment() instead?
Ralf
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
diff --git a/drivers/net/mv643xx_eth.c b/drivers/net/mv643xx_eth.c
index d98e53e..3e045a6 100644
--- a/drivers/net/mv643xx_eth.c
+++ b/drivers/net/mv643xx_eth.c
@@ -147,13 +147,13 @@ static void mv643xx_eth_rx_refill_descs(struct net_device *dev)
int unaligned;
while (mp->rx_desc_count < mp->rx_ring_size) {
- skb = dev_alloc_skb(ETH_RX_SKB_SIZE + ETH_DMA_ALIGN);
+ skb = dev_alloc_skb(ETH_RX_SKB_SIZE + dma_get_cache_alignment());
if (!skb)
break;
mp->rx_desc_count++;
- unaligned = (u32)skb->data & (ETH_DMA_ALIGN - 1);
+ unaligned = (u32)skb->data & (dma_get_cache_alignment() - 1);
if (unaligned)
- skb_reserve(skb, ETH_DMA_ALIGN - unaligned);
+ skb_reserve(skb, dma_get_cache_alignment() - unaligned);
pkt_info.cmd_sts = ETH_RX_ENABLE_INTERRUPT;
pkt_info.byte_cnt = ETH_RX_SKB_SIZE;
pkt_info.buf_ptr = dma_map_single(NULL, skb->data,
diff --git a/drivers/net/mv643xx_eth.h b/drivers/net/mv643xx_eth.h
index 33c5faf..7cb0a41 100644
--- a/drivers/net/mv643xx_eth.h
+++ b/drivers/net/mv643xx_eth.h
@@ -42,17 +42,6 @@
#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_HW_IP_ALIGN 2 /* hw aligns IP header */
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [RFC][NET] Alignment in mv643xx_eth
2007-02-26 19:52 [RFC][NET] Alignment in mv643xx_eth Ralf Baechle
@ 2007-02-26 21:48 ` Dale Farnsworth
2007-02-27 9:21 ` Jeff Garzik
1 sibling, 0 replies; 3+ messages in thread
From: Dale Farnsworth @ 2007-02-26 21:48 UTC (permalink / raw)
To: Ralf Baechle; +Cc: Dale Farnsworth, netdev, linux-mips, Jeff Garzik
On Mon, Feb 26, 2007 at 07:52:06PM +0000, Ralf Baechle wrote:
> The driver contains this little piece of candy:
>
> #if defined(CONFIG_DMA_NONCOHERENT) || defined(CONFIG_NOT_COHERENT_CACHE)
> #define ETH_DMA_ALIGN L1_CACHE_BYTES
> #else
> #define ETH_DMA_ALIGN 8
> #endif
>
> Any reason why we're not using dma_get_cache_alignment() instead?
Not that I can think of.
ACK.
Dale Farnsworth
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [RFC][NET] Alignment in mv643xx_eth
2007-02-26 19:52 [RFC][NET] Alignment in mv643xx_eth Ralf Baechle
2007-02-26 21:48 ` Dale Farnsworth
@ 2007-02-27 9:21 ` Jeff Garzik
1 sibling, 0 replies; 3+ messages in thread
From: Jeff Garzik @ 2007-02-27 9:21 UTC (permalink / raw)
To: Ralf Baechle; +Cc: Dale Farnsworth, netdev, linux-mips
Ralf Baechle wrote:
> The driver contains this little piece of candy:
>
> #if defined(CONFIG_DMA_NONCOHERENT) || defined(CONFIG_NOT_COHERENT_CACHE)
> #define ETH_DMA_ALIGN L1_CACHE_BYTES
> #else
> #define ETH_DMA_ALIGN 8
> #endif
>
> Any reason why we're not using dma_get_cache_alignment() instead?
>
> Ralf
>
> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
applied
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2007-02-27 9:25 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-02-26 19:52 [RFC][NET] Alignment in mv643xx_eth Ralf Baechle
2007-02-26 21:48 ` Dale Farnsworth
2007-02-27 9:21 ` Jeff Garzik
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).