aboutsummaryrefslogtreecommitdiff
path: root/libflash
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2017-06-24 14:17:18 -0500
committerStewart Smith <stewart@linux.vnet.ibm.com>2017-06-26 14:28:58 +1000
commita70bf6b2c840d287252002b4d66247de9cdb2b66 (patch)
tree53a81b2d34459e620f2449012ceae794cc3f9956 /libflash
parented495a41d99385fd31589fd89a49c47ef98ca4be (diff)
downloadskiboot-a70bf6b2c840d287252002b4d66247de9cdb2b66.zip
skiboot-a70bf6b2c840d287252002b4d66247de9cdb2b66.tar.gz
skiboot-a70bf6b2c840d287252002b4d66247de9cdb2b66.tar.bz2
libffs: Fix ffs_lookup_part() return value
It would return success when the part wasn't found Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Michael Neuling <mikey@neuling.org> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Diffstat (limited to 'libflash')
-rw-r--r--libflash/libffs.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/libflash/libffs.c b/libflash/libffs.c
index 7ae9050..8943505 100644
--- a/libflash/libffs.c
+++ b/libflash/libffs.c
@@ -348,18 +348,20 @@ void ffs_close(struct ffs_handle *ffs)
int ffs_lookup_part(struct ffs_handle *ffs, const char *name,
uint32_t *part_idx)
{
- int i = 0;
struct ffs_entry *ent = NULL;
+ int i = 0, rc = FFS_ERR_PART_NOT_FOUND;
list_for_each(&ffs->hdr.entries, ent, list) {
- if (strncmp(name, ent->name, sizeof(ent->name)) == 0)
+ if (strncmp(name, ent->name, sizeof(ent->name)) == 0) {
+ rc = 0;
break;
+ }
i++;
}
- if (part_idx)
+ if (rc == 0 && part_idx)
*part_idx = i;
- return ent ? 0 : FFS_ERR_PART_NOT_FOUND;
+ return rc;
}
int ffs_part_info(struct ffs_handle *ffs, uint32_t part_idx,