[openwrt/openwrt] ipq806x: rework rootfs conflicts patch for smem

LEDE Commits lede-commits at lists.infradead.org
Sun Mar 27 08:17:57 PDT 2022


dangole pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/e86dfd0a44b8dece1bee04f34762888ce92732a4

commit e86dfd0a44b8dece1bee04f34762888ce92732a4
Author: Ansuel Smith <ansuelsmth at gmail.com>
AuthorDate: Sun Jan 16 03:54:58 2022 +0100

    ipq806x: rework rootfs conflicts patch for smem
    
    Now that smem actually free the leaked parts, when
    a rootfs partition is detected, the kernel panics as
    it try to free the static space allocated for the "ubi"
    name. Change the logic and fix the name at the allocate_partition
    function to correctly free the space allocated by smem.
    
    Signed-off-by: Ansuel Smith <ansuelsmth at gmail.com>
---
 ...otfs-conflicts-with-OpenWrt-auto-mounting.patch | 31 +++++++++++-----------
 1 file changed, 16 insertions(+), 15 deletions(-)

diff --git a/target/linux/ipq806x/patches-5.15/102-mtd-rootfs-conflicts-with-OpenWrt-auto-mounting.patch b/target/linux/ipq806x/patches-5.15/102-mtd-rootfs-conflicts-with-OpenWrt-auto-mounting.patch
index e83872935f..5055261c4b 100644
--- a/target/linux/ipq806x/patches-5.15/102-mtd-rootfs-conflicts-with-OpenWrt-auto-mounting.patch
+++ b/target/linux/ipq806x/patches-5.15/102-mtd-rootfs-conflicts-with-OpenWrt-auto-mounting.patch
@@ -5,20 +5,21 @@ Subject: [PATCH 61/69] mtd: "rootfs" conflicts with OpenWrt auto mounting
 
 Signed-off-by: John Crispin <john at phrozen.org>
 ---
- drivers/mtd/parsers/qcomsmempart.c | 4 ++++
+ drivers/mtd/mtdpart.c | 4 ++++
  1 file changed, 4 insertions(+)
 
---- a/drivers/mtd/parsers/qcomsmempart.c
-+++ b/drivers/mtd/parsers/qcomsmempart.c
-@@ -132,6 +132,11 @@ static int parse_qcomsmem_part(struct mt
- 		parts[i].offset = le32_to_cpu(pentry->offset) * mtd->erasesize;
- 		parts[i].mask_flags = pentry->attr;
- 		parts[i].size = le32_to_cpu(pentry->length) * mtd->erasesize;
-+
-+		/* "rootfs" conflicts with OpenWrt auto mounting */
-+		if (mtd_type_is_nand(mtd) && !strcmp(name, "rootfs"))
-+			parts[i].name = "ubi";
-+
- 		pr_debug("%d: %s offs=0x%08x size=0x%08x attr:0x%08x\n",
- 			 i, pentry->name, le32_to_cpu(pentry->offset),
- 			 le32_to_cpu(pentry->length), pentry->attr);
+--- a/drivers/mtd/mtdpart.c
++++ b/drivers/mtd/mtdpart.c
+@@ -139,7 +139,11 @@
+ 
+ 	/* allocate the partition structure */
+ 	child = kzalloc(sizeof(*child), GFP_KERNEL);
++	/* "rootfs" conflicts with OpenWrt auto mounting */
++	if (mtd_type_is_nand(parent) && !strcmp(part->name, "rootfs"))
++		name = "ubi";
++	else
++		name = kstrdup(part->name, GFP_KERNEL);
+-	name = kstrdup(part->name, GFP_KERNEL);
+ 	if (!name || !child) {
+ 		printk(KERN_ERR"memory allocation error while creating partitions for \"%s\"\n",
+ 		       parent->name);




More information about the lede-commits mailing list