[PATCH] IPoIB: fix module removal race
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@mellanox.co.il> Signed-off-by: Roland Dreier <rolandd@cisco.com>
This commit is contained in:
parent
6c0741fbde
commit
51574e0398
|
@ -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_device *device)
|
|||
|
||||
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);
|
||||
|
|
Loading…
Reference in New Issue