I think the main problem is that mtd buffers are not dma compatible [1].
They can be allocated by vmalloc, don't be aligned on a page, ...

The problem was catch on jffs2 summary, but the same things could happen
in other places.

So for me the correct fix, is either to fix mtd to have all buffer dma
compatible or either fix mtd_dataflash to don't pass mtd buffer to spi
stack, but to allocate dma buffer and do some copy.

BTW aren't there sparse annotation to track dma buffer ?


[1] http://article.gmane.org/gmane.linux.drivers.mtd/20663
As for the original question... I'm not sure. At the moment I don't
believe it's true that all such buffers are suitable for DMA. Perhaps it
would be sensible for us to redefine the MTD API so that it is required
(and fix the users).

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/