mirror of
https://github.com/openwrt/openwrt.git
synced 2025-01-31 16:35:44 +00:00
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:
parent
8cc2caed58
commit
e86dfd0a44
@ -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);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user