On Monday, March 06, 2017 03:26:31 PM Sakari Ailus wrote: > of_property_read_string_array() returns number of strings read if the > target array of pointers is non-NULL. fwnode_property_read_string_array() > is documented to return 0 in that case. Fix this. Well, if we want people to use fwnode_property_read_string_array() instead of of_property_read_string_array(), it should better behave analogously, shouldn't it? > Signed-off-by: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx> > --- > drivers/base/property.c | 24 ++++++++++++++++++------ > 1 file changed, 18 insertions(+), 6 deletions(-) > > diff --git a/drivers/base/property.c b/drivers/base/property.c > index 9224541a..e67ec24 100644 > --- a/drivers/base/property.c > +++ b/drivers/base/property.c > @@ -544,12 +544,24 @@ static int __fwnode_property_read_string_array(struct fwnode_handle *fwnode, > const char *propname, > const char **val, size_t nval) > { > - if (is_of_node(fwnode)) > - return val ? > - of_property_read_string_array(to_of_node(fwnode), > - propname, val, nval) : > - of_property_count_strings(to_of_node(fwnode), propname); > - else if (is_acpi_node(fwnode)) > + if (is_of_node(fwnode)) { > + int rval; > + > + if (!val) > + return of_property_count_strings(to_of_node(fwnode), > + propname); > + > + rval = of_property_read_string_array(to_of_node(fwnode), > + propname, val, nval); > + > + if (rval < 0) > + return rval; > + > + if (rval == nval) > + return 0; > + > + return -EOVERFLOW; > + } else if (is_acpi_node(fwnode)) > return acpi_node_prop_read(fwnode, propname, DEV_PROP_STRING, > val, nval); > else if (is_pset_node(fwnode)) { > Thanks, Rafael -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html