Re: [v2, 3/5] mtd: spi-nor: don't overwrite errno in spi_nor_get_map_in_use()

2018-11-15 Thread Boris Brezillon
On Fri, 2018-11-09 at 16:56:52 UTC,  wrote:
> Don't overwrite the errno from spi_nor_read_raw().
> 
> Signed-off-by: Tudor Ambarus 

Applied to http://git.infradead.org/linux-mtd.git mtd/fixes, thanks.

Boris


Re: [v2, 3/5] mtd: spi-nor: don't overwrite errno in spi_nor_get_map_in_use()

2018-11-15 Thread Boris Brezillon
On Fri, 2018-11-09 at 16:56:52 UTC,  wrote:
> Don't overwrite the errno from spi_nor_read_raw().
> 
> Signed-off-by: Tudor Ambarus 

Applied to http://git.infradead.org/linux-mtd.git mtd/fixes, thanks.

Boris


[PATCH v2 3/5] mtd: spi-nor: don't overwrite errno in spi_nor_get_map_in_use()

2018-11-09 Thread Tudor.Ambarus
Don't overwrite the errno from spi_nor_read_raw().

Signed-off-by: Tudor Ambarus 
---
 drivers/mtd/spi-nor/spi-nor.c | 13 +
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c
index 98e433e8e4c2..04a1c5b825e6 100644
--- a/drivers/mtd/spi-nor/spi-nor.c
+++ b/drivers/mtd/spi-nor/spi-nor.c
@@ -2861,11 +2861,13 @@ static u8 spi_nor_smpt_read_dummy(const struct spi_nor 
*nor, const u32 settings)
  * @nor:   pointer to a 'struct spi_nor'
  * @smpt:  pointer to the sector map parameter table
  * @smpt_len:  sector map parameter table length
+ *
+ * Return: pointer to the map in use, ERR_PTR(-errno) otherwise.
  */
 static const u32 *spi_nor_get_map_in_use(struct spi_nor *nor, const u32 *smpt,
 u8 smpt_len)
 {
-   const u32 *ret = NULL;
+   const u32 *ret;
u32 addr;
int err;
u8 i;
@@ -2889,8 +2891,10 @@ static const u32 *spi_nor_get_map_in_use(struct spi_nor 
*nor, const u32 *smpt,
addr = smpt[i + 1];
 
err = spi_nor_read_raw(nor, addr, 1, _byte);
-   if (err)
+   if (err) {
+   ret = ERR_PTR(err);
goto out;
+   }
 
/*
 * Build an index value that is used to select the Sector Map
@@ -2906,6 +2910,7 @@ static const u32 *spi_nor_get_map_in_use(struct spi_nor 
*nor, const u32 *smpt,
 *
 * Find the matching configuration map.
 */
+   ret = ERR_PTR(-EINVAL);
while (i < smpt_len) {
if (SMPT_MAP_ID(smpt[i]) == map_id) {
ret = smpt + i;
@@ -3046,8 +3051,8 @@ static int spi_nor_parse_smpt(struct spi_nor *nor,
smpt[i] = le32_to_cpu(smpt[i]);
 
sector_map = spi_nor_get_map_in_use(nor, smpt, smpt_header->length);
-   if (!sector_map) {
-   ret = -EINVAL;
+   if (IS_ERR(sector_map)) {
+   ret = PTR_ERR(sector_map);
goto out;
}
 
-- 
2.9.4



[PATCH v2 3/5] mtd: spi-nor: don't overwrite errno in spi_nor_get_map_in_use()

2018-11-09 Thread Tudor.Ambarus
Don't overwrite the errno from spi_nor_read_raw().

Signed-off-by: Tudor Ambarus 
---
 drivers/mtd/spi-nor/spi-nor.c | 13 +
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c
index 98e433e8e4c2..04a1c5b825e6 100644
--- a/drivers/mtd/spi-nor/spi-nor.c
+++ b/drivers/mtd/spi-nor/spi-nor.c
@@ -2861,11 +2861,13 @@ static u8 spi_nor_smpt_read_dummy(const struct spi_nor 
*nor, const u32 settings)
  * @nor:   pointer to a 'struct spi_nor'
  * @smpt:  pointer to the sector map parameter table
  * @smpt_len:  sector map parameter table length
+ *
+ * Return: pointer to the map in use, ERR_PTR(-errno) otherwise.
  */
 static const u32 *spi_nor_get_map_in_use(struct spi_nor *nor, const u32 *smpt,
 u8 smpt_len)
 {
-   const u32 *ret = NULL;
+   const u32 *ret;
u32 addr;
int err;
u8 i;
@@ -2889,8 +2891,10 @@ static const u32 *spi_nor_get_map_in_use(struct spi_nor 
*nor, const u32 *smpt,
addr = smpt[i + 1];
 
err = spi_nor_read_raw(nor, addr, 1, _byte);
-   if (err)
+   if (err) {
+   ret = ERR_PTR(err);
goto out;
+   }
 
/*
 * Build an index value that is used to select the Sector Map
@@ -2906,6 +2910,7 @@ static const u32 *spi_nor_get_map_in_use(struct spi_nor 
*nor, const u32 *smpt,
 *
 * Find the matching configuration map.
 */
+   ret = ERR_PTR(-EINVAL);
while (i < smpt_len) {
if (SMPT_MAP_ID(smpt[i]) == map_id) {
ret = smpt + i;
@@ -3046,8 +3051,8 @@ static int spi_nor_parse_smpt(struct spi_nor *nor,
smpt[i] = le32_to_cpu(smpt[i]);
 
sector_map = spi_nor_get_map_in_use(nor, smpt, smpt_header->length);
-   if (!sector_map) {
-   ret = -EINVAL;
+   if (IS_ERR(sector_map)) {
+   ret = PTR_ERR(sector_map);
goto out;
}
 
-- 
2.9.4