diff options
author | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2019-11-07 20:22:20 -0800 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2019-12-03 11:46:19 +0100 |
commit | e6bff4665c595b5a4aff173848851ed49ac3bfad (patch) | |
tree | 29a138a2391f95056326f2494808bd161de416ef /drivers/base/swnode.c | |
parent | 67b8ed29e0d472bda2f3afe48d6ff99e127eff0c (diff) |
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 <dmitry.torokhov@gmail.com>
[ rjw: Subject & changelog, struct property_entry kerneldoc ]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'drivers/base/swnode.c')
-rw-r--r-- | drivers/base/swnode.c | 12 |
1 files changed, 5 insertions, 7 deletions
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; } |