Message ID | 20191111094358.8271-1-tudor.ambarus@microchip.com |
---|---|
State | Accepted |
Delegated to: | Ambarus Tudor |
Headers | show |
Series | mtd: spi-nor: Make sure nor->spimem and nor->controller_ops are mutually exclusive | expand |
On Mon, 11 Nov 2019 09:44:08 +0000 <Tudor.Ambarus@microchip.com> wrote: > From: Tudor Ambarus <tudor.ambarus@microchip.com> > > Expand the spi_nor_check() to make sure that nor->spimem and > nor->controller_ops are mutually exclusive. > > Fixes: b35b9a10362d ("mtd: spi-nor: Move m25p80 code in spi-nor.c") > Reported-by: Dan Carpenter <dan.carpenter@oracle.com> > Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com> Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com> > --- > v3: > - split checks for better error accuracy > - s/mutual/mutually > > drivers/mtd/spi-nor/spi-nor.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c > index 824649eecd59..f5d24ccf5108 100644 > --- a/drivers/mtd/spi-nor/spi-nor.c > +++ b/drivers/mtd/spi-nor/spi-nor.c > @@ -2878,6 +2878,7 @@ static int spi_nor_write(struct mtd_info *mtd, loff_t to, size_t len, > static int spi_nor_check(struct spi_nor *nor) > { > if (!nor->dev || > + (!nor->spimem && !nor->controller_ops) || > (!nor->spimem && nor->controller_ops && > (!nor->controller_ops->read || > !nor->controller_ops->write || > @@ -2887,6 +2888,11 @@ static int spi_nor_check(struct spi_nor *nor) > return -EINVAL; > } > > + if (nor->spimem && nor->controller_ops) { > + dev_err(nor->dev, "nor->spimem and nor->controller_ops are mutually exclusive, please set just one of them.\n"); > + return -EINVAL; > + } > + > return 0; > } >
On 11/11/2019 11:44 AM, Tudor Ambarus - M18064 wrote: > From: Tudor Ambarus <tudor.ambarus@microchip.com> > > Expand the spi_nor_check() to make sure that nor->spimem and > nor->controller_ops are mutually exclusive. > > Fixes: b35b9a10362d ("mtd: spi-nor: Move m25p80 code in spi-nor.c") > Reported-by: Dan Carpenter <dan.carpenter@oracle.com> > Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com> > --- > v3: > - split checks for better error accuracy > - s/mutual/mutually > > drivers/mtd/spi-nor/spi-nor.c | 6 ++++++ > 1 file changed, 6 insertions(+) Applied to spi-nor/next.
diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c index 824649eecd59..f5d24ccf5108 100644 --- a/drivers/mtd/spi-nor/spi-nor.c +++ b/drivers/mtd/spi-nor/spi-nor.c @@ -2878,6 +2878,7 @@ static int spi_nor_write(struct mtd_info *mtd, loff_t to, size_t len, static int spi_nor_check(struct spi_nor *nor) { if (!nor->dev || + (!nor->spimem && !nor->controller_ops) || (!nor->spimem && nor->controller_ops && (!nor->controller_ops->read || !nor->controller_ops->write || @@ -2887,6 +2888,11 @@ static int spi_nor_check(struct spi_nor *nor) return -EINVAL; } + if (nor->spimem && nor->controller_ops) { + dev_err(nor->dev, "nor->spimem and nor->controller_ops are mutually exclusive, please set just one of them.\n"); + return -EINVAL; + } + return 0; }