aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic/pending-4.14/411-mtd-partial_eraseblock_write.patch
diff options
context:
space:
mode:
authorRafał Miłecki <rafal@milecki.pl>2018-12-03 10:33:36 +0100
committerRafał Miłecki <rafal@milecki.pl>2018-12-03 10:34:12 +0100
commite24983e710dd7a22909e26af1ad8ee8d027b5c71 (patch)
treecd385342a57b7bd8ecd2eeaf43138cd7ba1d5d1b /target/linux/generic/pending-4.14/411-mtd-partial_eraseblock_write.patch
parent675eb747aa1cb76d4d6e715728592974acac8cc1 (diff)
downloadupstream-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.patch10
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;