Re: [PATCH 4/6] mtd: rawnand: sunxi: replace hard coded value by a define - take2
From: Jernej Škrabec
Date: Sat Feb 21 2026 - 04:41:10 EST
Dne petek, 20. februar 2026 ob 17:10:09 Srednjeevropski standardni čas je Richard Genoud napisal(a):
> The user data length (4) has been replaced almost all over the file, but
> 2 places were forgotten.
>
> The user data is placed before the ECC, for each step.
> So, in sunxi_nfc_hw_ecc_read_extra_oob(), the offset of the user data in
> OOB is indeed ((ecc->bytes + USER_DATA_SZ) * ecc->steps);
>
> And in sunxi_nand_ooblayout_ecc(), the offset of the ECC chunk in OOB is
> the same offset plus the current user data size:
> section * (ecc->bytes + USER_DATA_SZ) + USER_DATA_SZ;
>
> Fixes: 1be7ac78b72f ("mtd: rawnand: sunxi: Replace hard coded value by a define")
> Signed-off-by: Richard Genoud <richard.genoud@xxxxxxxxxxx>
This doesn't really need Fixes tag since it's only refactoring.
With that said:
Reviewed-by: Jernej Skrabec <jernej.skrabec@xxxxxxxxx>
Best regards,
Jernej
> ---
> drivers/mtd/nand/raw/sunxi_nand.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/mtd/nand/raw/sunxi_nand.c b/drivers/mtd/nand/raw/sunxi_nand.c
> index 99d305bbda53..5d925b59b618 100644
> --- a/drivers/mtd/nand/raw/sunxi_nand.c
> +++ b/drivers/mtd/nand/raw/sunxi_nand.c
> @@ -1051,7 +1051,7 @@ static void sunxi_nfc_hw_ecc_read_extra_oob(struct nand_chip *nand,
> {
> struct mtd_info *mtd = nand_to_mtd(nand);
> struct nand_ecc_ctrl *ecc = &nand->ecc;
> - int offset = ((ecc->bytes + 4) * ecc->steps);
> + int offset = ((ecc->bytes + USER_DATA_SZ) * ecc->steps);
> int len = mtd->oobsize - offset;
>
> if (len <= 0)
> @@ -1747,7 +1747,7 @@ static int sunxi_nand_ooblayout_ecc(struct mtd_info *mtd, int section,
> if (section >= ecc->steps)
> return -ERANGE;
>
> - oobregion->offset = section * (ecc->bytes + USER_DATA_SZ) + 4;
> + oobregion->offset = section * (ecc->bytes + USER_DATA_SZ) + USER_DATA_SZ;
> oobregion->length = ecc->bytes;
>
> return 0;
>