[OpenWrt-Devel] [PATCH] Revert "kernel: rewrite run_parsers_by_type() to use add_mtd_partitions()"

Enrico Mioso mrkiko.rs at gmail.com
Sat Mar 7 11:58:19 EST 2020


Hello guys!
why can't we revert this patch right now, while working out what's goin on?
thank you! and sorry for the insistence.

Enrico


On Fri, 6 Mar 2020, Piotr Dymacz wrote:

> Date: Fri, 6 Mar 2020 09:09:15
> From: Piotr Dymacz <pepe2k at gmail.com>
> To: Petr Štetiar <ynezz at true.cz>, openwrt-devel at lists.openwrt.org
> Cc: Rafał Miłecki <rafal at milecki.pl>
> Subject: Re: [OpenWrt-Devel] [PATCH] Revert
>     "kernel: rewrite run_parsers_by_type() to use add_mtd_partitions()"
> 
> Hi Petr, Rafał,
>
> On 02.03.2020 13:58, Petr Štetiar wrote:
>> This reverts commit 15a0701cdde8eeae2a54880b813cdb8cdc09a384.
>> 
>> Seems like this patch has introduced some regressions on the ramips
>> target which is still on 4.14 kernel as this commit touches only 4.14
>> kernel patches.
>>
>>   jffs2: Erase at 0x00378000 failed immediately: errno -22
>>   jffs2: Node CRC ffffffff != calculated CRC f09e7845 for node at 00c08510
>> 
>> Ref: FS#2837, FS#2862
>
> Fixes also very serious (erase of ART) FS#2864.
> Ref: https://bugs.openwrt.org/index.php?do=details&task_id=2864
>
> -- 
> Cheers,
> Piotr
>
>> Ref: 
> https://forum.openwrt.org/t/jffs2-partition-not-save-new-package-installation-or-save-settings
>> Cc: Rafał Miłecki <rafal at milecki.pl>
>> Signed-off-by: Petr Štetiar <ynezz at true.cz>
>> ---
>>   ...for-different-partition-parser-types.patch | 33 ++++++++++++-------
>>   ...arsers-for-rootfs-and-firmware-split.patch |  4 +--
>>   .../404-mtd-add-more-helper-functions.patch   |  2 +-
>>   3 files changed, 24 insertions(+), 15 deletions(-)
>> 
>> diff --git 
> a/target/linux/generic/pending-4.14/401-mtd-add-support-for-different-partition-parser-types.patch 
> b/target/linux/generic/pending-4.14/401-mtd-add-support-for-different-partition-parser-types.patch
>> index ae13112ef6d0..057d47368443 100644
>> --- 
> a/target/linux/generic/pending-4.14/401-mtd-add-support-for-different-partition-parser-types.patch
>> +++ 
> b/target/linux/generic/pending-4.14/401-mtd-add-support-for-different-partition-parser-types.patch
>> @@ -20,35 +20,44 @@ Signed-off-by: Gabor Juhos <juhosg at openwrt.org>
>>
>>    /*
>>     * Given a pointer to the MTD object in the mtd_part structure, we can 
> retrieve
>> -@@ -762,6 +766,27 @@ int mtd_del_partition(struct mtd_info *m
>> +@@ -762,6 +766,36 @@ int mtd_del_partition(struct mtd_info *m
>>    }
>>    EXPORT_SYMBOL_GPL(mtd_del_partition);
>>
>>   +static int
>>   +run_parsers_by_type(struct mtd_part *slave, enum mtd_parser_type type)
>>   +{
>> -+	struct mtd_partitions pparts = { };
>> -+	int err;
>> ++	struct mtd_partition *parts;
>> ++	int nr_parts;
>> ++	int i;
>>   +
>> -+	pparts.nr_parts = parse_mtd_partitions_by_type(&slave->mtd, type,
>> -+						       &pparts.parts, NULL);
>> -+	if (pparts.nr_parts <= 0)
>> -+		return pparts.nr_parts;
>> ++	nr_parts = parse_mtd_partitions_by_type(&slave->mtd, type, (const 
> struct mtd_partition **)&parts,
>> ++						NULL);
>> ++	if (nr_parts <= 0)
>> ++		return nr_parts;
>>   +
>> -+	if (WARN_ON(!pparts.parts))
>> ++	if (WARN_ON(!parts))
>>   +		return 0;
>>   +
>> -+	err = add_mtd_partitions(&slave->mtd, pparts.parts, pparts.nr_parts);
>> ++	for (i = 0; i < nr_parts; i++) {
>> ++		/* adjust partition offsets */
>> ++		parts[i].offset += slave->offset;
>>   +
>> -+	kfree(pparts.parts);
>> ++		mtd_add_partition(slave->parent,
>> ++				  parts[i].name,
>> ++				  parts[i].offset,
>> ++				  parts[i].size);
>> ++	}
>> ++
>> ++	kfree(parts);
>>   +
>> -+	return err ? err : pparts.nr_parts;
>> ++	return nr_parts;
>>   +}
>>   +
>>    #ifdef CONFIG_MTD_SPLIT_FIRMWARE_NAME
>>    #define SPLIT_FIRMWARE_NAME	CONFIG_MTD_SPLIT_FIRMWARE_NAME
>>    #else
>> -@@ -1147,6 +1172,61 @@ void mtd_part_parser_cleanup(struct mtd_
>> +@@ -1147,6 +1181,61 @@ void mtd_part_parser_cleanup(struct mtd_
>>    	}
>>    }
>> 
>> diff --git 
> a/target/linux/generic/pending-4.14/402-mtd-use-typed-mtd-parsers-for-rootfs-and-firmware-split.patch 
> b/target/linux/generic/pending-4.14/402-mtd-use-typed-mtd-parsers-for-rootfs-and-firmware-split.patch
>> index 149c328ac4d5..2cc06dd463b3 100644
>> --- 
> a/target/linux/generic/pending-4.14/402-mtd-use-typed-mtd-parsers-for-rootfs-and-firmware-split.patch
>> +++ 
> b/target/linux/generic/pending-4.14/402-mtd-use-typed-mtd-parsers-for-rootfs-and-firmware-split.patch
>> @@ -10,7 +10,7 @@ Signed-off-by: Gabor Juhos <juhosg at openwrt.org>
>>
>>   --- a/drivers/mtd/mtdpart.c
>>   +++ b/drivers/mtd/mtdpart.c
>> -@@ -795,6 +795,7 @@ run_parsers_by_type(struct mtd_part *sla
>> +@@ -804,6 +804,7 @@ run_parsers_by_type(struct mtd_part *sla
>>
>>    static void split_firmware(struct mtd_info *master, struct mtd_part 
> *part)
>>    {
>> @@ -18,7 +18,7 @@ Signed-off-by: Gabor Juhos <juhosg at openwrt.org>
>>    }
>>
>>    static void mtd_partition_split(struct mtd_info *master, struct mtd_part 
> *part)
>> -@@ -804,6 +805,12 @@ static void mtd_partition_split(struct m
>> +@@ -813,6 +814,12 @@ static void mtd_partition_split(struct m
>>    	if (rootfs_found)
>>    		return;
>> 
>> diff --git 
> a/target/linux/generic/pending-4.14/404-mtd-add-more-helper-functions.patch 
> b/target/linux/generic/pending-4.14/404-mtd-add-more-helper-functions.patch
>> index d1a32872af21..7b481ffb47a5 100644
>> --- 
> a/target/linux/generic/pending-4.14/404-mtd-add-more-helper-functions.patch
>> +++ 
> b/target/linux/generic/pending-4.14/404-mtd-add-more-helper-functions.patch
>> @@ -11,7 +11,7 @@ Signed-off-by: Gabor Juhos <juhosg at openwrt.org>
>>
>>   --- a/drivers/mtd/mtdpart.c
>>   +++ b/drivers/mtd/mtdpart.c
>> -@@ -1251,6 +1251,24 @@ int mtd_is_partition(const struct mtd_in
>> +@@ -1260,6 +1260,24 @@ int mtd_is_partition(const struct mtd_in
>>    }
>>    EXPORT_SYMBOL_GPL(mtd_is_partition);
>> 
>> 
>> _______________________________________________
>> openwrt-devel mailing list
>> openwrt-devel at lists.openwrt.org
>> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
>> 
>
>
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel at lists.openwrt.org
> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
>
-------------- next part --------------
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


More information about the openwrt-devel mailing list