Loading drivers/mtd/ubi/fastmap.c +9 −18 Original line number Diff line number Diff line Loading @@ -1399,36 +1399,27 @@ static int ubi_write_fastmap(struct ubi_device *ubi, */ static int erase_block(struct ubi_device *ubi, struct ubi_wl_entry *e) { int ret; int err; struct ubi_ec_hdr *ec_hdr; long long ec; long long ec = e->ec; ec_hdr = kzalloc(ubi->ec_hdr_alsize, GFP_KERNEL); if (!ec_hdr) return -ENOMEM; ret = ubi_io_read_ec_hdr(ubi, e->pnum, ec_hdr, 0); if (ret < 0) goto out; else if (ret && ret != UBI_IO_BITFLIPS) { ret = -EINVAL; goto out; } ret = ubi_io_sync_erase(ubi, e->pnum, 0); if (ret < 0) err = ubi_io_sync_erase(ubi, e->pnum, 0); if (err < 0) goto out; ec = be64_to_cpu(ec_hdr->ec); ec += ret; ec += err; if (ec > UBI_MAX_ERASECOUNTER) { ret = -EINVAL; err = -EINVAL; goto out; } ec_hdr->ec = cpu_to_be64(ec); ret = ubi_io_write_ec_hdr(ubi, e->pnum, ec_hdr); if (ret < 0) err = ubi_io_write_ec_hdr(ubi, e->pnum, ec_hdr); if (err < 0) goto out; e->ec = ec; Loading @@ -1439,7 +1430,7 @@ static int erase_block(struct ubi_device *ubi, struct ubi_wl_entry *e) out: kfree(ec_hdr); return ret; return err; } /** Loading Loading
drivers/mtd/ubi/fastmap.c +9 −18 Original line number Diff line number Diff line Loading @@ -1399,36 +1399,27 @@ static int ubi_write_fastmap(struct ubi_device *ubi, */ static int erase_block(struct ubi_device *ubi, struct ubi_wl_entry *e) { int ret; int err; struct ubi_ec_hdr *ec_hdr; long long ec; long long ec = e->ec; ec_hdr = kzalloc(ubi->ec_hdr_alsize, GFP_KERNEL); if (!ec_hdr) return -ENOMEM; ret = ubi_io_read_ec_hdr(ubi, e->pnum, ec_hdr, 0); if (ret < 0) goto out; else if (ret && ret != UBI_IO_BITFLIPS) { ret = -EINVAL; goto out; } ret = ubi_io_sync_erase(ubi, e->pnum, 0); if (ret < 0) err = ubi_io_sync_erase(ubi, e->pnum, 0); if (err < 0) goto out; ec = be64_to_cpu(ec_hdr->ec); ec += ret; ec += err; if (ec > UBI_MAX_ERASECOUNTER) { ret = -EINVAL; err = -EINVAL; goto out; } ec_hdr->ec = cpu_to_be64(ec); ret = ubi_io_write_ec_hdr(ubi, e->pnum, ec_hdr); if (ret < 0) err = ubi_io_write_ec_hdr(ubi, e->pnum, ec_hdr); if (err < 0) goto out; e->ec = ec; Loading @@ -1439,7 +1430,7 @@ static int erase_block(struct ubi_device *ubi, struct ubi_wl_entry *e) out: kfree(ec_hdr); return ret; return err; } /** Loading