aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@nbd.name>2022-03-09 16:04:39 +0100
committerFelix Fietkau <nbd@nbd.name>2022-03-25 21:11:09 +0100
commit7d1e2be1605eda85e1a607a3d3ddefed1b961d3d (patch)
tree4c79ae3304f891f183f2b0b52e9a3469899fd01b /target/linux/generic
parentb4c7f8c5f7a2dab76fe90849e112c6bd8f80ab19 (diff)
downloadupstream-7d1e2be1605eda85e1a607a3d3ddefed1b961d3d.tar.gz
upstream-7d1e2be1605eda85e1a607a3d3ddefed1b961d3d.tar.bz2
upstream-7d1e2be1605eda85e1a607a3d3ddefed1b961d3d.zip
kernel: mtk_bmt: fix block copying on remap with bmt v2
Copy from the previously mapped block (in case it was remapped already) Signed-off-by: Felix Fietkau <nbd@nbd.name>
Diffstat (limited to 'target/linux/generic')
-rw-r--r--target/linux/generic/files/drivers/mtd/nand/mtk_bmt_v2.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/target/linux/generic/files/drivers/mtd/nand/mtk_bmt_v2.c b/target/linux/generic/files/drivers/mtd/nand/mtk_bmt_v2.c
index f2dc05be2b..2770376e98 100644
--- a/target/linux/generic/files/drivers/mtd/nand/mtk_bmt_v2.c
+++ b/target/linux/generic/files/drivers/mtd/nand/mtk_bmt_v2.c
@@ -285,21 +285,21 @@ error:
*/
static bool remap_block_v2(u16 block, u16 mapped_block, int copy_len)
{
- u16 mapped_blk;
+ u16 new_block;
struct bbbt *bbt;
bbt = bmtd.bbt;
- mapped_blk = find_valid_block_in_pool(bbt);
- if (mapped_blk == 0)
+ new_block = find_valid_block_in_pool(bbt);
+ if (new_block == 0)
return false;
/* Map new bad block to available block in pool */
- bbt->bb_tbl[block] = mapped_blk;
+ bbt->bb_tbl[block] = new_block;
/* Erase new block */
- bbt_nand_erase(mapped_blk);
+ bbt_nand_erase(new_block);
if (copy_len > 0)
- bbt_nand_copy(mapped_blk, block, copy_len);
+ bbt_nand_copy(new_block, mapped_block, copy_len);
bmtd.bmt_blk_idx = upload_bmt(bbt, bmtd.bmt_blk_idx);