diff options
author | np <np@FreeBSD.org> | 2016-01-05 01:58:30 +0000 |
---|---|---|
committer | np <np@FreeBSD.org> | 2016-01-05 01:58:30 +0000 |
commit | 5f81d0ce4c8cfb790e494bd31f162eacc0cd6400 (patch) | |
tree | f0cb8fa60f1dcc6ac031fc59bd932483d995199a /sys/contrib/rdma/krping | |
parent | 8a0a03500d5bba63f6f1aa3ef546b113f8a53407 (diff) | |
download | FreeBSD-src-5f81d0ce4c8cfb790e494bd31f162eacc0cd6400.zip FreeBSD-src-5f81d0ce4c8cfb790e494bd31f162eacc0cd6400.tar.gz |
Have krping use IB_ACCESS_LOCAL_WRITE because it's required for remote
write or remote atomic operations.
Submitted by: Krishnamraju Eraparaju @ Chelsio
Diffstat (limited to 'sys/contrib/rdma/krping')
-rw-r--r-- | sys/contrib/rdma/krping/krping.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/contrib/rdma/krping/krping.c b/sys/contrib/rdma/krping/krping.c index 6ffaa38..667af40 100644 --- a/sys/contrib/rdma/krping/krping.c +++ b/sys/contrib/rdma/krping/krping.c @@ -640,6 +640,7 @@ static int krping_setup_buffers(struct krping_cb *cb) buf.size = cb->size; iovbase = cb->rdma_dma_addr; cb->rdma_mr = ib_reg_phys_mr(cb->pd, &buf, 1, + IB_ACCESS_LOCAL_WRITE| IB_ACCESS_REMOTE_READ| IB_ACCESS_REMOTE_WRITE, &iovbase); @@ -675,8 +676,10 @@ static int krping_setup_buffers(struct krping_cb *cb) if (cb->mem == MR || cb->mem == MW) { unsigned flags = IB_ACCESS_REMOTE_READ; - if (cb->wlat || cb->rlat || cb->bw) - flags |= IB_ACCESS_REMOTE_WRITE; + if (cb->wlat || cb->rlat || cb->bw) { + flags |= IB_ACCESS_LOCAL_WRITE | + IB_ACCESS_REMOTE_WRITE; + } buf.addr = cb->start_dma_addr; buf.size = cb->size; |