FIX: Stop ECC migration if all remaining blocks are bad

BugzId: 50923
This commit is contained in:
Moritz Rosenthal 2018-05-04 08:24:51 +02:00
parent 59e67cc3b3
commit 1d711760a1
1 changed files with 2 additions and 0 deletions

View File

@ -777,6 +777,7 @@ static int migrate_backup(int n, int forward_migration)
bend = baddr + infoMigration.backup.size;
while (taddr < tend) {
size = size_nand(taddr, tend);
if (size == 0) break;
if (size > infoMigration.size) size = infoMigration.size;
rlen = read_nand(&taddr, tend, infoMigration.buffer, size, forward_migration ? 0 : 1);
if (rlen < 0) {
@ -822,6 +823,7 @@ static int migrate_restore(int n, int forward_migration)
bend = baddr + infoMigration.backup.size;
while (taddr < tend) {
size = size_nand(taddr, tend);
if (size == 0) break;
if (size > infoMigration.size) size = infoMigration.size;
rlen = read_nand(&baddr, bend, infoMigration.buffer, size, 1);
if (rlen < 0) {