mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-01 09:26:44 +07:00
UBI: fix NOR erase preparation quirk
In 'nor_erase_prepare()' we want to make sure the UBI headers are corrupted. But it is possible that one of the headers just contains all 0xFFs, which is also OK, because UBI will erase it in case of a power cut. Signed-off-by: Holger Brunck <holger.brunck@keymile.com> Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
This commit is contained in:
parent
3c0eee3fe6
commit
d4c6381303
@ -507,11 +507,13 @@ static int nor_erase_prepare(struct ubi_device *ubi, int pnum)
|
|||||||
* PEB.
|
* PEB.
|
||||||
*/
|
*/
|
||||||
err1 = ubi_io_read_vid_hdr(ubi, pnum, &vid_hdr, 0);
|
err1 = ubi_io_read_vid_hdr(ubi, pnum, &vid_hdr, 0);
|
||||||
if (err1 == UBI_IO_BAD_HDR_EBADMSG || err1 == UBI_IO_BAD_HDR) {
|
if (err1 == UBI_IO_BAD_HDR_EBADMSG || err1 == UBI_IO_BAD_HDR ||
|
||||||
|
err1 == UBI_IO_FF) {
|
||||||
struct ubi_ec_hdr ec_hdr;
|
struct ubi_ec_hdr ec_hdr;
|
||||||
|
|
||||||
err1 = ubi_io_read_ec_hdr(ubi, pnum, &ec_hdr, 0);
|
err1 = ubi_io_read_ec_hdr(ubi, pnum, &ec_hdr, 0);
|
||||||
if (err1 == UBI_IO_BAD_HDR_EBADMSG || err1 == UBI_IO_BAD_HDR)
|
if (err1 == UBI_IO_BAD_HDR_EBADMSG || err1 == UBI_IO_BAD_HDR ||
|
||||||
|
err1 == UBI_IO_FF)
|
||||||
/*
|
/*
|
||||||
* Both VID and EC headers are corrupted, so we can
|
* Both VID and EC headers are corrupted, so we can
|
||||||
* safely erase this PEB and not afraid that it will be
|
* safely erase this PEB and not afraid that it will be
|
||||||
|
Loading…
Reference in New Issue
Block a user