ramips: DMA map the correct RX skb size
authorGabor Juhos <juhosg@openwrt.org>
Wed, 24 Nov 2010 10:01:16 +0000 (10:01 +0000)
committerGabor Juhos <juhosg@openwrt.org>
Wed, 24 Nov 2010 10:01:16 +0000 (10:01 +0000)
The skb_reserve call prior to DMA mapping the RX skb reduced the skb
data len by 2. To not allow DMA to write behind the skb we should pass
the correct skb data len to the device.

Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
SVN-Revision: 24123

target/linux/ramips/files/drivers/net/ramips.c

index e3c4f13d46a98a69d2c55cf62530b32781a50b83..1f3c35aa9db92e83d97ab9783821b72d431ea334 100644 (file)
@@ -177,7 +177,7 @@ ramips_alloc_dma(struct raeth_priv *re)
                skb_reserve(new_skb, 2);
                re->rx[i].rxd1 = dma_map_single(NULL,
                                                new_skb->data,
-                                               MAX_RX_LENGTH + 2,
+                                               MAX_RX_LENGTH,
                                                DMA_FROM_DEVICE);
                re->rx[i].rxd2 |= RX_DMA_LSO;
                re->rx_skb[i] = new_skb;
@@ -288,7 +288,7 @@ ramips_eth_rx_hw(unsigned long ptr)
                        skb_reserve(new_skb, 2);
                        priv->rx[rx].rxd1 = dma_map_single(NULL,
                                                           new_skb->data,
-                                                          MAX_RX_LENGTH + 2,
+                                                          MAX_RX_LENGTH,
                                                           DMA_FROM_DEVICE);
                }