svn commit: r353546 - head/sys/ofed/drivers/infiniband/ulp/ipoib

Hans Petter Selasky hselasky at FreeBSD.org
Tue Oct 15 11:11:22 UTC 2019


Author: hselasky
Date: Tue Oct 15 11:11:21 2019
New Revision: 353546
URL: https://svnweb.freebsd.org/changeset/base/353546

Log:
  Fix missing epochification of the ipoib code after r353292.
  
  Sponsored by:	Mellanox Technologies

Modified:
  head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_cm.c
  head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c
  head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_multicast.c

Modified: head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_cm.c
==============================================================================
--- head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_cm.c	Tue Oct 15 09:50:02 2019	(r353545)
+++ head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_cm.c	Tue Oct 15 11:11:21 2019	(r353546)
@@ -845,6 +845,7 @@ static int ipoib_cm_rep_handler(struct ib_cm_id *cm_id
 	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
 		}
 	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
 			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) {

Modified: head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c
==============================================================================
--- head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c	Tue Oct 15 09:50:02 2019	(r353545)
+++ head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c	Tue Oct 15 11:11:21 2019	(r353546)
@@ -555,6 +555,7 @@ path_rec_completion(int status, struct ib_sa_path_rec 
 	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 
 	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 
 			ipoib_warn(priv, "dev_queue_xmit failed "
 				   "to requeue packet\n");
 	}
+	NET_EPOCH_EXIT(et);
 }
 
 static struct ipoib_path *
@@ -1482,6 +1485,8 @@ ipoib_output(struct ifnet *ifp, struct mbuf *m,
 	struct ipoib_header *eh;
 	int error = 0, is_gw = 0;
 	short type;
+
+	NET_EPOCH_ASSERT();
 
 	if (ro != NULL)
 		is_gw = (ro->ro_flags & RT_HAS_GW) != 0;

Modified: head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
==============================================================================
--- head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_multicast.c	Tue Oct 15 09:50:02 2019	(r353545)
+++ head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_multicast.c	Tue Oct 15 11:11:21 2019	(r353546)
@@ -157,6 +157,7 @@ static int ipoib_mcast_join_finish(struct ipoib_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 
 		}
 	}
 
+	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 
 			ipoib_warn(priv, "dev_queue_xmit failed to requeue packet\n");
 	}
 
+	NET_EPOCH_EXIT(et);
 	return 0;
 }
 


More information about the svn-src-all mailing list