One other thing occurred to me as I was thinking about this... > + There are four calls provided by the CMA framework to devices. To > + allocate a chunk of memory cma_alloc() function needs to be used: > + > + unsigned long cma_alloc(const struct device *dev, > + const char *kind, > + unsigned long size, > + unsigned long alignment); The purpose behind this interface, I believe, is pretty much always going to be to allocate memory for DMA buffers. Given that, might it make more sense to integrate the API with the current DMA mapping API? Then the allocation function could stop messing around with long values and, instead, just hand back a void * kernel-space pointer and a dma_addr_t to hand to the device. That would make life a little easier in driverland... jon -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>