diff --git a/drivers/mtd/ubi/build.c b/drivers/mtd/ubi/build.c
index c7630a2..485c0fc 100644
--- a/drivers/mtd/ubi/build.c
+++ b/drivers/mtd/ubi/build.c
@@ -816,18 +816,24 @@ int ubi_attach_mtd_dev(struct mtd_info *mtd, int ubi_num, int vid_hdr_offset)
 		goto out_free;
 
 	ubi->peb_buf1 = vmalloc(ubi->peb_size);
-	if (!ubi->peb_buf1)
+	if (!ubi->peb_buf1) {
+		err = -ENOMEM;
 		goto out_free;
+	}
 
 	ubi->peb_buf2 = vmalloc(ubi->peb_size);
-	if (!ubi->peb_buf2)
-		 goto out_free;
+	if (!ubi->peb_buf2) {
+		err = -ENOMEM;
+		goto out_free;
+	}
 
 #ifdef CONFIG_MTD_UBI_DEBUG
 	mutex_init(&ubi->dbg_buf_mutex);
 	ubi->dbg_peb_buf = vmalloc(ubi->peb_size);
-	if (!ubi->dbg_peb_buf)
-		 goto out_free;
+	if (!ubi->dbg_peb_buf) {
+		err = -ENOMEM;
+		goto out_free;
+	}
 #endif
 
 	err = attach_by_scanning(ubi);
