Loading
mtd: rawnand: serialize lock/unlock against other NAND operations
nand_lock() and nand_unlock() call into chip->ops.lock_area/unlock_area without holding the NAND device lock. On controllers that implement SET_FEATURES via multiple low-level PIO commands, these can race with concurrent UBI/UBIFS background erase/write operations that hold the device lock, resulting in cmd_pending conflicts on the NAND controller. Add nand_get_device()/nand_release_device() around the lock/unlock operations to serialize them against all other NAND controller access. Fixes: 92270086 ("mtd: rawnand: Add support for manufacturer specific lock/unlock operation") Signed-off-by:Kamal Dasu <kamal.dasu@broadcom.com> Reviewed-by:
William Zhang <william.zhang@broadcom.com> Signed-off-by:
Miquel Raynal <miquel.raynal@bootlin.com>