Signed-off-by: Andy Shevchenko <andriy.shevche...@linux.intel.com>
---
 src/media.c |   16 +++++++++-------
 1 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/src/media.c b/src/media.c
index e3cab86..050289e 100644
--- a/src/media.c
+++ b/src/media.c
@@ -255,7 +255,7 @@ static int media_enum_entities(struct media_device *media)
        char target[1024];
        char *p;
        __u32 id;
-       int ret;
+       int ret = 0;
 
        for (id = 0; ; id = entity->info.id) {
                size = (media->entities_count + 1) * sizeof(*media->entities);
@@ -268,9 +268,9 @@ static int media_enum_entities(struct media_device *media)
 
                ret = ioctl(media->fd, MEDIA_IOC_ENUM_ENTITIES, &entity->info);
                if (ret < 0) {
-                       if (errno == EINVAL)
-                               break;
-                       return -errno;
+                       if (errno != EINVAL)
+                               ret = -errno;
+                       break;
                }
 
                /* Number of links (for outbound links) plus number of pads (for
@@ -281,8 +281,10 @@ static int media_enum_entities(struct media_device *media)
 
                entity->pads = malloc(entity->info.pads * 
sizeof(*entity->pads));
                entity->links = malloc(entity->max_links * 
sizeof(*entity->links));
-               if (entity->pads == NULL || entity->links == NULL)
-                       return -ENOMEM;
+               if (entity->pads == NULL || entity->links == NULL) {
+                       ret = -ENOMEM;
+                       break;
+               }
 
                media->entities_count++;
 
@@ -316,7 +318,7 @@ static int media_enum_entities(struct media_device *media)
                        strcpy(entity->devname, devname);
        }
 
-       return 0;
+       return ret;
 }
 
 struct media_device *media_open(const char *name, int verbose)
-- 
1.7.5.4

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to