[U-Boot] [PATCH] spi: sf_ops: Check the return value from spi_flash_cmd_read_status()
Jagan Teki
jteki at openedev.com
Tue Nov 17 20:05:14 CET 2015
On 17 November 2015 at 20:07, Fabio Estevam <fabio.estevam at freescale.com> wrote:
> We should check the return value from spi_flash_cmd_read_status() and
> propagate it in the case of error.
>
> This fixes a defect caught by Coverity.
>
> Reported-by: Tom Rini <trini at konsulko.com>
> Signed-off-by: Fabio Estevam <fabio.estevam at freescale.com>
> ---
> drivers/mtd/spi/sf_ops.c | 10 ++++++++--
> 1 file changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/mtd/spi/sf_ops.c b/drivers/mtd/spi/sf_ops.c
> index 384224d..6cc2d31 100644
> --- a/drivers/mtd/spi/sf_ops.c
> +++ b/drivers/mtd/spi/sf_ops.c
> @@ -663,8 +663,11 @@ int stm_lock(struct spi_flash *flash, u32 ofs, size_t len)
> u8 status_old, status_new;
> u8 mask = SR_BP2 | SR_BP1 | SR_BP0;
> u8 shift = ffs(mask) - 1, pow, val;
> + int ret;
>
> - spi_flash_cmd_read_status(flash, &status_old);
> + ret = spi_flash_cmd_read_status(flash, &status_old);
> + if (ret)
if (ret < 0) is better check.
> + return ret;
>
> /* SPI NOR always locks to the end */
> if (ofs + len != flash->size) {
> @@ -714,8 +717,11 @@ int stm_unlock(struct spi_flash *flash, u32 ofs, size_t len)
> uint8_t status_old, status_new;
> u8 mask = SR_BP2 | SR_BP1 | SR_BP0;
> u8 shift = ffs(mask) - 1, pow, val;
> + int ret;
>
> - spi_flash_cmd_read_status(flash, &status_old);
> + ret = spi_flash_cmd_read_status(flash, &status_old);
> + if (ret)
> + return ret;
>
> /* Cannot unlock; would unlock larger region than requested */
> if (stm_is_locked_sr(flash, status_old, ofs - flash->erase_size,
> --
> 1.9.1
thanks!
--
Jagan | openedev.
More information about the U-Boot
mailing list