[openib-general] Re: recursion depth exceeded in ipoib_workqueue

Roland Dreier rolandd at cisco.com
Mon Sep 19 09:42:33 PDT 2005


Thanks, good catch.  It seems that since ipoib_mcast_restart_task()
runs from the same workqueue as the "multicast thread", we don't
actually need to stop the thread -- if the restart task is running,
we know that the multicast thread isn't running and can't run until
the restart task returns.  So no need to flush the workqueue...

Something like this should work, right?

--- linux-kernel/infiniband/ulp/ipoib/ipoib_multicast.c	(revision 3480)
+++ linux-kernel/infiniband/ulp/ipoib/ipoib_multicast.c	(working copy)
@@ -832,8 +832,6 @@ void ipoib_mcast_restart_task(void *dev_
 
 	ipoib_dbg_mcast(priv, "restarting multicast task\n");
 
-	ipoib_mcast_stop_thread(dev);
-
 	spin_lock_irqsave(&priv->lock, flags);
 
 	/*



More information about the general mailing list