Re: [PATCH] Fix buglets in mpc5200 FEC code that are corrupting memory.
From: Domen Puncer <hidden>
Date: 2007-11-09 09:12:45
Also in:
netdev
On 09/11/07 00:31 -0500, Jon Smirl wrote:
This is the reason I couldn't get user space started or connect to my nfs server. Patch is against current linus git. mpc5200 fec driver is corrupting memory. This patch fixes two bugs where the wrong skb buffer was being referenced. Signed-off-by: Jon Smirl <redacted>
Acked-by: Domen Puncer <redacted> I can't test it at the moment, but the patch is obviously correct, mapped buffer should be the _same_ as submitted.
quoted hunk ↗ jump to hunk
--- drivers/net/fec_mpc52xx.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)diff --git a/drivers/net/fec_mpc52xx.c b/drivers/net/fec_mpc52xx.c index a8a0ee2..ddfcc0b 100644 --- a/drivers/net/fec_mpc52xx.c +++ b/drivers/net/fec_mpc52xx.c@@ -422,7 +422,7 @@ static irqreturn_t mpc52xx_fec_rx_interrupt(intirq, void *dev_id) rskb = bcom_retrieve_buffer(priv->rx_dmatsk, &status, (struct bcom_bd **)&bd); - dma_unmap_single(&dev->dev, bd->skb_pa, skb->len, DMA_FROM_DEVICE); + dma_unmap_single(&dev->dev, bd->skb_pa, rskb->len, DMA_FROM_DEVICE); /* Test for errors in received frame */ if (status & BCOM_FEC_RX_BD_ERRORS) {@@ -467,7 +467,7 @@ static irqreturn_t mpc52xx_fec_rx_interrupt(intirq, void *dev_id) bcom_prepare_next_buffer(priv->rx_dmatsk); bd->status = FEC_RX_BUFFER_SIZE; - bd->skb_pa = dma_map_single(&dev->dev, rskb->data, + bd->skb_pa = dma_map_single(&dev->dev, skb->data, FEC_RX_BUFFER_SIZE, DMA_FROM_DEVICE); bcom_submit_next_buffer(priv->rx_dmatsk, skb); -- Jon Smirl jonsmirl@gmail.com
-- Domen Puncer | Research & Development ............................................................................................. Telargo d.o.o. | Zagrebška cesta 20 | 2000 Maribor | Slovenia ............................................................................................. www.telargo.com