Re: Streaming DMA mapping question

From: David S. Miller (davem@redhat.com)
Date: Fri Sep 13 2002 - 15:28:42 EST


   From: Adam Kropelin <akropel1@rochester.rr.com>
   Date: Fri, 13 Sep 2002 16:21:50 -0400

   On Fri, Sep 13, 2002 at 12:36:41PM -0700, David S. Miller wrote:
> Actually, rather it appears that the i386 pci_unmap_*() routines need
> the write buffer flush as well.
   
   Ah, a bug then.
   
On further discussion with Alan Cox, the bug is actually that
pci_map_*() needs the write buffer flush added. pci_map_*()
and pci_dma_sync_*() transfer ownership from CPU to PCI controller
as abstracted in DMA-mapping.txt Therefore these are the cases
where the CPU write buffers need to be flushed.

pci_unmap_*() is ok as-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.

Really, the cases handled by the x86 write buffer fluses are very
marginal and unlikely to happen. In fact the write buffer flush on
x86 is done on winchip and ppro chips only.

I think you're problems are elsewhere :-)
   
   Kudos to you and others who spent time writing it.

Thank you.

   
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sun Sep 15 2002 - 22:00:35 EST