Roland, does the following patch make sense?
IP over IB seems more stable (didnt yet crash for me) with this applied.

---

Since ipoib uses queue_delayed_work to run flush task on port state events,
it must flush scheduled work after unregistering the event handler.

Signed-off-by: Michael S. Tsirkin <[EMAIL PROTECTED]>

Index: linux-2.6.13/drivers/infiniband/ulp/ipoib/ipoib_main.c
===================================================================
--- linux-2.6.13.orig/drivers/infiniband/ulp/ipoib/ipoib_main.c 2005-09-11 
12:36:47.000000000 +0300
+++ linux-2.6.13/drivers/infiniband/ulp/ipoib/ipoib_main.c      2005-09-11 
14:13:49.000000000 +0300
@@ -1005,6 +1005,7 @@ debug_failed:
 
 register_failed:
        ib_unregister_event_handler(&priv->event_handler);
+       flush_scheduled_work();
 
 event_failed:
        ipoib_dev_cleanup(priv->dev);
@@ -1057,6 +1058,7 @@ static void ipoib_remove_one(struct ib_d
 
        list_for_each_entry_safe(priv, tmp, dev_list, list) {
                ib_unregister_event_handler(&priv->event_handler);
+               flush_scheduled_work();
 
                unregister_netdev(priv->dev);
                ipoib_dev_cleanup(priv->dev);

-- 
MST
_______________________________________________
openib-general mailing list
[email protected]
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to