>How about this approach? Basically it just open-codes delayed work by >splitting the timer and the work struct, and switches to mod_timer() >instead of del_timer() + add_timer(). It passes very light testing here >(basically I started ipoib and nothing blew up).
The approach looks okay to me. >@@ -512,7 +523,8 @@ static void unregister_mad_agent(struct >ib_mad_agent_private *mad_agent_priv) > */ > cancel_mads(mad_agent_priv); > port_priv = mad_agent_priv->qp_info->port_priv; >- cancel_delayed_work(&mad_agent_priv->timed_work); >+ del_timer_sync(&mad_agent_priv->timeout_timer); >+ cancel_work_sync(&mad_agent_priv->timeout_work); I had to check if there was a race between del_timer_sync() and the worker thread, but the call to cancel_mads() looks like it prevents any issues. - Sean _______________________________________________ general mailing list general@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general