From f183ce35b8ea2fd991ac489fb223b09a1ecb4db0 Mon Sep 17 00:00:00 2001 From: Chuanhong Guo Date: Sat, 21 Jan 2023 10:47:59 +0800 Subject: [PATCH] kernel: mtk-bmt: fix usage of _oob_read _oob_read returns number of bitflips on success while bbt_nand_read should return 0. Fixes: 2d49e49b18 ("mediatek: bmt: use generic mtd api") Signed-off-by: Chuanhong Guo --- target/linux/generic/files/drivers/mtd/nand/mtk_bmt.h | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/target/linux/generic/files/drivers/mtd/nand/mtk_bmt.h b/target/linux/generic/files/drivers/mtd/nand/mtk_bmt.h index dff1f28c8171..517ff7414f34 100644 --- a/target/linux/generic/files/drivers/mtd/nand/mtk_bmt.h +++ b/target/linux/generic/files/drivers/mtd/nand/mtk_bmt.h @@ -95,8 +95,14 @@ bbt_nand_read(u32 page, unsigned char *dat, int dat_len, .datbuf = dat, .len = dat_len, }; - - return bmtd._read_oob(bmtd.mtd, page << bmtd.pg_shift, &ops); + int ret; + + ret = bmtd._read_oob(bmtd.mtd, page << bmtd.pg_shift, &ops); + if (ret < 0) + return ret; + if (ret) + pr_info("%s: %d bitflips\n", __func__, ret); + return 0; } static inline int bbt_nand_erase(u16 block) -- 2.30.2