Patch "mtd: limit OTP NVMEM cell parse to non-NAND devices" has been added to the 6.6-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    mtd: limit OTP NVMEM cell parse to non-NAND devices

to the 6.6-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     mtd-limit-otp-nvmem-cell-parse-to-non-nand-devices.patch
and it can be found in the queue-6.6 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 780dc8a8dab57c6b0bc5a918160c381b52d71f0b
Author: Christian Marangi <ansuelsmth@xxxxxxxxx>
Date:   Fri Apr 12 12:50:26 2024 +0200

    mtd: limit OTP NVMEM cell parse to non-NAND devices
    
    [ Upstream commit d2d73a6dd17365c43e109263841f7c26da55cfb0 ]
    
    MTD OTP logic is very fragile on parsing NVMEM cell and can be
    problematic with some specific kind of devices.
    
    The problem was discovered by e87161321a40 ("mtd: rawnand: macronix:
    OTP access for MX30LFxG18AC") where OTP support was added to a NAND
    device. With the case of NAND devices, it does require a node where ECC
    info are declared and all the fixed partitions, and this cause the OTP
    codepath to parse this node as OTP NVMEM cells, making probe fail and
    the NAND device registration fail.
    
    MTD OTP parsing should have been limited to always using compatible to
    prevent this error by using node with compatible "otp-user" or
    "otp-factory".
    
    NVMEM across the years had various iteration on how cells could be
    declared in DT, in some old implementation, no_of_node should have been
    enabled but now add_legacy_fixed_of_cells should be used to disable
    NVMEM to parse child node as NVMEM cell.
    
    To fix this and limit any regression with other MTD that makes use of
    declaring OTP as direct child of the dev node, disable
    add_legacy_fixed_of_cells if we detect the MTD type is Nand.
    
    With the following logic, the OTP NVMEM entry is correctly created with
    no cells and the MTD Nand is correctly probed and partitions are
    correctly exposed.
    
    Fixes: 4b361cfa8624 ("mtd: core: add OTP nvmem provider support")
    Cc: <stable@xxxxxxxxxxxxxxx> # v6.7+
    Signed-off-by: Christian Marangi <ansuelsmth@xxxxxxxxx>
    Signed-off-by: Miquel Raynal <miquel.raynal@xxxxxxxxxxx>
    Link: https://lore.kernel.org/linux-mtd/20240412105030.1598-1-ansuelsmth@xxxxxxxxx
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/mtd/mtdcore.c b/drivers/mtd/mtdcore.c
index fbf60d1364f0d..5c32208b17a1d 100644
--- a/drivers/mtd/mtdcore.c
+++ b/drivers/mtd/mtdcore.c
@@ -899,7 +899,7 @@ static struct nvmem_device *mtd_otp_nvmem_register(struct mtd_info *mtd,
 	config.name = compatible;
 	config.id = NVMEM_DEVID_AUTO;
 	config.owner = THIS_MODULE;
-	config.add_legacy_fixed_of_cells = true;
+	config.add_legacy_fixed_of_cells = !mtd_type_is_nand(mtd);
 	config.type = NVMEM_TYPE_OTP;
 	config.root_only = true;
 	config.ignore_wp = true;




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux