• B
    mtd: sf: Make sf_mtd.c more robust · 08898e8b
    Boris Brezillon 提交于
    SPI flash based MTD devs can be registered/unregistered at any time
    through the sf probe command or the spi_flash_free() function.
    
    This commit does not try to fix the root cause as it would probably
    require rewriting most of the code and have an mtd_info object
    instance per spi_flash object (not to mention that the the spi-flash
    layer is likely to be replaced by a spi-nor layer ported from Linux).
    
    Instead, we try to be as safe as can be by checking the code returned
    by del_mtd_device() and complain loudly when there's nothing we can
    do about the deregistration failure. When that happens we also reset
    sf_mtd_info.priv to NULL, and check for NULL pointer in the mtd hooks
    so that -ENODEV is returned instead of hitting a NULL pointer
    dereference exception when the MTD instance is later accessed by a user.
    Signed-off-by: NBoris Brezillon <boris.brezillon@bootlin.com>
    Tested-by: NHeiko Schocher <hs@denx.de>
    08898e8b
sf_mtd.c 3.0 KB