int ret;
memset(&instr, 0, sizeof(instr));
+ instr.mtd = mtd;
instr.addr = mtd->erasesize * s_first;
instr.len = mtd->erasesize * (s_last + 1 - s_first);
ret = mtd_erase(mtd, &instr);
/* erase failed, sector might be protected */
debug("erase %08x fail %x\n", sect, stat);
writel(stat, ®s->isr); /* clear isr */
+ instr->fail_addr = addr;
instr->state = MTD_ERASE_FAILED;
+ mtd_erase_callback(instr);
return -EIO;
}
addr += mtd->erasesize;