* the underlying backing storage is pinned for as long as a mapping exists,
  * therefore users/importers should not hold onto a mapping for undue amounts of
  * time.
+ *
+ * Important: Dynamic importers must wait for the exclusive fence of the struct
+ * dma_resv attached to the DMA-BUF first.
  */
 struct sg_table *dma_buf_map_attachment(struct dma_buf_attachment *attach,
                                        enum dma_data_direction direction)
 
         * This is called automatically for non-dynamic importers from
         * dma_buf_attach().
         *
+        * Note that similar to non-dynamic exporters in their @map_dma_buf
+        * callback the driver must guarantee that the memory is available for
+        * use and cleared of any old data by the time this function returns.
+        * Drivers which pipeline their buffer moves internally must wait for
+        * all moves and clears to complete.
+        *
         * Returns:
         *
         * 0 on success, negative error code on failure.
         * This is always called with the dmabuf->resv object locked when
         * the dynamic_mapping flag is true.
         *
+        * Note that for non-dynamic exporters the driver must guarantee that
+        * that the memory is available for use and cleared of any old data by
+        * the time this function returns.  Drivers which pipeline their buffer
+        * moves internally must wait for all moves and clears to complete.
+        * Dynamic exporters do not need to follow this rule: For non-dynamic
+        * importers the buffer is already pinned through @pin, which has the
+        * same requirements. Dynamic importers otoh are required to obey the
+        * dma_resv fences.
+        *
         * Returns:
         *
         * A &sg_table scatter list of or the backing storage of the DMA buffer,