kernel: backport upstream mtd support for partition parsers

In a log term it should replace our implementation. For now both can
coexist.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
This commit is contained in:
Rafał Miłecki
2017-06-23 10:47:18 +02:00
parent 8c1e760ab6
commit 4d5f296af8
9 changed files with 229 additions and 23 deletions

View File

@@ -48,7 +48,7 @@
/*
* Given a pointer to the MTD object in the mtd_part structure, we can retrieve
* the pointer to that structure.
@@ -649,6 +653,7 @@ int mtd_add_partition(struct mtd_info *p
@@ -678,6 +682,7 @@ int mtd_add_partition(struct mtd_info *p
mutex_unlock(&mtd_partitions_mutex);
add_mtd_device(&new->mtd);
@@ -56,7 +56,7 @@
mtd_add_partition_attrs(new);
@@ -718,6 +723,35 @@ int mtd_del_partition(struct mtd_info *m
@@ -756,6 +761,35 @@ int mtd_del_partition(struct mtd_info *m
}
EXPORT_SYMBOL_GPL(mtd_del_partition);
@@ -92,17 +92,17 @@
/*
* This function, given a master MTD object and a partition table, creates
* and registers slave MTD objects which are bound to the master according to
@@ -749,6 +783,7 @@ int add_mtd_partitions(struct mtd_info *
@@ -787,6 +821,7 @@ int add_mtd_partitions(struct mtd_info *
mutex_unlock(&mtd_partitions_mutex);
add_mtd_device(&slave->mtd);
+ mtd_partition_split(master, slave);
mtd_add_partition_attrs(slave);
cur_offset = slave->offset + slave->mtd.size;
if (parts[i].types)
mtd_parse_part(slave, parts[i].types);
--- a/include/linux/mtd/partitions.h
+++ b/include/linux/mtd/partitions.h
@@ -102,5 +102,7 @@ int mtd_add_partition(struct mtd_info *m
@@ -109,5 +109,7 @@ int mtd_add_partition(struct mtd_info *m
long long offset, long long length);
int mtd_del_partition(struct mtd_info *master, int partno);
uint64_t mtd_get_device_size(const struct mtd_info *mtd);