diff options
| author | Hans Petter Selasky <hselasky@FreeBSD.org> | 2019-10-15 11:11:21 +0000 |
|---|---|---|
| committer | Hans Petter Selasky <hselasky@FreeBSD.org> | 2019-10-15 11:11:21 +0000 |
| commit | f570a1bd0939bbe5b89df53b64f540d4ede8bd2d (patch) | |
| tree | dffb62cd137eb8f8f27cf725bff1122ad08db8e7 /sys/ofed/drivers/infiniband/ulp | |
| parent | 51b159306584004fc4d4fba87d64d85f73007491 (diff) | |
Notes
Diffstat (limited to 'sys/ofed/drivers/infiniband/ulp')
| -rw-r--r-- | sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_cm.c | 3 | ||||
| -rw-r--r-- | sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c | 5 | ||||
| -rw-r--r-- | sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 4 |
3 files changed, 12 insertions, 0 deletions
diff --git a/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_cm.c b/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_cm.c index 2f0ea2fc5783..b3984167fb42 100644 --- a/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_cm.c +++ b/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_cm.c @@ -845,6 +845,7 @@ static int ipoib_cm_rep_handler(struct ib_cm_id *cm_id, struct ib_cm_event *even struct ipoib_cm_tx *p = cm_id->context; struct ipoib_dev_priv *priv = p->priv; struct ipoib_cm_data *data = event->private_data; + struct epoch_tracker et; struct ifqueue mbqueue; struct ib_qp_attr qp_attr; int qp_attr_mask, ret; @@ -898,6 +899,7 @@ static int ipoib_cm_rep_handler(struct ib_cm_id *cm_id, struct ib_cm_event *even } spin_unlock_irq(&priv->lock); + NET_EPOCH_ENTER(et); for (;;) { struct ifnet *dev = p->priv->dev; _IF_DEQUEUE(&mbqueue, mb); @@ -908,6 +910,7 @@ static int ipoib_cm_rep_handler(struct ib_cm_id *cm_id, struct ib_cm_event *even ipoib_warn(priv, "dev_queue_xmit failed " "to requeue packet\n"); } + NET_EPOCH_EXIT(et); ret = ib_send_cm_rtu(cm_id, NULL, 0); if (ret) { diff --git a/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c b/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c index e411000f84b3..99c46b581fc2 100644 --- a/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c +++ b/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c @@ -555,6 +555,7 @@ path_rec_completion(int status, struct ib_sa_path_rec *pathrec, void *path_ptr) struct ifnet *dev = priv->dev; struct ipoib_ah *ah = NULL; struct ipoib_ah *old_ah = NULL; + struct epoch_tracker et; struct ifqueue mbqueue; struct mbuf *mb; unsigned long flags; @@ -609,6 +610,7 @@ path_rec_completion(int status, struct ib_sa_path_rec *pathrec, void *path_ptr) if (old_ah) ipoib_put_ah(old_ah); + NET_EPOCH_ENTER(et); for (;;) { _IF_DEQUEUE(&mbqueue, mb); if (mb == NULL) @@ -618,6 +620,7 @@ path_rec_completion(int status, struct ib_sa_path_rec *pathrec, void *path_ptr) ipoib_warn(priv, "dev_queue_xmit failed " "to requeue packet\n"); } + NET_EPOCH_EXIT(et); } static struct ipoib_path * @@ -1483,6 +1486,8 @@ ipoib_output(struct ifnet *ifp, struct mbuf *m, int error = 0, is_gw = 0; short type; + NET_EPOCH_ASSERT(); + if (ro != NULL) is_gw = (ro->ro_flags & RT_HAS_GW) != 0; #ifdef MAC diff --git a/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_multicast.c b/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_multicast.c index 3518bd0a117d..6998d3461fe9 100644 --- a/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_multicast.c +++ b/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_multicast.c @@ -157,6 +157,7 @@ static int ipoib_mcast_join_finish(struct ipoib_mcast *mcast, struct ipoib_dev_priv *priv = mcast->priv; struct ifnet *dev = priv->dev; struct ipoib_ah *ah; + struct epoch_tracker et; int ret; int set_qkey = 0; @@ -227,6 +228,8 @@ static int ipoib_mcast_join_finish(struct ipoib_mcast *mcast, } } + NET_EPOCH_ENTER(et); + /* actually send any queued packets */ while (mcast->pkt_queue.ifq_len) { struct mbuf *mb; @@ -237,6 +240,7 @@ static int ipoib_mcast_join_finish(struct ipoib_mcast *mcast, ipoib_warn(priv, "dev_queue_xmit failed to requeue packet\n"); } + NET_EPOCH_EXIT(et); return 0; } |
