> > In terms of not having to unmap implying not having to store addresses at > all, it doesn't seem super-useful when you still have to store them for long > enough to find out that you don't :/ Why? The decision if DMA addresses are needed is taken when allocating relevant arrays, before we have any DMA address to store. If we know that we don't need to unmap, we can skip allocation of the array for free. So what and when "you still have to store them"? Thanks > > Thanks, > Robin. > > > + */ > > +bool dma_need_unmap(struct device *dev) > > +{ > > + if (!dma_map_direct(dev, get_dma_ops(dev))) > > + return true; > > +#ifdef CONFIG_DMA_NEED_SYNC > > + if (!dev->dma_skip_sync) > > + return true; > > +#endif > > + return IS_ENABLED(CONFIG_DMA_API_DEBUG); > > +} > > +EXPORT_SYMBOL_GPL(dma_need_unmap); > > + > > static void dma_setup_need_sync(struct device *dev) > > { > > const struct dma_map_ops *ops = get_dma_ops(dev); >