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@gmail.com>
This commit is contained in:
Ansuel Smith 2022-01-16 03:54:58 +01:00 committed by Daniel Golle
parent 8cc2caed58
commit e86dfd0a44

View File

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