From: Dmitry Torokhov Date: Wed, 23 Oct 2019 20:02:27 +0000 (-0700) Subject: software node: simplify property_entry_read_string_array() X-Git-Tag: v5.15~5063^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1afc14032e54a7e6c38304dc9a6bda1b6416f2b7;p=platform%2Fkernel%2Flinux-starfive.git software node: simplify property_entry_read_string_array() 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 Signed-off-by: Rafael J. Wysocki --- diff --git a/drivers/base/swnode.c b/drivers/base/swnode.c index f59dfd0..d8d0dc0 100644 --- a/drivers/base/swnode.c +++ b/drivers/base/swnode.c @@ -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);