mirror of
https://github.com/opnsense/src.git
synced 2026-06-09 00:32:25 -04:00
Fix missing epochification of the ipoib code after r353292.
Sponsored by: Mellanox Technologies
This commit is contained in:
parent
51b1593065
commit
f570a1bd09
3 changed files with 12 additions and 0 deletions
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue