Message ID | 20220223115434.21316-1-sakari.ailus@linux.intel.com |
---|---|
Headers | show |
Series | Cleanup scrap in v4l2_fwnode_reference_parse() | expand |
Hi Sakari, Thank you for the patch. On Wed, Feb 23, 2022 at 01:54:33PM +0200, Sakari Ailus wrote: > The check of -ENODATA return value from > fwnode_property_get_reference_args() was made redundant by commit > c343bc2ce2c6 ("ACPI: properties: Align return codes of > __acpi_node_get_property_reference()"). -ENOENT remains to be used to > signal there are no further entries. > > Remove the check for -ENODATA. > > Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > --- > drivers/media/v4l2-core/v4l2-fwnode.c | 6 +----- > 1 file changed, 1 insertion(+), 5 deletions(-) > > diff --git a/drivers/media/v4l2-core/v4l2-fwnode.c b/drivers/media/v4l2-core/v4l2-fwnode.c > index 71dcc9a96535..ae140443847b 100644 > --- a/drivers/media/v4l2-core/v4l2-fwnode.c > +++ b/drivers/media/v4l2-core/v4l2-fwnode.c > @@ -903,11 +903,7 @@ static int v4l2_fwnode_reference_parse(struct device *dev, > if (!index) > return -ENOENT; > > - /* > - * Note that right now both -ENODATA and -ENOENT may signal > - * out-of-bounds access. Return the error in cases other than that. > - */ > - if (ret != -ENOENT && ret != -ENODATA) > + if (ret != -ENOENT) > return ret; > > for (index = 0;
Hi Sakari, Thank you for the patch. On Wed, Feb 23, 2022 at 01:54:34PM +0200, Sakari Ailus wrote: > v4l2_fwnode_parse_reference() relied on counting the number of references > for async array memory allocation. The array is long gone so remove > counting the references now. > > This also changes how the function arrives in different unsuccessful > return values but the functionality remains unchanged. > > Also the check for -ENODATA is removed, it was made redundant by commit > c343bc2ce2c6 ("ACPI: properties: Align return codes of > __acpi_node_get_property_reference()"). This paragraph should be dropped. > Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > --- > drivers/media/v4l2-core/v4l2-fwnode.c | 24 ++++++++---------------- > 1 file changed, 8 insertions(+), 16 deletions(-) > > diff --git a/drivers/media/v4l2-core/v4l2-fwnode.c b/drivers/media/v4l2-core/v4l2-fwnode.c > index ae140443847b..afceb35e500c 100644 > --- a/drivers/media/v4l2-core/v4l2-fwnode.c > +++ b/drivers/media/v4l2-core/v4l2-fwnode.c > @@ -894,21 +894,8 @@ static int v4l2_fwnode_reference_parse(struct device *dev, > int ret; > > for (index = 0; > - !(ret = fwnode_property_get_reference_args(dev_fwnode(dev), > - prop, NULL, 0, > - index, &args)); > - index++) > - fwnode_handle_put(args.fwnode); > - > - if (!index) > - return -ENOENT; > - > - if (ret != -ENOENT) > - return ret; > - > - for (index = 0; > - !fwnode_property_get_reference_args(dev_fwnode(dev), prop, NULL, > - 0, index, &args); > + !(ret = fwnode_property_get_reference_args(dev_fwnode(dev), prop, > + NULL, 0, index, &args)); > index++) { > struct v4l2_async_subdev *asd; > > @@ -924,7 +911,12 @@ static int v4l2_fwnode_reference_parse(struct device *dev, > } > } > > - return 0; > + /* -ENOENT here means successful parsing */ > + if (ret != -ENOENT) > + return ret; > + > + /* Return -ENOENT if no references were found */ > + return index ? 0 : -ENOENT; > } > > /*