device property: Move property_entry_free_data() upper
Subsystems (2)
Andy Shevchenko
reviewerPATCH 1/2 device property: Move property_entry_free_data() upper
It's just a preparatory patch to use property_entry_free_data() later on.
No functional change intended.
Signed-off-by Andy Shevchenko <[email protected]>
--- drivers/base/property.c | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-)
drivers/base/property.c +17 -17
@@ -698,6 +698,23 @@ int fwnode_property_get_reference_args(const struct fwnode_handle *fwnode, }EXPORT_SYMBOL_GPL (fwnode_property_get_reference_args); +static void property_entry_free_data (const struct property_entry *p) +{ +size_t i, nval; + +if (p->is_array) { +if (p->is_string && p->pointer.str) { + nval = p->length /sizeof (const char *); +for (i =0 ; i < nval; i++) +kfree (p->pointer.str[i]); + } +kfree (p->pointer.raw_data); + }else if (p->is_string) { +kfree (p->value.str); + } +kfree (p->name); +} +static int property_copy_string_array (struct property_entry *dst,const struct property_entry *src) {
@@ -771,23 +788,6 @@ static int property_entry_copy_data(struct property_entry *dst,return error; } -static void property_entry_free_data (const struct property_entry *p) -{ -size_t i, nval; - -if (p->is_array) { -if (p->is_string && p->pointer.str) { - nval = p->length /sizeof (const char *); -for (i =0 ; i < nval; i++) -kfree (p->pointer.str[i]); - } -kfree (p->pointer.raw_data); - }else if (p->is_string) { -kfree (p->value.str); - } -kfree (p->name); -} -/** * property_entries_dup - duplicate array of properties * @properties: array of properties to copy
Signature · 1 line
2.15.1
Andy Shevchenko
reviewerPATCH 2/2 device property: Reuse property_entry_free_data()
Reuse property_entry_free_data() in property_entry_copy_data() to make code slightly cleaner.
Signed-off-by Andy Shevchenko <[email protected]>
--- drivers/base/property.c | 34 ++++++++++++++-------------------- 1 file changed, 14 insertions(+), 20 deletions(-)
drivers/base/property.c +14 -20
@@ -745,34 +745,24 @@ static int property_entry_copy_data(struct property_entry *dst, {int error; - dst->name =kstrdup (src->name,GFP_KERNEL ); -if (!dst->name) -return -ENOMEM ; -if (src->is_array) { -if (!src->length) { - error = -ENODATA ; - goto out_free_name; - } +if (!src->length) +return -ENODATA ;if (src->is_string) { error =property_copy_string_array (dst, src);if (error) - goto out_free_name; +return error; }else { dst->pointer.raw_data =kmemdup (src->pointer.raw_data, src->length,GFP_KERNEL ); -if (!dst->pointer.raw_data) { - error = -ENOMEM ; - goto out_free_name; - } +if (!dst->pointer.raw_data) +return -ENOMEM ; } }else if (src->is_string) { dst->value.str =kstrdup (src->value.str,GFP_KERNEL ); -if (!dst->value.str && src->value.str) { - error = -ENOMEM ; - goto out_free_name; - } +if (!dst->value.str && src->value.str) +return -ENOMEM ; }else { dst->value.raw_data = src->value.raw_data; }
@@ -781,11 +771,15 @@ static int property_entry_copy_data(struct property_entry *dst, dst->is_array = src->is_array; dst->is_string = src->is_string; + dst->name =kstrdup (src->name,GFP_KERNEL ); +if (!dst->name) + goto out_free_data; +return 0 ; -out_free_name: -kfree (dst->name); -return error; +out_free_data: +property_entry_free_data (dst); +return -ENOMEM ; }/**
Signature · 1 line
2.15.1