On Sun, 2008-09-07 at 19:23 +0300, Olga Shern wrote: > Hi Vlad, > > Please add this patch to OFED 1.4 > > Thanks > Olga
Done, Regards, Vladimir > > -----Original Message----- > From: Yossi Etigin [mailto:[EMAIL PROTECTED] > Sent: Friday, September 05, 2008 6:01 PM > To: Roland Dreier > Cc: general list; Olga Shern > Subject: [PATCH] ipoib: fix hang while bringing down uninitialized > interface > > 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 _______________________________________________ ewg mailing list [email protected] http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
