Commit b9f07cc8 authored by Tudor.Ambarus@microchip.com's avatar Tudor.Ambarus@microchip.com Committed by Boris Brezillon

mtd: spi-nor: don't overwrite errno in spi_nor_get_map_in_use()

Don't overwrite the errno from spi_nor_read_raw().
Signed-off-by: default avatarTudor Ambarus <tudor.ambarus@microchip.com>
Signed-off-by: default avatarBoris Brezillon <boris.brezillon@bootlin.com>
parent c797bd81
...@@ -2856,11 +2856,13 @@ static u8 spi_nor_smpt_read_dummy(const struct spi_nor *nor, const u32 settings) ...@@ -2856,11 +2856,13 @@ static u8 spi_nor_smpt_read_dummy(const struct spi_nor *nor, const u32 settings)
* @nor: pointer to a 'struct spi_nor' * @nor: pointer to a 'struct spi_nor'
* @smpt: pointer to the sector map parameter table * @smpt: pointer to the sector map parameter table
* @smpt_len: sector map parameter table length * @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, static const u32 *spi_nor_get_map_in_use(struct spi_nor *nor, const u32 *smpt,
u8 smpt_len) u8 smpt_len)
{ {
const u32 *ret = NULL; const u32 *ret;
u32 addr; u32 addr;
int err; int err;
u8 i; u8 i;
...@@ -2884,8 +2886,10 @@ static const u32 *spi_nor_get_map_in_use(struct spi_nor *nor, const u32 *smpt, ...@@ -2884,8 +2886,10 @@ static const u32 *spi_nor_get_map_in_use(struct spi_nor *nor, const u32 *smpt,
addr = smpt[i + 1]; addr = smpt[i + 1];
err = spi_nor_read_raw(nor, addr, 1, &data_byte); err = spi_nor_read_raw(nor, addr, 1, &data_byte);
if (err) if (err) {
ret = ERR_PTR(err);
goto out; goto out;
}
/* /*
* Build an index value that is used to select the Sector Map * Build an index value that is used to select the Sector Map
...@@ -2901,6 +2905,7 @@ static const u32 *spi_nor_get_map_in_use(struct spi_nor *nor, const u32 *smpt, ...@@ -2901,6 +2905,7 @@ static const u32 *spi_nor_get_map_in_use(struct spi_nor *nor, const u32 *smpt,
* *
* Find the matching configuration map. * Find the matching configuration map.
*/ */
ret = ERR_PTR(-EINVAL);
while (i < smpt_len) { while (i < smpt_len) {
if (SMPT_MAP_ID(smpt[i]) == map_id) { if (SMPT_MAP_ID(smpt[i]) == map_id) {
ret = smpt + i; ret = smpt + i;
...@@ -3041,8 +3046,8 @@ static int spi_nor_parse_smpt(struct spi_nor *nor, ...@@ -3041,8 +3046,8 @@ static int spi_nor_parse_smpt(struct spi_nor *nor,
smpt[i] = le32_to_cpu(smpt[i]); smpt[i] = le32_to_cpu(smpt[i]);
sector_map = spi_nor_get_map_in_use(nor, smpt, smpt_header->length); sector_map = spi_nor_get_map_in_use(nor, smpt, smpt_header->length);
if (!sector_map) { if (IS_ERR(sector_map)) {
ret = -EINVAL; ret = PTR_ERR(sector_map);
goto out; goto out;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment