[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <48595F16.5000905@roinet.com>
Date: Wed, 18 Jun 2008 15:16:38 -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
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;
Interesting. That e100 patch really is the patch that never ends! :-)
I didn't think I needed the pci_dma_sync_single_for_device because I
wasn't changing the prev_rfd->command anymore. Now I look again and I
see that the code is still setting prev_rfd->link which may require a
sync. Although I did the bulk of my work with a compulab CM-X255,
http://www.compulab.co.il/x255/html/x255-cm-datasheet.htm , I happen to
have some IXP425 based Gateworks Avilas. They are GW2348-4,
http://www.gateworks.com/products/avila/gw2348-4.php .
May I ask what actual board you are using and how the e100 is connected
to it? I plan to test with miniPCI based e100 cards. Also, can you say
more about it being broke? Does it crash immediately, fail to move any
data, move some data and stop, etc. ?
-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