Commit 5b289b56 authored by Artem Bityutskiy's avatar Artem Bityutskiy

UBI: amend NOR flash pre-erase quirk

In case of NOR flash, UBI zeroes EC and VID headers' magic,
in order to detect interrupted erasures. It first zeroes out
the EC magic, then VID magic. However, if a power cut happens
in between, we'll end up with a corrupted EC header and a valid
VID header, in which case UBI accepts the PEB, but prints a
warning. This patch makes sure we first zero out the VID
magic, then the EC magic, not vice versa. This is just a
small amendment to prevent warning messages.
Signed-off-by: default avatarArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
parent 29a88c99
...@@ -480,20 +480,20 @@ static int nor_erase_prepare(struct ubi_device *ubi, int pnum) ...@@ -480,20 +480,20 @@ static int nor_erase_prepare(struct ubi_device *ubi, int pnum)
loff_t addr; loff_t addr;
uint32_t data = 0; uint32_t data = 0;
addr = (loff_t)pnum * ubi->peb_size; addr = (loff_t)pnum * ubi->peb_size + ubi->vid_hdr_aloffset;
err = ubi->mtd->write(ubi->mtd, addr, 4, &written, (void *)&data); err = ubi->mtd->write(ubi->mtd, addr, 4, &written, (void *)&data);
if (err) { if (err) {
ubi_err("error %d while writing 4 bytes to PEB %d:%d, written " ubi_err("error %d while writing 4 bytes to PEB %d:%d, written "
"%zd bytes", err, pnum, 0, written); "%zd bytes", err, pnum, ubi->vid_hdr_aloffset, written);
ubi_dbg_dump_stack(); ubi_dbg_dump_stack();
return err; return err;
} }
addr += ubi->vid_hdr_aloffset; addr -= ubi->vid_hdr_aloffset;
err = ubi->mtd->write(ubi->mtd, addr, 4, &written, (void *)&data); err = ubi->mtd->write(ubi->mtd, addr, 4, &written, (void *)&data);
if (err) { if (err) {
ubi_err("error %d while writing 4 bytes to PEB %d:%d, written " ubi_err("error %d while writing 4 bytes to PEB %d:%d, written "
"%zd bytes", err, pnum, ubi->vid_hdr_aloffset, written); "%zd bytes", err, pnum, 0, written);
ubi_dbg_dump_stack(); ubi_dbg_dump_stack();
return err; return err;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment