I did it this way to avoid using kzalloc for all segment allocations, or
kmalloc/memset for all.  This way, only the last segment is "memset"'ed
and only in the padding area.

The API states that the buffer returned from ib_create_send_mad will be cleared. We either need to clear the buffer, or update the documentation.

[JPM]: This was done to hide segment implementation details from the
user_mad layer. You are correct that we can get rid of the size field,
and store it only once.
However, I think that the proper place for this value is the
"ib_mad_send_wr_private" structure, which also holds the list pointer.
How about if we change struct ib_mad_multipacket_seg
*ib_mad_get_multipacket_seg(struct ib_mad_send_buf *send_buf, int
seg_num)

to also return the segment size:

Since the user needs to know the segment size, it makes more sense to me to just expose it through ib_mad_send_buf.

[JPM]:  You are correct.  In fact, the test just before this one is also
performed in ib_create_send_mad(), and may also be deleted (this was not
part of the patch):

        if (rmpp_active && !agent->rmpp_version) {
                ret = -EINVAL;
                goto err_ah;
        }

I will remove these, and submit a patch for any other changes.  Thanks.

- 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