aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic/hack-5.10/421-mtd-fix-squashfs-root-on-targets-with-CONFIG_FIT_PAR.patch
blob: df93c6be6217e53e938519a51c23d16ad04a565f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
From: Felix Fietkau <nbd@nbd.name>
Date: Sat Apr 10 17:00:57 2021 +0200
Subject: [PATCH] mtd: fix squashfs root on targets with CONFIG_FIT_PARTITION

Fix assumption about the block device index
---

--- a/drivers/mtd/mtdcore.c
+++ b/drivers/mtd/mtdcore.c
@@ -760,12 +760,18 @@ int add_mtd_device(struct mtd_info *mtd)
 
 	if (of_find_property(mtd_get_of_node(mtd), "linux,rootfs", NULL) ||
 	    (IS_ENABLED(CONFIG_MTD_ROOTFS_ROOT_DEV) && !strcmp(mtd->name, "rootfs") && ROOT_DEV == 0)) {
+		unsigned int index = mtd->index;
+
+#ifdef CONFIG_FIT_PARTITION
+		index <<= 2;
+#endif
+
 		if (IS_BUILTIN(CONFIG_MTD)) {
-			pr_info("mtd: setting mtd%d (%s) as root device\n", mtd->index, mtd->name);
-			ROOT_DEV = MKDEV(MTD_BLOCK_MAJOR, mtd->index);
+			pr_info("mtd: setting mtd%d (%s) as root device\n", index, mtd->name);
+			ROOT_DEV = MKDEV(MTD_BLOCK_MAJOR, index);
 		} else {
 			pr_warn("mtd: can't set mtd%d (%s) as root device - mtd must be builtin\n",
-				mtd->index, mtd->name);
+				index, mtd->name);
 		}
 	}