OSDN Git Service

mtd: Make sure the device supports erase operations in mtd_erase()
authorBoris Brezillon <boris.brezillon@free-electrons.com>
Mon, 22 Jan 2018 09:38:01 +0000 (10:38 +0100)
committerBoris Brezillon <boris.brezillon@bootlin.com>
Mon, 12 Feb 2018 10:46:38 +0000 (11:46 +0100)
commite6e620f0e15e3bc4b3bc3078c9f3285830f2fd3c
treeb63ce60f107da8fff9435e8795d085e2eddb3111
parent7928b2cbe55b2a410a0f5c1f154610059c57b1b2
mtd: Make sure the device supports erase operations in mtd_erase()

Some devices do not implement ->_erase() or have an invalid ->erasesize
value. In this case, mtd_erase() should return -ENOTSUPP.

Note that the test is not done on the MTD_NO_ERASE flag because this
flag means 'erasing a block before writing to it is unnecessary',
not 'the erase operation is not supported'. Actually, some drivers are
setting the MTD_NO_ERASE flag but still implementing the ->_erase()
hook and setting a valid ->erasesize value.

Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Reviewed-by: Miquel Raynal <miquel.raynal@free-electrons.com>
Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
drivers/mtd/mtdcore.c