[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <486AA336.7010102@roinet.com>
Date: Tue, 01 Jul 2008 17:35:50 -0400
From: David Acker <dacker@...net.com>
To: Anders Grafström <grfstrm@...rs.sourceforge.net>
CC: Jeff Garzik <jeff@...zik.org>,
"Kok, Auke" <auke-jan.h.kok@...el.com>, akpm@...ux-foundation.org,
netdev@...r.kernel.org, jesse.brandeburg@...el.com,
miltonm@....com, e1000-devel@...ts.sourceforge.net,
kexin.hao@...driver.com
Subject: Re: [PATCH] Fix e100 on systems that have cache incoherent DMA
Anders Grafström wrote:
>>>> David Acker wrote:
>>>>> What is the status of this patch?
>>>>
>>>> Jeff merged it in netdev-2.6#upstream so it is queued for 2.6.25.
>
> The e100 driver broke in 2.6.25 on the ixp4xx based platform I'm using.
> This patch seems to be the cause.
>
> It appears to work again with pci_dma_sync_single_for_device() restored.
> So I'm wondering if the patch below would be valid and correct?
>
> Anders
>
> diff --git a/drivers/net/e100.c b/drivers/net/e100.c
> index f3cba5e..1037b13 100644
> --- a/drivers/net/e100.c
> +++ b/drivers/net/e100.c
> @@ -1803,6 +1803,8 @@ static int e100_rx_alloc_skb(struct nic *nic,
> struct rx *rx)
> if (rx->prev->skb) {
> struct rfd *prev_rfd = (struct rfd *)rx->prev->skb->data;
> put_unaligned_le32(rx->dma_addr, &prev_rfd->link);
> + pci_dma_sync_single_for_device(nic->pdev, rx->prev->dma_addr,
> + sizeof(struct rfd), PCI_DMA_TODEVICE);
> }
>
> return 0;
> --
Acked-by: David Acker <dacker@...net.com>
I got a chance to test this patch on both a Compulab CM-X255 and a
Gateworks Avila GW2348-4. It seems to work fine with little to no
performance hit. I will give it some longer tests over this week. If I
run into any problems I will report them here. Thanks to Anders and
Kevin Hao who posted a similar patch.
-Ack
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists