diff options
author | Hans Petter Selasky <hselasky@FreeBSD.org> | 2015-02-17 08:40:27 +0000 |
---|---|---|
committer | Hans Petter Selasky <hselasky@FreeBSD.org> | 2015-02-17 08:40:27 +0000 |
commit | b5c1e0cb8dcc358eed9ba6179ce2555b9ea788af (patch) | |
tree | 64746faea5ee1c213d909e22c077f2b289427a99 /sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_ib.c | |
parent | fa592170fe180b62ab981da2d37a07aaf941cf0f (diff) | |
download | src-b5c1e0cb8dcc358eed9ba6179ce2555b9ea788af.tar.gz src-b5c1e0cb8dcc358eed9ba6179ce2555b9ea788af.zip |
Update the infiniband stack to Mellanox's OFED version 2.1.
Highlights:
- Multiple verbs API updates
- Support for RoCE, RDMA over ethernet
All hardware drivers depending on the common infiniband stack has been
updated aswell.
Discussed with: np @
Sponsored by: Mellanox Technologies
MFC after: 1 month
Notes
Notes:
svn path=/head/; revision=278886
Diffstat (limited to 'sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_ib.c')
-rw-r--r-- | sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_ib.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_ib.c b/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_ib.c index 4fb39b410cd8..814938c101bc 100644 --- a/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_ib.c +++ b/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_ib.c @@ -383,6 +383,7 @@ ipoib_poll(struct ipoib_dev_priv *priv) int n, i; poll_more: + spin_lock(&priv->drain_lock); for (;;) { n = ib_poll_cq(priv->recv_cq, IPOIB_NUM_WC, priv->ibwc); @@ -401,6 +402,7 @@ poll_more: if (n != IPOIB_NUM_WC) break; } + spin_unlock(&priv->drain_lock); if (ib_req_notify_cq(priv->recv_cq, IB_CQ_NEXT_COMP | IB_CQ_REPORT_MISSED_EVENTS)) @@ -707,6 +709,7 @@ void ipoib_drain_cq(struct ipoib_dev_priv *priv) { int i, n; + spin_lock(&priv->drain_lock); do { n = ib_poll_cq(priv->recv_cq, IPOIB_NUM_WC, priv->ibwc); for (i = 0; i < n; ++i) { @@ -727,6 +730,7 @@ void ipoib_drain_cq(struct ipoib_dev_priv *priv) ipoib_ib_handle_rx_wc(priv, priv->ibwc + i); } } while (n == IPOIB_NUM_WC); + spin_unlock(&priv->drain_lock); spin_lock(&priv->lock); while (ipoib_poll_tx(priv)) |