|
@@ -561,12 +561,7 @@ rpcrdma_ia_open(struct rpcrdma_xprt *xprt, struct sockaddr *addr, int memreg)
|
|
|
if (!ia->ri_id->device->alloc_fmr) {
|
|
|
dprintk("RPC: %s: MTHCAFMR registration "
|
|
|
"not supported by HCA\n", __func__);
|
|
|
-#if RPCRDMA_PERSISTENT_REGISTRATION
|
|
|
memreg = RPCRDMA_ALLPHYSICAL;
|
|
|
-#else
|
|
|
- rc = -ENOMEM;
|
|
|
- goto out2;
|
|
|
-#endif
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -581,20 +576,16 @@ rpcrdma_ia_open(struct rpcrdma_xprt *xprt, struct sockaddr *addr, int memreg)
|
|
|
switch (memreg) {
|
|
|
case RPCRDMA_FRMR:
|
|
|
break;
|
|
|
-#if RPCRDMA_PERSISTENT_REGISTRATION
|
|
|
case RPCRDMA_ALLPHYSICAL:
|
|
|
mem_priv = IB_ACCESS_LOCAL_WRITE |
|
|
|
IB_ACCESS_REMOTE_WRITE |
|
|
|
IB_ACCESS_REMOTE_READ;
|
|
|
goto register_setup;
|
|
|
-#endif
|
|
|
case RPCRDMA_MTHCAFMR:
|
|
|
if (ia->ri_have_dma_lkey)
|
|
|
break;
|
|
|
mem_priv = IB_ACCESS_LOCAL_WRITE;
|
|
|
-#if RPCRDMA_PERSISTENT_REGISTRATION
|
|
|
register_setup:
|
|
|
-#endif
|
|
|
ia->ri_bind_mem = ib_get_dma_mr(ia->ri_pd, mem_priv);
|
|
|
if (IS_ERR(ia->ri_bind_mem)) {
|
|
|
printk(KERN_ALERT "%s: ib_get_dma_mr for "
|
|
@@ -1905,7 +1896,6 @@ rpcrdma_register_external(struct rpcrdma_mr_seg *seg,
|
|
|
|
|
|
switch (ia->ri_memreg_strategy) {
|
|
|
|
|
|
-#if RPCRDMA_PERSISTENT_REGISTRATION
|
|
|
case RPCRDMA_ALLPHYSICAL:
|
|
|
rpcrdma_map_one(ia, seg, writing);
|
|
|
seg->mr_rkey = ia->ri_bind_mem->rkey;
|
|
@@ -1913,7 +1903,6 @@ rpcrdma_register_external(struct rpcrdma_mr_seg *seg,
|
|
|
seg->mr_nsegs = 1;
|
|
|
nsegs = 1;
|
|
|
break;
|
|
|
-#endif
|
|
|
|
|
|
/* Registration using frmr registration */
|
|
|
case RPCRDMA_FRMR:
|
|
@@ -1943,13 +1932,11 @@ rpcrdma_deregister_external(struct rpcrdma_mr_seg *seg,
|
|
|
|
|
|
switch (ia->ri_memreg_strategy) {
|
|
|
|
|
|
-#if RPCRDMA_PERSISTENT_REGISTRATION
|
|
|
case RPCRDMA_ALLPHYSICAL:
|
|
|
read_lock(&ia->ri_qplock);
|
|
|
rpcrdma_unmap_one(ia, seg);
|
|
|
read_unlock(&ia->ri_qplock);
|
|
|
break;
|
|
|
-#endif
|
|
|
|
|
|
case RPCRDMA_FRMR:
|
|
|
rc = rpcrdma_deregister_frmr_external(seg, ia, r_xprt);
|