Christoph Hellwig wrote:
If you change behaviour you should change the interface, in this case
you'd _really_ want to pass down the buffer as void pointer and not cast
it to a dma_addr_t - that would in fact break on ppc64 where dma_addr_t
is a 32bit data type and a pointer is 64bits wide.

To clarify, I'm proceeding down the path of changing:

int ib_post_send_mad(struct ib_mad_agent *mad_agent,
                     struct ib_send_wr *send_wr,
                     struct ib_send_wr **bad_send_wr);

to something like:

int ib_post_send_mad(struct ib_mad_agent *mad_agent,
                     struct ib_mad_send_buf *send_buf,
                     struct ib_mad_send_buf **bad_send_buf);

(with minor changes to struct ib_mad_send_buf) This should permit chaining together sends, plus control how memory is allocated for very large MAD transfers. I threw out the other possibility to ensure that there's not a better solution that we're missing. I believe that the other solution requires substantially fewer changes to the existing codebase.

- Sean
_______________________________________________
openib-general mailing list
[email protected]
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to