Skip to content

Commit

Permalink
software node: simplify property_entry_read_string_array()
Browse files Browse the repository at this point in the history
There is no need to treat string arrays and single strings separately, we can go
exclusively by the element length in relation to data type size.

Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
  • Loading branch information
Dmitry Torokhov authored and Rafael J. Wysocki committed Nov 5, 2019
1 parent daeba9b commit 1afc140
Showing 1 changed file with 7 additions and 14 deletions.
21 changes: 7 additions & 14 deletions drivers/base/swnode.c
Original file line number Diff line number Diff line change
Expand Up @@ -173,28 +173,21 @@ static int property_entry_read_string_array(const struct property_entry *props,
const char *propname,
const char **strings, size_t nval)
{
const struct property_entry *prop;
const void *pointer;
size_t array_len, length;
size_t length;
int array_len;

/* Find out the array length. */
prop = property_entry_get(props, propname);
if (!prop)
return -EINVAL;

if (prop->is_array)
/* Find the length of an array. */
array_len = property_entry_count_elems_of_size(props, propname,
sizeof(const char *));
else
/* The array length for a non-array string property is 1. */
array_len = 1;
array_len = property_entry_count_elems_of_size(props, propname,
sizeof(const char *));
if (array_len < 0)
return array_len;

/* Return how many there are if strings is NULL. */
if (!strings)
return array_len;

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

pointer = property_entry_find(props, propname, length);
Expand Down

0 comments on commit 1afc140

Please sign in to comment.