summaryrefslogtreecommitdiffstats
path: root/drivers/mtd/spi-nor
diff options
context:
space:
mode:
authorDan Carpenter <dan.carpenter@oracle.com>2017-05-05 07:33:56 +0200
committerCyrille Pitchen <cyrille.pitchen@wedev4u.fr>2017-05-15 21:56:18 +0200
commit05d090f00203bdcf722b9cb6d5ac57c165e2c95c (patch)
tree5afead15bd3a733bdd527419d2d60d47c581098f /drivers/mtd/spi-nor
parentmtd: spi-nor: stm32-quadspi: allow building with COMPILE_TEST (diff)
downloadlinux-05d090f00203bdcf722b9cb6d5ac57c165e2c95c.tar.xz
linux-05d090f00203bdcf722b9cb6d5ac57c165e2c95c.zip
mtd: spi-nor: Potential oops on error path in quad_enable()
Before commit cff959958832 ("mtd: spi-nor: introduce SPI 1-2-2 and SPI 1-4-4 protocols") then we treated 1 as -EINVAL in the caller but after that commit we changed to propagate the return. My static checker complains that it's eventually passed to an ERR_PTR() and later dereferenced, but I'm not totally certain if that's true. Regardless, returning 1 is wrong. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Cyrille Pitchen <cyrille.pitchen@wedev4u.fr>
Diffstat (limited to 'drivers/mtd/spi-nor')
-rw-r--r--drivers/mtd/spi-nor/spi-nor.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c
index 060a59e716be..eef55b597ec7 100644
--- a/drivers/mtd/spi-nor/spi-nor.c
+++ b/drivers/mtd/spi-nor/spi-nor.c
@@ -1389,8 +1389,9 @@ static int macronix_quad_enable(struct spi_nor *nor)
write_sr(nor, val | SR_QUAD_EN_MX);
- if (spi_nor_wait_till_ready(nor))
- return 1;
+ ret = spi_nor_wait_till_ready(nor);
+ if (ret)
+ return ret;
ret = read_sr(nor);
if (!(ret > 0 && (ret & SR_QUAD_EN_MX))) {