Author: hselasky
Date: Fri Apr 22 06:33:06 2016
New Revision: 298458
URL: https://svnweb.freebsd.org/changeset/base/298458

Log:
  Add missing set of the current VNET when inputting IP packets in IPoIB.
  
  This fixes a kernel panic when using IPoIB with VIMAGE and infiniband.
  
  PR:           208957
  Sponsored by: Mellanox Technologies
  Tested by:    Justin Clift <jus...@postgresql.org>
  MFC after:    1 week

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

Modified: head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_cm.c
==============================================================================
--- head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_cm.c       Fri Apr 22 
06:32:27 2016        (r298457)
+++ head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_cm.c       Fri Apr 22 
06:33:06 2016        (r298458)
@@ -481,6 +481,8 @@ void ipoib_cm_handle_rx_wc(struct ipoib_
        int has_srq;
        u_short proto;
 
+       CURVNET_SET_QUIET(dev->if_vnet);
+
        ipoib_dbg_data(priv, "cm recv completion: id %d, status: %d\n",
                       wr_id, wc->status);
 
@@ -496,7 +498,7 @@ void ipoib_cm_handle_rx_wc(struct ipoib_
                } else
                        ipoib_warn(priv, "cm recv completion event with wrid %d 
(> %d)\n",
                                   wr_id, ipoib_recvq_size);
-               return;
+               goto done;
        }
 
        p = wc->qp->qp_context;
@@ -520,7 +522,7 @@ void ipoib_cm_handle_rx_wc(struct ipoib_
                                queue_work(ipoib_workqueue, 
&priv->cm.rx_reap_task);
                                spin_unlock(&priv->lock);
                        }
-                       return;
+                       goto done;
                }
        }
 
@@ -579,6 +581,9 @@ repost:
                                   "for buf %d\n", wr_id);
                }
        }
+done:
+       CURVNET_RESTORE();
+       return;
 }
 
 static inline int post_send(struct ipoib_dev_priv *priv,
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to