I can see the 'dma_cache_inv_pc' routines (in the arch/mips/mm cache files), in almost every incarnation, is actually doing a write-back invalidation, why ? My first thought was, that this will never work for the PCI devices doing DMA, so I was wondering why it actually does work. And the answer is, that this routine isn't used by the PCI DMA functions, no matter what the DIRECTION of the DMA transfer is. Has anyone got an idea why the while PCI DMA stuff is implemented this way (only using write-back invalidations) ? I would expect that we did a write-back invalidation of the D-cache, when the direction was PCI_DMA_TODEVICE and only did invalidation of the D-cache, when the direction was PCI_DMA_FROMDEVICE. /Carsten -- _ _ ____ ___ Carsten Langgaard Mailto:carstenl@mips.com |\ /|||___)(___ MIPS Denmark Direct: +45 4486 5527 | \/ ||| ____) Lautrupvang 4B Switch: +45 4486 5555 TECHNOLOGIES 2750 Ballerup Fax...: +45 4486 5556 Denmark http://www.mips.com