Roland, Can you comment on this? It fixes a soft lockup during ipoib stop.
-------- Original Message -------- Subject: [ofa-general] ***SPAM*** [PATCH] ipoib: fix hang while bringing down uninitialized interface Date: Fri, 05 Sep 2008 18:00:46 +0300 From: Yossi Etigin <[EMAIL PROTECTED]> To: Roland Dreier <[EMAIL PROTECTED]> CC: Olga Shern <[EMAIL PROTECTED]>, general list <[email protected]> Fix bug #1172: If a pkey for an interface is not found during initialization, then poll_timer is left uninitialized. When the device is brought down, ipoib tries to del_timer_sync() it. This call hangs in an infinite loop in lock_timer_base(), because timer_base is NULL. We should check whether the timer was really initialized. Signed-off-by: Yossi Etigin <[EMAIL PROTECTED]> -- diff --git a/drivers/infiniband/ulp/ipoib/ipoib_ib.c b/drivers/infiniband/ulp/ipoib/ipoib_ib.c index 66cafa2..3bbf46d 100644 --- a/drivers/infiniband/ulp/ipoib/ipoib_ib.c +++ b/drivers/infiniband/ulp/ipoib/ipoib_ib.c @@ -850,7 +850,10 @@ int ipoib_ib_dev_stop(struct net_device *dev, int flush) ipoib_dbg(priv, "All sends and receives done.\n"); timeout: - del_timer_sync(&priv->poll_timer); + /* Make sure the timer is initialized */ + if (priv->poll_timer.function) + del_timer_sync(&priv->poll_timer); + qp_attr.qp_state = IB_QPS_RESET; if (ib_modify_qp(priv->qp, &qp_attr, IB_QP_STATE)) ipoib_warn(priv, "Failed to modify QP to RESET state\n"); --Yossi _______________________________________________ general mailing list [email protected] http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general _______________________________________________ general mailing list [email protected] http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general
