mtd: add a flags for partitions which should just leave smth. after them
Add support for MTDPART_OFS_RETAIN: such partitions start at the current offset, take as much space as possible, but rain part->size bytes after the end of the partitions for other parts. Primarily this is intended for ts72xx arm platforms cleanup. Artem: tweaked the patch a bit Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
This commit is contained in:

committed by
Artem Bityutskiy

parent
bf5140817b
commit
1a31368bf9
@@ -479,6 +479,19 @@ static struct mtd_part *allocate_partition(struct mtd_info *master,
|
||||
(unsigned long long)cur_offset, (unsigned long long)slave->offset);
|
||||
}
|
||||
}
|
||||
if (slave->offset == MTDPART_OFS_RETAIN) {
|
||||
slave->offset = cur_offset;
|
||||
if (master->size - slave->offset >= slave->mtd.size) {
|
||||
slave->mtd.size = master->size - slave->offset
|
||||
- slave->mtd.size;
|
||||
} else {
|
||||
printk(KERN_ERR "mtd partition \"%s\" doesn't have enough space: %#llx < %#llx, disabled\n",
|
||||
part->name, master->size - slave->offset,
|
||||
slave->mtd.size);
|
||||
/* register to preserve ordering */
|
||||
goto out_register;
|
||||
}
|
||||
}
|
||||
if (slave->mtd.size == MTDPART_SIZ_FULL)
|
||||
slave->mtd.size = master->size - slave->offset;
|
||||
|
||||
|
Reference in New Issue
Block a user