mad_send_wr->pad = total_len - offsetof(struct ib_rmpp_mad, data) - 
mad_send_wr->pad = total_len - IB_MGMT_RMPP_HDR - 
int ib_send_rmpp_mad(struct ib_mad_send_wr_private *mad_send_wr){	struct ib_rmpp_mad *rmpp_mad;	int i, total_len, ret;	rmpp_mad = (struct ib_rmpp_mad *)mad_send_wr->send_wr.wr.ud.mad_hdr;	if (!(ib_get_rmpp_flags(&rmpp_mad->rmpp_hdr) &	      IB_MGMT_RMPP_FLAG_ACTIVE))		return IB_RMPP_RESULT_UNHANDLED;	if (rmpp_mad->rmpp_hdr.rmpp_type != IB_MGMT_RMPP_TYPE_DATA)		return IB_RMPP_RESULT_INTERNAL;	if (mad_send_wr->send_wr.num_sge > 1)		return -EINVAL;		/* TODO: support num_sge > 1 */	mad_send_wr->seg_num = 1;	mad_send_wr->newwin = 1;	mad_send_wr->data_offset = data_offset(rmpp_mad->mad_hdr.mgmt_class);	total_len = 0;	for (i = 0; i < mad_send_wr->send_wr.num_sge; i++)		total_len += mad_send_wr->send_wr.sg_list[i].length;        mad_send_wr->total_seg = (total_len - mad_send_wr->data_offset) /			(sizeof(struct ib_rmpp_mad) - mad_send_wr->data_offset);	mad_send_wr->pad = total_len - offsetof(struct ib_rmpp_mad, data) -			   be32_to_cpu(rmpp_mad->rmpp_hdr.paylen_newwin);	/* We need to wait for the final ACK even if there isn't a response */	mad_send_wr->refcount += (mad_send_wr->timeout == 0);	ret = send_next_seg(mad_send_wr);	if (!ret)		return IB_RMPP_RESULT_CONSUMED;	return ret;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/34816ad98efe4d47ffd858a0345321f9d85d9420/mad_rmpp.c/clean/drivers/infiniband/core/mad_rmpp.c