 
            On Sun, Oct 26, 2025 at 09:44:13PM -0700, Vivek Kasireddy wrote:
For the map operation, the dma-buf core will create an xarray but the exporter needs to populate it with the interconnect specific addresses. And, similarly for unmap, the exporter is expected to cleanup the individual entries of the xarray.
I don't think we should limit this to xarrays, nor do I think it is a great datastructure for what is usually needed here..
I just posted the patches showing what iommufd needs, and it wants something like
struct mapping { struct p2p_provider *provider; size_t nelms; struct phys_vec *phys; };
Which is not something that make sense as an xarray.
I think the interconnect should have its own functions for map/unmap, ie instead of trying to have them as a commmon dma_buf_interconnect_ops do something like
struct dma_buf_interconnect_ops { const char *name; bool (*supports_interconnects)(struct dma_buf_attachment *attach, const struct dma_buf_interconnect_match *, unsigned int num_ics); };
struct dma_buf_iov_interconnect_ops { struct dma_buf_interconnect_ops ic_ops; struct xx *(*map)(struct dma_buf_attachment *attach, unsigned int *bar_number, size_t *nelms); // No unmap for iov };
static inline struct xx *dma_buf_iov_map(struct dma_buf_attachment *attach, unsigned int *bar_number, size_t *nelms) { return container_of(attach->ic_ops, struct dma_buf_iov_interconnect_ops, ic_ops)->map( attach, bar_number, nelms)); }
+/**
- dma_buf_attachment_is_dynamic - check if the importer can handle move_notify.
- @attach: the attachment to check
- Returns true if a DMA-buf importer has indicated that it can handle dmabuf
- location changes through the move_notify callback.
- */
+static inline bool +dma_buf_attachment_is_dynamic(struct dma_buf_attachment *attach) +{
- return !!attach->importer_ops;
+}
Why is this in this patch?
I also think this patch should be second in the series, it makes more sense to figure out how to attach with an interconnect then show how to map/unmap with that interconnect
Like I'm not sure why this introduces allow_ic?
Jason
linaro-mm-sig@lists.linaro.org
