Parsing the graph endpoint is always successful; therefore parse it as
last.

Signed-off-by: Sakari Ailus <sakari.ai...@linux.intel.com>
---
 drivers/media/v4l2-core/v4l2-fwnode.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/drivers/media/v4l2-core/v4l2-fwnode.c 
b/drivers/media/v4l2-core/v4l2-fwnode.c
index 0ddf05bb589a..c7a52962a9c0 100644
--- a/drivers/media/v4l2-core/v4l2-fwnode.c
+++ b/drivers/media/v4l2-core/v4l2-fwnode.c
@@ -308,7 +308,11 @@ static int __v4l2_fwnode_endpoint_parse(struct 
fwnode_handle *fwnode,
 
        pr_debug("===== begin V4L2 endpoint properties\n");
 
-       fwnode_graph_parse_endpoint(fwnode, &vep->base);
+       /*
+        * Zero the fwnode graph endpoint memory in case we don't end up parsing
+        * the endpoint.
+        */
+       memset(&vep->base, 0, sizeof(vep->base));
 
        /* Zero fields from bus_type to until the end */
        memset(&vep->bus_type, 0, sizeof(*vep) -
@@ -351,6 +355,8 @@ static int __v4l2_fwnode_endpoint_parse(struct 
fwnode_handle *fwnode,
                return -EINVAL;
        }
 
+       fwnode_graph_parse_endpoint(fwnode, &vep->base);
+
        return 0;
 }
 
-- 
2.11.0

Reply via email to