From: Christoph Hellwig <hch@xxxxxx> Date: Mon, 29 Jan 2024 07:11:36 +0100 > On Fri, Jan 26, 2024 at 02:54:50PM +0100, Alexander Lobakin wrote: >> Some platforms do have DMA, but DMA there is always direct and coherent. >> Currently, even on such platforms DMA sync operations are compiled and >> called. >> Add a new hidden Kconfig symbol, DMA_NEED_SYNC, and set it only when >> either sync operations are needed or there is DMA ops or swiotlb >> enabled. Set dma_need_sync() and dma_skip_sync() (stub for now) >> depending on this symbol state and don't call sync ops when >> dma_skip_sync() is true. >> The change allows for future optimizations of DMA sync calls depending >> on compile-time or runtime conditions. > > So the idea of compiling out the calls sounds fine to me. But what > is the point of the extra indirection through the __-prefixed calls? Because dma_sync_* ops are external functions, not inlines, and in the next patch I'm adding a check there. > > And if we need that (please document it in the commit log), please > make the wrappers proper inline functions and not macros. Thanks, Olek