|
|
@@ -37,7 +37,7 @@
|
|
|
|
|
|
/*
|
|
|
* MTD methods which simply translate the effective address and pass through
|
|
|
-@@ -502,6 +504,150 @@ out_register:
|
|
|
+@@ -502,6 +504,152 @@ out_register:
|
|
|
return slave;
|
|
|
}
|
|
|
|
|
|
@@ -92,10 +92,12 @@
|
|
|
+{
|
|
|
+ struct mtd_partition *dpart;
|
|
|
+ struct mtd_part *slave = NULL;
|
|
|
++ struct mtd_part *spart;
|
|
|
+ int split_offset = 0;
|
|
|
+ int ret;
|
|
|
+
|
|
|
-+ ret = split_squashfs(master, part->offset, &split_offset);
|
|
|
++ spart = PART(rpart);
|
|
|
++ ret = split_squashfs(master, spart->offset, &split_offset);
|
|
|
+ if (ret)
|
|
|
+ return ret;
|
|
|
+
|
|
|
@@ -113,7 +115,7 @@
|
|
|
+ dpart->name = (unsigned char *)&dpart[1];
|
|
|
+ strcpy(dpart->name, ROOTFS_SPLIT_NAME);
|
|
|
+
|
|
|
-+ dpart->size -= split_offset - dpart->offset;
|
|
|
++ dpart->size = rpart->size - (split_offset - spart->offset);
|
|
|
+ dpart->offset = split_offset;
|
|
|
+
|
|
|
+ if (dpart == NULL)
|
|
|
@@ -188,7 +190,7 @@
|
|
|
/*
|
|
|
* 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
|
|
|
-@@ -517,7 +663,7 @@ int add_mtd_partitions(struct mtd_info *
|
|
|
+@@ -517,7 +665,7 @@ int add_mtd_partitions(struct mtd_info *
|
|
|
{
|
|
|
struct mtd_part *slave;
|
|
|
uint64_t cur_offset = 0;
|
|
|
@@ -197,7 +199,7 @@
|
|
|
|
|
|
printk(KERN_NOTICE "Creating %d MTD partitions on \"%s\":\n", nbparts, master->name);
|
|
|
|
|
|
-@@ -525,6 +671,21 @@ int add_mtd_partitions(struct mtd_info *
|
|
|
+@@ -525,6 +673,21 @@ int add_mtd_partitions(struct mtd_info *
|
|
|
slave = add_one_partition(master, parts + i, i, cur_offset);
|
|
|
if (!slave)
|
|
|
return -ENOMEM;
|
|
|
@@ -219,7 +221,7 @@
|
|
|
cur_offset = slave->offset + slave->mtd.size;
|
|
|
}
|
|
|
|
|
|
-@@ -532,6 +693,32 @@ int add_mtd_partitions(struct mtd_info *
|
|
|
+@@ -532,6 +695,32 @@ int add_mtd_partitions(struct mtd_info *
|
|
|
}
|
|
|
EXPORT_SYMBOL(add_mtd_partitions);
|
|
|
|