diff --git a/drivers/md/dm.c b/drivers/md/dm.c
index 421c9f02d8ca7329c41168e7beb5f1c2b3a6c6d1..82371412029f8a8e1cb697db5a25aae25974af34 100644
--- a/drivers/md/dm.c
+++ b/drivers/md/dm.c
@@ -1330,8 +1330,8 @@ void dm_put(struct mapped_device *md)
 			dm_table_presuspend_targets(map);
 			dm_table_postsuspend_targets(map);
 		}
-		__unbind(md);
 		dm_table_put(map);
+		__unbind(md);
 		free_dev(md);
 	}
 }