mtd: utilize `mtd_is_*()' functions
[firefly-linux-kernel-4.4.55.git] / drivers / mtd / mtdswap.c
index 910309f260f889f8c8f92fc6e184e44eebba04f8..bd9590c723e41fcbb7055cc4dc61f49f402e340d 100644 (file)
@@ -314,7 +314,7 @@ static int mtdswap_read_oob(struct mtdswap_dev *d, loff_t from,
 {
        int ret = d->mtd->read_oob(d->mtd, from, ops);
 
-       if (ret == -EUCLEAN)
+       if (mtd_is_bitflip(ret))
                return ret;
 
        if (ret) {
@@ -354,7 +354,7 @@ static int mtdswap_read_markers(struct mtdswap_dev *d, struct swap_eb *eb)
 
        ret = mtdswap_read_oob(d, offset, &ops);
 
-       if (ret && ret != -EUCLEAN)
+       if (ret && !mtd_is_bitflip(ret))
                return ret;
 
        data = (struct mtdswap_oobdata *)d->oob_buf;
@@ -363,7 +363,7 @@ static int mtdswap_read_markers(struct mtdswap_dev *d, struct swap_eb *eb)
 
        if (le16_to_cpu(data->magic) == MTDSWAP_MAGIC_CLEAN) {
                eb->erase_count = le32_to_cpu(data->count);
-               if (ret == -EUCLEAN)
+               if (mtd_is_bitflip(ret))
                        ret = MTDSWAP_SCANNED_BITFLIP;
                else {
                        if (le16_to_cpu(data2->magic) == MTDSWAP_MAGIC_DIRTY)
@@ -408,7 +408,7 @@ static int mtdswap_write_marker(struct mtdswap_dev *d, struct swap_eb *eb,
        if (ret) {
                dev_warn(d->dev, "Write OOB failed for block at %08llx "
                        "error %d\n", offset, ret);
-               if (ret == -EIO || ret == -EBADMSG)
+               if (ret == -EIO || mtd_is_eccerr(ret))
                        mtdswap_handle_write_error(d, eb);
                return ret;
        }
@@ -628,7 +628,7 @@ static int mtdswap_map_free_block(struct mtdswap_dev *d, unsigned int page,
                        TREE_COUNT(d, CLEAN)--;
 
                        ret = mtdswap_write_marker(d, eb, MTDSWAP_TYPE_DIRTY);
-               } while (ret == -EIO || ret == -EBADMSG);
+               } while (ret == -EIO || mtd_is_eccerr(ret));
 
                if (ret)
                        return ret;
@@ -678,7 +678,7 @@ retry:
        ret = mtdswap_map_free_block(d, page, bp);
        eb = d->eb_data + (*bp / d->pages_per_eblk);
 
-       if (ret == -EIO || ret == -EBADMSG) {
+       if (ret == -EIO || mtd_is_eccerr(ret)) {
                d->curr_write = NULL;
                eb->active_count--;
                d->revmap[*bp] = PAGE_UNDEF;
@@ -690,7 +690,7 @@ retry:
 
        writepos = (loff_t)*bp << PAGE_SHIFT;
        ret =  mtd->write(mtd, writepos, PAGE_SIZE, &retlen, buf);
-       if (ret == -EIO || ret == -EBADMSG) {
+       if (ret == -EIO || mtd_is_eccerr(ret)) {
                d->curr_write_pos--;
                eb->active_count--;
                d->revmap[*bp] = PAGE_UNDEF;
@@ -738,7 +738,7 @@ static int mtdswap_move_block(struct mtdswap_dev *d, unsigned int oldblock,
 retry:
        ret = mtd->read(mtd, readpos, PAGE_SIZE, &retlen, d->page_buf);
 
-       if (ret < 0 && ret != -EUCLEAN) {
+       if (ret < 0 && !mtd_is_bitflip(ret)) {
                oldeb = d->eb_data + oldblock / d->pages_per_eblk;
                oldeb->flags |= EBLOCK_READERR;
 
@@ -1016,7 +1016,7 @@ static int mtdswap_gc(struct mtdswap_dev *d, unsigned int background)
 
        if (ret == 0)
                mtdswap_rb_add(d, eb, MTDSWAP_CLEAN);
-       else if (ret != -EIO && ret != -EBADMSG)
+       else if (ret != -EIO && !mtd_is_eccerr(ret))
                mtdswap_rb_add(d, eb, MTDSWAP_DIRTY);
 
        return 0;
@@ -1164,7 +1164,7 @@ retry:
        ret = mtd->read(mtd, readpos, PAGE_SIZE, &retlen, buf);
 
        d->mtd_read_count++;
-       if (ret == -EUCLEAN) {
+       if (mtd_is_bitflip(ret)) {
                eb->flags |= EBLOCK_BITFLIP;
                mtdswap_rb_add(d, eb, MTDSWAP_BITFLIP);
                ret = 0;