Author: nbd Date: 2014-07-18 16:36:38 +0200 (Fri, 18 Jul 2014) New Revision: 41733
Modified: trunk/target/linux/generic/patches-3.10/411-mtd-partial_eraseblock_write.patch trunk/target/linux/generic/patches-3.13/411-mtd-partial_eraseblock_write.patch trunk/target/linux/generic/patches-3.14/411-mtd-partial_eraseblock_write.patch trunk/target/linux/generic/patches-3.3/401-partial_eraseblock_write.patch trunk/target/linux/generic/patches-3.6/401-partial_eraseblock_write.patch trunk/target/linux/generic/patches-3.8/401-partial_eraseblock_write.patch trunk/target/linux/generic/patches-3.9/401-partial_eraseblock_write.patch Log: kernel: mtd: allow partial block erase This fixes error erasing partial mtd partition which does not start on eraseblock boundary and allows using fconfig to configure redboot on devices such as the Gateworks Cambria. Signed-off-by: Maciej Skrzypek <[email protected]> Modified: trunk/target/linux/generic/patches-3.10/411-mtd-partial_eraseblock_write.patch =================================================================== --- trunk/target/linux/generic/patches-3.10/411-mtd-partial_eraseblock_write.patch 2014-07-18 14:25:43 UTC (rev 41732) +++ trunk/target/linux/generic/patches-3.10/411-mtd-partial_eraseblock_write.patch 2014-07-18 14:36:38 UTC (rev 41733) @@ -9,7 +9,7 @@ /* Our partition linked list */ static LIST_HEAD(mtd_partitions); static DEFINE_MUTEX(mtd_partitions_mutex); -@@ -231,13 +233,60 @@ static int part_erase(struct mtd_info *m +@@ -231,13 +233,61 @@ static int part_erase(struct mtd_info *m struct mtd_part *part = PART(mtd); int ret; @@ -33,6 +33,7 @@ + part->master->erasesize, + &readlen, instr->erase_buf); + ++ instr->len += instr->erase_buf_ofs; + instr->partial_start = true; + } else { + mtd_ofs = part->offset + part->mtd.size; @@ -70,7 +71,7 @@ return ret; } -@@ -245,7 +294,25 @@ void mtd_erase_callback(struct erase_inf +@@ -245,7 +295,25 @@ void mtd_erase_callback(struct erase_inf { if (instr->mtd->_erase == part_erase) { struct mtd_part *part = PART(instr->mtd); @@ -96,7 +97,7 @@ if (instr->fail_addr != MTD_FAIL_ADDR_UNKNOWN) instr->fail_addr -= part->offset; instr->addr -= part->offset; -@@ -503,18 +570,24 @@ static struct mtd_part *allocate_partiti +@@ -503,18 +571,24 @@ static struct mtd_part *allocate_partiti if ((slave->mtd.flags & MTD_WRITEABLE) && mtd_mod_by_eb(slave->offset, &slave->mtd)) { /* Doesn't start on a boundary of major erase size */ Modified: trunk/target/linux/generic/patches-3.13/411-mtd-partial_eraseblock_write.patch =================================================================== --- trunk/target/linux/generic/patches-3.13/411-mtd-partial_eraseblock_write.patch 2014-07-18 14:25:43 UTC (rev 41732) +++ trunk/target/linux/generic/patches-3.13/411-mtd-partial_eraseblock_write.patch 2014-07-18 14:36:38 UTC (rev 41733) @@ -9,7 +9,7 @@ /* Our partition linked list */ static LIST_HEAD(mtd_partitions); static DEFINE_MUTEX(mtd_partitions_mutex); -@@ -231,13 +233,60 @@ static int part_erase(struct mtd_info *m +@@ -231,13 +233,61 @@ static int part_erase(struct mtd_info *m struct mtd_part *part = PART(mtd); int ret; @@ -33,6 +33,7 @@ + part->master->erasesize, + &readlen, instr->erase_buf); + ++ instr->len += instr->erase_buf_ofs; + instr->partial_start = true; + } else { + mtd_ofs = part->offset + part->mtd.size; @@ -70,7 +71,7 @@ return ret; } -@@ -245,7 +294,25 @@ void mtd_erase_callback(struct erase_inf +@@ -245,7 +295,25 @@ void mtd_erase_callback(struct erase_inf { if (instr->mtd->_erase == part_erase) { struct mtd_part *part = PART(instr->mtd); @@ -96,7 +97,7 @@ if (instr->fail_addr != MTD_FAIL_ADDR_UNKNOWN) instr->fail_addr -= part->offset; instr->addr -= part->offset; -@@ -503,18 +570,24 @@ static struct mtd_part *allocate_partiti +@@ -503,18 +571,24 @@ static struct mtd_part *allocate_partiti if ((slave->mtd.flags & MTD_WRITEABLE) && mtd_mod_by_eb(slave->offset, &slave->mtd)) { /* Doesn't start on a boundary of major erase size */ Modified: trunk/target/linux/generic/patches-3.14/411-mtd-partial_eraseblock_write.patch =================================================================== --- trunk/target/linux/generic/patches-3.14/411-mtd-partial_eraseblock_write.patch 2014-07-18 14:25:43 UTC (rev 41732) +++ trunk/target/linux/generic/patches-3.14/411-mtd-partial_eraseblock_write.patch 2014-07-18 14:36:38 UTC (rev 41733) @@ -9,7 +9,7 @@ /* Our partition linked list */ static LIST_HEAD(mtd_partitions); static DEFINE_MUTEX(mtd_partitions_mutex); -@@ -231,13 +233,60 @@ static int part_erase(struct mtd_info *m +@@ -231,13 +233,61 @@ static int part_erase(struct mtd_info *m struct mtd_part *part = PART(mtd); int ret; @@ -33,6 +33,7 @@ + part->master->erasesize, + &readlen, instr->erase_buf); + ++ instr->len += instr->erase_buf_ofs; + instr->partial_start = true; + } else { + mtd_ofs = part->offset + part->mtd.size; @@ -70,7 +71,7 @@ return ret; } -@@ -245,7 +294,25 @@ void mtd_erase_callback(struct erase_inf +@@ -245,7 +295,25 @@ void mtd_erase_callback(struct erase_inf { if (instr->mtd->_erase == part_erase) { struct mtd_part *part = PART(instr->mtd); @@ -96,7 +97,7 @@ if (instr->fail_addr != MTD_FAIL_ADDR_UNKNOWN) instr->fail_addr -= part->offset; instr->addr -= part->offset; -@@ -503,18 +570,24 @@ static struct mtd_part *allocate_partiti +@@ -503,18 +571,24 @@ static struct mtd_part *allocate_partiti if ((slave->mtd.flags & MTD_WRITEABLE) && mtd_mod_by_eb(slave->offset, &slave->mtd)) { /* Doesn't start on a boundary of major erase size */ Modified: trunk/target/linux/generic/patches-3.3/401-partial_eraseblock_write.patch =================================================================== --- trunk/target/linux/generic/patches-3.3/401-partial_eraseblock_write.patch 2014-07-18 14:25:43 UTC (rev 41732) +++ trunk/target/linux/generic/patches-3.3/401-partial_eraseblock_write.patch 2014-07-18 14:36:38 UTC (rev 41733) @@ -9,7 +9,7 @@ /* Our partition linked list */ static LIST_HEAD(mtd_partitions); static DEFINE_MUTEX(mtd_partitions_mutex); -@@ -252,13 +254,60 @@ static int part_erase(struct mtd_info *m +@@ -252,13 +254,61 @@ static int part_erase(struct mtd_info *m return -EROFS; if (instr->addr >= mtd->size) return -EINVAL; @@ -33,6 +33,7 @@ + part->master->erasesize, + &readlen, instr->erase_buf); + ++ instr->len += instr->erase_buf_ofs; + instr->partial_start = true; + } else { + mtd_ofs = part->offset + part->mtd.size; @@ -70,7 +71,7 @@ return ret; } -@@ -266,7 +315,25 @@ void mtd_erase_callback(struct erase_inf +@@ -266,7 +316,25 @@ void mtd_erase_callback(struct erase_inf { if (instr->mtd->erase == part_erase) { struct mtd_part *part = PART(instr->mtd); @@ -96,7 +97,7 @@ if (instr->fail_addr != MTD_FAIL_ADDR_UNKNOWN) instr->fail_addr -= part->offset; instr->addr -= part->offset; -@@ -537,18 +604,24 @@ static struct mtd_part *allocate_partiti +@@ -537,18 +605,24 @@ static struct mtd_part *allocate_partiti if ((slave->mtd.flags & MTD_WRITEABLE) && mtd_mod_by_eb(slave->offset, &slave->mtd)) { /* Doesn't start on a boundary of major erase size */ Modified: trunk/target/linux/generic/patches-3.6/401-partial_eraseblock_write.patch =================================================================== --- trunk/target/linux/generic/patches-3.6/401-partial_eraseblock_write.patch 2014-07-18 14:25:43 UTC (rev 41732) +++ trunk/target/linux/generic/patches-3.6/401-partial_eraseblock_write.patch 2014-07-18 14:36:38 UTC (rev 41733) @@ -9,7 +9,7 @@ /* Our partition linked list */ static LIST_HEAD(mtd_partitions); static DEFINE_MUTEX(mtd_partitions_mutex); -@@ -230,13 +232,60 @@ static int part_erase(struct mtd_info *m +@@ -230,13 +232,61 @@ static int part_erase(struct mtd_info *m struct mtd_part *part = PART(mtd); int ret; @@ -33,6 +33,7 @@ + part->master->erasesize, + &readlen, instr->erase_buf); + ++ instr->len += instr->erase_buf_ofs; + instr->partial_start = true; + } else { + mtd_ofs = part->offset + part->mtd.size; @@ -70,7 +71,7 @@ return ret; } -@@ -244,7 +293,25 @@ void mtd_erase_callback(struct erase_inf +@@ -244,7 +294,25 @@ void mtd_erase_callback(struct erase_inf { if (instr->mtd->_erase == part_erase) { struct mtd_part *part = PART(instr->mtd); @@ -96,7 +97,7 @@ if (instr->fail_addr != MTD_FAIL_ADDR_UNKNOWN) instr->fail_addr -= part->offset; instr->addr -= part->offset; -@@ -504,18 +571,24 @@ static struct mtd_part *allocate_partiti +@@ -504,18 +572,24 @@ static struct mtd_part *allocate_partiti if ((slave->mtd.flags & MTD_WRITEABLE) && mtd_mod_by_eb(slave->offset, &slave->mtd)) { /* Doesn't start on a boundary of major erase size */ Modified: trunk/target/linux/generic/patches-3.8/401-partial_eraseblock_write.patch =================================================================== --- trunk/target/linux/generic/patches-3.8/401-partial_eraseblock_write.patch 2014-07-18 14:25:43 UTC (rev 41732) +++ trunk/target/linux/generic/patches-3.8/401-partial_eraseblock_write.patch 2014-07-18 14:36:38 UTC (rev 41733) @@ -9,7 +9,7 @@ /* Our partition linked list */ static LIST_HEAD(mtd_partitions); static DEFINE_MUTEX(mtd_partitions_mutex); -@@ -230,13 +232,60 @@ static int part_erase(struct mtd_info *m +@@ -230,13 +232,61 @@ static int part_erase(struct mtd_info *m struct mtd_part *part = PART(mtd); int ret; @@ -33,6 +33,7 @@ + part->master->erasesize, + &readlen, instr->erase_buf); + ++ instr->len += instr->erase_buf_ofs; + instr->partial_start = true; + } else { + mtd_ofs = part->offset + part->mtd.size; @@ -70,7 +71,7 @@ return ret; } -@@ -244,7 +293,25 @@ void mtd_erase_callback(struct erase_inf +@@ -244,7 +294,25 @@ void mtd_erase_callback(struct erase_inf { if (instr->mtd->_erase == part_erase) { struct mtd_part *part = PART(instr->mtd); @@ -96,7 +97,7 @@ if (instr->fail_addr != MTD_FAIL_ADDR_UNKNOWN) instr->fail_addr -= part->offset; instr->addr -= part->offset; -@@ -504,18 +571,24 @@ static struct mtd_part *allocate_partiti +@@ -504,18 +572,24 @@ static struct mtd_part *allocate_partiti if ((slave->mtd.flags & MTD_WRITEABLE) && mtd_mod_by_eb(slave->offset, &slave->mtd)) { /* Doesn't start on a boundary of major erase size */ Modified: trunk/target/linux/generic/patches-3.9/401-partial_eraseblock_write.patch =================================================================== --- trunk/target/linux/generic/patches-3.9/401-partial_eraseblock_write.patch 2014-07-18 14:25:43 UTC (rev 41732) +++ trunk/target/linux/generic/patches-3.9/401-partial_eraseblock_write.patch 2014-07-18 14:36:38 UTC (rev 41733) @@ -9,7 +9,7 @@ /* Our partition linked list */ static LIST_HEAD(mtd_partitions); static DEFINE_MUTEX(mtd_partitions_mutex); -@@ -230,13 +232,60 @@ static int part_erase(struct mtd_info *m +@@ -230,13 +232,61 @@ static int part_erase(struct mtd_info *m struct mtd_part *part = PART(mtd); int ret; @@ -33,6 +33,7 @@ + part->master->erasesize, + &readlen, instr->erase_buf); + ++ instr->len += instr->erase_buf_ofs; + instr->partial_start = true; + } else { + mtd_ofs = part->offset + part->mtd.size; @@ -70,7 +71,7 @@ return ret; } -@@ -244,7 +293,25 @@ void mtd_erase_callback(struct erase_inf +@@ -244,7 +294,25 @@ void mtd_erase_callback(struct erase_inf { if (instr->mtd->_erase == part_erase) { struct mtd_part *part = PART(instr->mtd); @@ -96,7 +97,7 @@ if (instr->fail_addr != MTD_FAIL_ADDR_UNKNOWN) instr->fail_addr -= part->offset; instr->addr -= part->offset; -@@ -504,18 +571,24 @@ static struct mtd_part *allocate_partiti +@@ -504,18 +572,24 @@ static struct mtd_part *allocate_partiti if ((slave->mtd.flags & MTD_WRITEABLE) && mtd_mod_by_eb(slave->offset, &slave->mtd)) { /* Doesn't start on a boundary of major erase size */ _______________________________________________ openwrt-commits mailing list [email protected] https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-commits
