summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael S. Tsirkin <mst@mellanox.co.il>2006-01-17 09:41:47 -0800
committerRoland Dreier <rolandd@cisco.com>2006-01-17 09:41:47 -0800
commitcc76e33ec98ee2acab2d10828d31588d1b10f274 (patch)
treed27b370cfd39b940b28c8b3401d750d82107ac4b
parent47f7a0714b67b904a3a36e2f2d85904e8064219b (diff)
downloadlinux-stable-cc76e33ec98ee2acab2d10828d31588d1b10f274.tar.gz
linux-stable-cc76e33ec98ee2acab2d10828d31588d1b10f274.tar.bz2
linux-stable-cc76e33ec98ee2acab2d10828d31588d1b10f274.zip
IB/uverbs: Flush scheduled work before unloading module
uverbs might schedule work to clean up when a file is closed. Make sure that this work runs before allowing module text to go away. Signed-off-by: Michael S. Tsirkin <mst@mellanox.co.il> Signed-off-by: Roland Dreier <rolandd@cisco.com>
-rw-r--r--drivers/infiniband/core/uverbs_main.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/infiniband/core/uverbs_main.c b/drivers/infiniband/core/uverbs_main.c
index 96ea79b63df7..903f85a4bc0c 100644
--- a/drivers/infiniband/core/uverbs_main.c
+++ b/drivers/infiniband/core/uverbs_main.c
@@ -902,6 +902,7 @@ static void __exit ib_uverbs_cleanup(void)
unregister_filesystem(&uverbs_event_fs);
class_destroy(uverbs_class);
unregister_chrdev_region(IB_UVERBS_BASE_DEV, IB_UVERBS_MAX_DEVICES);
+ flush_scheduled_work();
idr_destroy(&ib_uverbs_pd_idr);
idr_destroy(&ib_uverbs_mr_idr);
idr_destroy(&ib_uverbs_mw_idr);