|
@@ -200,6 +200,11 @@ static int part_erase (struct mtd_info *mtd, struct erase_info *instr)
|
|
|
return -EINVAL;
|
|
|
instr->addr += part->offset;
|
|
|
ret = part->master->erase(part->master, instr);
|
|
|
+ if (ret) {
|
|
|
+ if (instr->fail_addr != 0xffffffff)
|
|
|
+ instr->fail_addr -= part->offset;
|
|
|
+ instr->addr -= part->offset;
|
|
|
+ }
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
@@ -560,4 +565,3 @@ EXPORT_SYMBOL_GPL(deregister_mtd_parser);
|
|
|
MODULE_LICENSE("GPL");
|
|
|
MODULE_AUTHOR("Nicolas Pitre <nico@cam.org>");
|
|
|
MODULE_DESCRIPTION("Generic support for partitioning of MTD devices");
|
|
|
-
|