From e6bff4665c595b5a4aff173848851ed49ac3bfad Mon Sep 17 00:00:00 2001 From: Dmitry Torokhov Date: Thu, 7 Nov 2019 20:22:20 -0800 Subject: software node: replace is_array with is_inline We do not need a special flag to know if we are dealing with an array, as we can get that data from ratio between element length and the data size, but we do need a flag to know whether or not the data is stored directly inside property_entry. Signed-off-by: Dmitry Torokhov [ rjw: Subject & changelog, struct property_entry kerneldoc ] Signed-off-by: Rafael J. Wysocki --- drivers/base/swnode.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) (limited to 'drivers/base/swnode.c') diff --git a/drivers/base/swnode.c b/drivers/base/swnode.c index d8d0dc0ca5ac..18a30fb3cc58 100644 --- a/drivers/base/swnode.c +++ b/drivers/base/swnode.c @@ -108,10 +108,7 @@ static const void *property_get_pointer(const struct property_entry *prop) if (!prop->length) return NULL; - if (prop->is_array) - return prop->pointer; - - return &prop->value; + return prop->is_inline ? &prop->value : prop->pointer; } static const void *property_entry_find(const struct property_entry *props, @@ -205,7 +202,7 @@ static void property_entry_free_data(const struct property_entry *p) const char * const *src_str; size_t i, nval; - if (p->is_array) { + if (!p->is_inline) { if (p->type == DEV_PROP_STRING && p->pointer) { src_str = p->pointer; nval = p->length / sizeof(const char *); @@ -250,7 +247,7 @@ static int property_entry_copy_data(struct property_entry *dst, const void *pointer = property_get_pointer(src); const void *new; - if (src->is_array) { + if (!src->is_inline) { if (!src->length) return -ENODATA; @@ -264,15 +261,16 @@ static int property_entry_copy_data(struct property_entry *dst, return -ENOMEM; } - dst->is_array = true; dst->pointer = new; } else if (src->type == DEV_PROP_STRING) { new = kstrdup(src->value.str, GFP_KERNEL); if (!new && src->value.str) return -ENOMEM; + dst->is_inline = true; dst->value.str = new; } else { + dst->is_inline = true; dst->value = src->value; } -- cgit v1.2.3