[openib-general] DMA mapping abuses in MAD layer
Sean Hefty
mshefty at ichips.intel.com
Fri Oct 14 09:18:31 PDT 2005
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
More information about the general
mailing list