Re: PCI DMA to small buffers on cache-incoherent arch

From: Roland Dreier (roland@topspin.com)
Date: Mon Jun 10 2002 - 23:39:27 EST


           struct something {
                   int field1;
                   char dma_buffer[SMALLER_THAN_CACHE_LINE];
                   int field2;
           };
   
           struct something *dev = kmalloc(sizeof *dev, GFP_KERNEL);
   
    David> How about allocating struct something using pci_pool?

The problem is the driver can't safely touch field1 or field2 near the
DMA (it might pull the cache line back in too soon, or dirty the cache
line and have it written back on top of DMA'ed data)

Best,
  Roland

-
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 : Sat Jun 15 2002 - 22:00:20 EST