From: Jay Cliburn <jacliburn@bellsouth.net>
To: Luca Tettamanti <kronos.it@gmail.com>
Cc: Jeff Garzik <jgarzik@pobox.com>,
"Jay L. T. Cornwall" <jay@esuna.co.uk>,
linux-kernel@vger.kernel.org, Chris Snook <csnook@redhat.com>,
netdev@vger.kernel.org
Subject: Re: [PATCH] atl1: disable 64bit DMA
Date: Tue, 26 Jun 2007 19:16:01 -0500 [thread overview]
Message-ID: <20070626191601.5c4c4808@osprey.hogchain.net> (raw)
In-Reply-To: <20070625211855.GA19275@dreamland.darkstar.lan>
On Mon, 25 Jun 2007 23:18:55 +0200
Luca Tettamanti <kronos.it@gmail.com> wrote:
> Il Mon, Jun 25, 2007 at 07:42:44AM -0500, Jay Cliburn ha scritto:
> > Jay L. T. Cornwall wrote:
> > >Jay Cliburn wrote:
> > >
> > >>For reasons not yet clear to me, it appears the L1 driver has a
> > >>bug or the device itself has trouble with DMA in high memory.
> > >>This patch, drafted by Luca Tettamanti, is being explored as a
> > >>workaround. I'd be interested to know if it fixes your problem.
> > >
> > >Yes, it certainly seems to. Now running with this patch and 4GB
> > >active, I've transferred about 15GB with no problem so far. It
> > >usually oopses after a GB or two.
> > >
> > >I guess it's not an ideal solution, architecturally speaking, but
> > >it's a good deal better than an unstable driver. If there's any
> > >other patches you'd like me to test or traces to capture, I'm
> > >happy to help out. Otherwise I'll run with this one for now since
> > >it does the job!
> >
> > Okay Jay, thanks.
> >
> > Luca, would you please submit your patch to Jeff Garzik and netdev?
>
> Hi Jeff,
> a couple of users reported hard lockups when using L1 NICs on machines
> with 4GB or more of RAM. We're still waiting official confirmation
> from the vendor, but it seems that L1 has problems doing DMA to/from
> high memory (physical address above the 4GB limit). Passing 32bit DMA
> mask cures the problem.
>
> Signed-Off-By: Luca Tettamanti <kronos.it@gmail.com>
>
> ---
> I think that the patch should be included in 2.6.22.
>
> drivers/net/atl1/atl1_main.c | 15 +++------------
> 1 file changed, 3 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/net/atl1/atl1_main.c
> b/drivers/net/atl1/atl1_main.c index 6862c11..a730f15 100644
> --- a/drivers/net/atl1/atl1_main.c
> +++ b/drivers/net/atl1/atl1_main.c
> @@ -2097,21 +2097,16 @@ static int __devinit atl1_probe(struct
> pci_dev *pdev, struct net_device *netdev;
> struct atl1_adapter *adapter;
> static int cards_found = 0;
> - bool pci_using_64 = true;
> int err;
>
> err = pci_enable_device(pdev);
> if (err)
> return err;
>
> - err = pci_set_dma_mask(pdev, DMA_64BIT_MASK);
> + err = pci_set_dma_mask(pdev, DMA_32BIT_MASK);
> if (err) {
> - err = pci_set_dma_mask(pdev, DMA_32BIT_MASK);
> - if (err) {
> - dev_err(&pdev->dev, "no usable DMA
> configuration\n");
> - goto err_dma;
> - }
> - pci_using_64 = false;
> + dev_err(&pdev->dev, "no usable DMA configuration\n");
> + goto err_dma;
> }
> /* Mark all PCI regions associated with PCI device
> * pdev as being reserved by owner atl1_driver_name
> @@ -2176,7 +2171,6 @@ static int __devinit atl1_probe(struct pci_dev
> *pdev,
> netdev->ethtool_ops = &atl1_ethtool_ops;
> adapter->bd_number = cards_found;
> - adapter->pci_using_64 = pci_using_64;
>
> /* setup the private structure */
> err = atl1_sw_init(adapter);
> @@ -2193,9 +2187,6 @@ static int __devinit atl1_probe(struct pci_dev
> *pdev, */
> /* netdev->features |= NETIF_F_TSO; */
>
> - if (pci_using_64)
> - netdev->features |= NETIF_F_HIGHDMA;
> -
> netdev->features |= NETIF_F_LLTX;
>
> /*
Acked-by: Jay Cliburn <jacliburn@bellsouth.net>
next prev parent reply other threads:[~2007-06-27 0:19 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-06-22 0:07 2.6.22-rc5: pdflush oops under heavy disk load Jay L. T. Cornwall
2007-06-22 14:47 ` Chuck Ebbert
2007-06-22 15:04 ` Jay L. T. Cornwall
2007-06-23 12:14 ` Jay L. T. Cornwall
2007-06-23 17:23 ` Andrew Morton
2007-06-24 9:57 ` (Last oops is Tainted: P) " Oleg Verych
2007-06-24 10:10 ` Jay L. T. Cornwall
2007-06-24 10:57 ` Oleg Verych
2007-06-24 17:59 ` Jay Cliburn
2007-06-24 20:31 ` Jay L. T. Cornwall
2007-06-24 21:45 ` Jay Cliburn
2007-06-25 12:16 ` Attansic L1 page corruption (was: 2.6.22-rc5: pdflush oops under heavy disk load) Jay L. T. Cornwall
2007-06-25 12:42 ` Attansic L1 page corruption Jay Cliburn
2007-06-25 21:18 ` [PATCH] atl1: disable 64bit DMA Luca Tettamanti
2007-06-25 21:36 ` Chris Snook
2007-06-25 21:51 ` Jay L. T. Cornwall
2007-06-25 21:57 ` Chris Snook
2007-06-25 23:00 ` Jay Cliburn
2007-06-25 23:17 ` Jeff Garzik
2007-06-25 23:40 ` Chris Snook
2007-06-26 21:12 ` Luca
2007-06-27 0:16 ` Jay Cliburn [this message]
2007-06-25 12:58 ` Attansic L1 page corruption (was: 2.6.22-rc5: pdflush oops under heavy disk load) Luca
2007-06-24 22:51 ` 2.6.22-rc5: pdflush oops under heavy disk load Jesper Juhl
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20070626191601.5c4c4808@osprey.hogchain.net \
--to=jacliburn@bellsouth.net \
--cc=csnook@redhat.com \
--cc=jay@esuna.co.uk \
--cc=jgarzik@pobox.com \
--cc=kronos.it@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®