diff --git a/drivers/block/loop.c b/drivers/block/loop.c index 76e12f3482a9..f4fa04c90460 100644 --- a/drivers/block/loop.c +++ b/drivers/block/loop.c @@ -2386,15 +2386,14 @@ static int loop_exit_cb(int id, void *ptr, void *data) static void __exit loop_exit(void) { + unregister_blkdev(LOOP_MAJOR, "loop"); + misc_deregister(&loop_misc); + mutex_lock(&loop_ctl_mutex); idr_for_each(&loop_index_idr, &loop_exit_cb, NULL); idr_destroy(&loop_index_idr); - unregister_blkdev(LOOP_MAJOR, "loop"); - - misc_deregister(&loop_misc); - mutex_unlock(&loop_ctl_mutex); }