|
@@ -1202,40 +1202,6 @@ static int svc_rdma_secure_port(struct svc_rqst *rqstp)
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
|
-/*
|
|
|
- * Attempt to register the kvec representing the RPC memory with the
|
|
|
- * device.
|
|
|
- *
|
|
|
- * Returns:
|
|
|
- * NULL : The device does not support fastreg or there were no more
|
|
|
- * fastreg mr.
|
|
|
- * frmr : The kvec register request was successfully posted.
|
|
|
- * <0 : An error was encountered attempting to register the kvec.
|
|
|
- */
|
|
|
-int svc_rdma_fastreg(struct svcxprt_rdma *xprt,
|
|
|
- struct svc_rdma_fastreg_mr *frmr)
|
|
|
-{
|
|
|
- struct ib_send_wr fastreg_wr;
|
|
|
- u8 key;
|
|
|
-
|
|
|
- /* Bump the key */
|
|
|
- key = (u8)(frmr->mr->lkey & 0x000000FF);
|
|
|
- ib_update_fast_reg_key(frmr->mr, ++key);
|
|
|
-
|
|
|
- /* Prepare FASTREG WR */
|
|
|
- memset(&fastreg_wr, 0, sizeof fastreg_wr);
|
|
|
- fastreg_wr.opcode = IB_WR_FAST_REG_MR;
|
|
|
- fastreg_wr.send_flags = IB_SEND_SIGNALED;
|
|
|
- fastreg_wr.wr.fast_reg.iova_start = (unsigned long)frmr->kva;
|
|
|
- fastreg_wr.wr.fast_reg.page_list = frmr->page_list;
|
|
|
- fastreg_wr.wr.fast_reg.page_list_len = frmr->page_list_len;
|
|
|
- fastreg_wr.wr.fast_reg.page_shift = PAGE_SHIFT;
|
|
|
- fastreg_wr.wr.fast_reg.length = frmr->map_len;
|
|
|
- fastreg_wr.wr.fast_reg.access_flags = frmr->access_flags;
|
|
|
- fastreg_wr.wr.fast_reg.rkey = frmr->mr->lkey;
|
|
|
- return svc_rdma_send(xprt, &fastreg_wr);
|
|
|
-}
|
|
|
-
|
|
|
int svc_rdma_send(struct svcxprt_rdma *xprt, struct ib_send_wr *wr)
|
|
|
{
|
|
|
struct ib_send_wr *bad_wr, *n_wr;
|