On Sun, 17 Oct 2004 17:59:22 -0700
Roland Dreier <[EMAIL PROTECTED]> wrote:

> I'm working with the new MAD code, and I'm wondering what the
> intendend usage of ib_mad_recv_wc.recv_buf is, specifically in the
> RMPP case.  I see that struct ib_mad_recv_buf has a struct list_head
> member, but struct ib_mad_recv_wc just has a struct ib_mad_recv_buf *
> member.  I assume that the idea is for multiple MAD packets to be
> passed as a linked list, so it would seem that struct ib_mad_recv_wc
> should just have a struct list_head where the MAD buffers are linked.
> Am I missing something or does this need to be changed?

Your assumption is correct.  For RMPP, the idea is to pass back a linked list of 
received segments (duplicated MAD headers and all), in order to avoid data copies.

I think that the current API is a result of changes to ib_mad_recv_buf.  At one point 
I think that it had a *recv_buf field, which was changed to list_head, but 
ib_mad_recv_wc was left alone.

I'm not sure that we gain any advantage to using a doubly-linked list over a 
singly-linked one, so I would be fine with converting it back to *recv_buf.  If we do 
decide to keep list_head, then list_head should be added into ib_mad_recv_wc as you 
suggest.

- 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