summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorVu Pham <vu@mellanox.com>2009-05-26 14:51:00 -0400
committerTrond Myklebust <Trond.Myklebust@netapp.com>2009-05-26 14:51:00 -0400
commit68743082b560067e3e93eab8b2568f238e486865 (patch)
treeb907dd1a170e6be38e4ab5fb61733f642532bf9c /net
parentb18f1e21993f73f072b1e0859f942fb11afddcb1 (diff)
downloadlinux-68743082b560067e3e93eab8b2568f238e486865.tar.gz
linux-68743082b560067e3e93eab8b2568f238e486865.tar.bz2
linux-68743082b560067e3e93eab8b2568f238e486865.zip
XPRTRDMA: fix client rpcrdma FRMR registration on mlx4 devices
mlx4/connectX FRMR requires local write enable together with remote rdma write enable. This fixes NFS/RDMA operation over the ConnectX Infiniband HCA in the default memreg mode. Signed-off-by: Vu Pham <vu@mellanox.com> Signed-off-by: Tom Talpey <tmtalpey@gmail.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'net')
-rw-r--r--net/sunrpc/xprtrdma/verbs.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/sunrpc/xprtrdma/verbs.c b/net/sunrpc/xprtrdma/verbs.c
index 3b21e0cc5e69..465aafc2007f 100644
--- a/net/sunrpc/xprtrdma/verbs.c
+++ b/net/sunrpc/xprtrdma/verbs.c
@@ -1495,7 +1495,8 @@ rpcrdma_register_frmr_external(struct rpcrdma_mr_seg *seg,
frmr_wr.wr.fast_reg.page_shift = PAGE_SHIFT;
frmr_wr.wr.fast_reg.length = i << PAGE_SHIFT;
frmr_wr.wr.fast_reg.access_flags = (writing ?
- IB_ACCESS_REMOTE_WRITE : IB_ACCESS_REMOTE_READ);
+ IB_ACCESS_REMOTE_WRITE | IB_ACCESS_LOCAL_WRITE :
+ IB_ACCESS_REMOTE_READ);
frmr_wr.wr.fast_reg.rkey = seg1->mr_chunk.rl_mw->r.frmr.fr_mr->rkey;
DECR_CQCOUNT(&r_xprt->rx_ep);