From: Adam Kropelin <akropel1@rochester.rr.com>
To: "David S. Miller" <davem@redhat.com>
Cc: linux-kernel@vger.kernel.org, alan@redhat.com
Subject: Re: Streaming DMA mapping question
Date: Fri, 13 Sep 2002 16:21:50 -0400 [thread overview]
Message-ID: <20020913202150.GA24340@www.kroptech.com> (raw)
In-Reply-To: <20020913.123641.50140065.davem@redhat.com>
On Fri, Sep 13, 2002 at 12:36:41PM -0700, David S. Miller wrote:
> From: Adam Kropelin <akropel1@rochester.rr.com>
> Date: Fri, 13 Sep 2002 15:39:16 -0400
>
> According to the docs, you should either unmap or sync your DMA buffer before
> touching it from the host. The i386 implementation of pci_unmap is empty --no
> problem; there must not be any unmap work to do on this arch. But the
> implementation of pci_dma_sync does contain a flush_write_buffers() call. This
> makes me think that perhaps if I'm going to modify the buffer before I submit it
> back to the controller I need to do:
>
> Actually, rather it appears that the i386 pci_unmap_*() routines need
> the write buffer flush as well.
Ah, a bug then.
> The x86 implementation is a bad example to read if you're trying to
> see what the worst case scenerio is.
I was looking at the x86 implementation to help me narrow down the possible
source of a bug I'm seeing in the driver. I noticed the driver was examining a
DMA buffer without unmapping or syncing. Before I went to the work to fix the
code I wanted to see if those operations were no-ops on the platform I'm testing
on. I'll definitely fix the driver regardless, but I didn't want to blame the
lockup on it if unmapping won't actually change anything on this platform. Thus
my confusion upon seeing pci_unmap_*() and pci_dma_sync_*() differ.
> Just follow the document and your driver will work properly on all
> platforms. DMA-mapping.txt was meant to be written in a way such
> that you should not ever need to look at an implementation of the
> interfaces to figure out how to use them.
Absolutely. It does that job very well and I am greatly appreciative for the
code groveling time that document has saved me. Kudos to you and others who
spent time writing it.
--Adam
next prev parent reply other threads:[~2002-09-13 20:17 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-09-13 19:39 Adam Kropelin
2002-09-13 19:36 ` David S. Miller
2002-09-13 20:21 ` Adam Kropelin [this message]
2002-09-13 20:28 ` David S. Miller
2002-09-13 20:52 ` Adam Kropelin
2002-09-13 20:46 ` David S. Miller
2002-09-14 3:51 ` Adam Kropelin
2002-09-16 3:30 ` David S. Miller
2002-09-16 21:06 ` Martin Diehl
2002-09-16 20:56 ` David S. Miller
2002-09-16 21:51 ` Martin Diehl
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=20020913202150.GA24340@www.kroptech.com \
--to=akropel1@rochester.rr.com \
--cc=alan@redhat.com \
--cc=davem@redhat.com \
--cc=linux-kernel@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
Powered by JetHome