[PATCH 01/10] IPoIB: fix module removal race

From: Roland Dreier
Date: Tue Sep 20 2005 - 17:08:59 EST


From: Michael S. Tsirkin <mst@xxxxxxxxxxxxxx>

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 <mst@xxxxxxxxxxxxxx>
Signed-off-by: Roland Dreier <rolandd@xxxxxxxxx>

---

drivers/infiniband/ulp/ipoib/ipoib_main.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)

b21607256f3370b9eba48cd0b67e8686c6b51a64
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_main.c b/drivers/infiniband/ulp/ipoib/ipoib_main.c
--- a/drivers/infiniband/ulp/ipoib/ipoib_main.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c
@@ -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);
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/