Re: [PATCH v3 3/9] device property: add index argument to property_read_string_array() callback

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Mar 25, 2022 at 12:31:42PM +0100, Clément Léger wrote:
> This will allow to read a string array from a specified offset. Support
> for this new parameter has been added in both of through the use of
> of_property_read_string_array_index() and in swnode though the existing
> property_entry_read_string_array() function. ACPI support has not yet
> been added and only index == 0 is accepted.

...

>  static int
>  acpi_fwnode_property_read_string_array(const struct fwnode_handle *fwnode,
>  				       const char *propname, const char **val,
> -				       size_t nval)
> +				       size_t nval, int index)
>  {
> +	if (index != 0)
> +		return -EINVAL;
> +
>  	return acpi_node_prop_read(fwnode, propname, DEV_PROP_STRING,
>  				   val, nval);

I guess it would be nice if some of us (ACPI folks) can provide a proper
prerequisite patch.

...

> -	array_len = min_t(size_t, nval, array_len);
>  	length = array_len * sizeof(*strings);

> -

Stray change.

>  	pointer = property_entry_find(props, propname, length);
>  	if (IS_ERR(pointer))
>  		return PTR_ERR(pointer);

> +	if (index >= array_len)
> +		return -ENODATA;

I was about to ask if we can check this before the property_entry_find() call,
but realized that in such case it will shadow possible errors due to wrong or
absent property.

...

> -		of_property_read_string_array(node, propname, val, nval) :
> +		of_property_read_string_array_index(node, propname, val, nval,
> +						    index) :

Dunno about the style there, but I think it can be one line.

-- 
With Best Regards,
Andy Shevchenko





[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux