diff --git a/drivers/block/loop.c b/drivers/block/loop.c
index 747bb2af69dcc55fec530466a9f55d06914ba8f7..ee13a82f3f5ef526068122d9c3adc83586627a86 100644
--- a/drivers/block/loop.c
+++ b/drivers/block/loop.c
@@ -1623,6 +1623,7 @@ static int loop_add(struct loop_device **l, int i)
 		goto out_free_dev;
 	i = err;
 
+	err = -ENOMEM;
 	lo->lo_queue = blk_alloc_queue(GFP_KERNEL);
 	if (!lo->lo_queue)
 		goto out_free_dev;