/* ipath_verbs_send - send a packet @qp: the QP to send on @hdr: the packet header @hdrwords: the number of 32-bit words in the header @ss: the SGE to send @len: the length of the packet in bytes  */
int ipath_verbs_send(struct ipath_qp *qp, struct ipath_ib_header *hdr, u32 hdrwords, struct ipath_sge_state *ss, u32 len)
/* ipath_verbs_send - send a packet @qp: the QP to send on @hdr: the packet header @hdrwords: the number of 32-bit words in the header @ss: the SGE to send @len: the length of the packet in bytes  */
int ipath_verbs_send(struct ipath_qp *qp, struct ipath_ib_header *hdr, u32 hdrwords, struct ipath_sge_state *ss, u32 len)
{
	struct ipath_devdata *dd = to_idev(qp->ibqp.device)->dd;
	u32 plen;
	int ret;
	u32 dwords = (len + 3) >> 2;
	plen = hdrwords + dwords + 1;
	if (qp->ibqp.qp_type == IB_QPT_SMI ||
	    !(dd->ipath_flags & IPATH_HAS_SEND_DMA))
		ret = ipath_verbs_send_pio(qp, hdr, hdrwords, ss, len,
					   plen, dwords);
	else
		ret = ipath_verbs_send_dma(qp, hdr, hdrwords, ss, len,
					   plen, dwords);
	return ret;
}