diff options
author | Rafał Miłecki <rafal@milecki.pl> | 2018-12-03 10:33:36 +0100 |
---|---|---|
committer | Rafał Miłecki <rafal@milecki.pl> | 2018-12-03 10:34:12 +0100 |
commit | e24983e710dd7a22909e26af1ad8ee8d027b5c71 (patch) | |
tree | cd385342a57b7bd8ecd2eeaf43138cd7ba1d5d1b /target/linux/generic/pending-4.14/411-mtd-partial_eraseblock_write.patch | |
parent | 675eb747aa1cb76d4d6e715728592974acac8cc1 (diff) | |
download | upstream-e24983e710dd7a22909e26af1ad8ee8d027b5c71.tar.gz upstream-e24983e710dd7a22909e26af1ad8ee8d027b5c71.tar.bz2 upstream-e24983e710dd7a22909e26af1ad8ee8d027b5c71.zip |
kernel: backport 2 mtd partitioning fixes
This improves handling of subpartitions.
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Diffstat (limited to 'target/linux/generic/pending-4.14/411-mtd-partial_eraseblock_write.patch')
-rw-r--r-- | target/linux/generic/pending-4.14/411-mtd-partial_eraseblock_write.patch | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/target/linux/generic/pending-4.14/411-mtd-partial_eraseblock_write.patch b/target/linux/generic/pending-4.14/411-mtd-partial_eraseblock_write.patch index a995083105..3b862dae61 100644 --- a/target/linux/generic/pending-4.14/411-mtd-partial_eraseblock_write.patch +++ b/target/linux/generic/pending-4.14/411-mtd-partial_eraseblock_write.patch @@ -19,7 +19,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> /* Our partition linked list */ static LIST_HEAD(mtd_partitions); static DEFINE_MUTEX(mtd_partitions_mutex); -@@ -246,13 +248,61 @@ static int part_erase(struct mtd_info *m +@@ -255,13 +257,61 @@ static int part_erase(struct mtd_info *m struct mtd_part *part = mtd_to_part(mtd); int ret; @@ -81,7 +81,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> return ret; } -@@ -260,6 +310,25 @@ void mtd_erase_callback(struct erase_inf +@@ -269,6 +319,25 @@ void mtd_erase_callback(struct erase_inf { if (instr->mtd->_erase == part_erase) { struct mtd_part *part = mtd_to_part(instr->mtd); @@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> if (instr->fail_addr != MTD_FAIL_ADDR_UNKNOWN) instr->fail_addr -= part->offset; -@@ -574,19 +643,22 @@ static struct mtd_part *allocate_partiti +@@ -584,19 +653,22 @@ static struct mtd_part *allocate_partiti remainder = do_div(tmp, wr_alignment); if ((slave->mtd.flags & MTD_WRITEABLE) && remainder) { /* Doesn't start on a boundary of major erase size */ @@ -123,8 +123,8 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> + slave->mtd.erasesize = slave->mtd.size; } -- tmp = slave->mtd.size; -+ tmp = slave->offset + slave->mtd.size; +- tmp = part_absolute_offset(parent) + slave->mtd.size; ++ tmp = part_absolute_offset(parent) + slave->offset + slave->mtd.size; remainder = do_div(tmp, wr_alignment); if ((slave->mtd.flags & MTD_WRITEABLE) && remainder) { - slave->mtd.flags &= ~MTD_WRITEABLE; |