From 9426998ce6f8616c48c2834cafbe5616da3f5abd Mon Sep 17 00:00:00 2001 From: Dmitry Torokhov Date: Thu, 2 Feb 2017 17:41:26 -0800 Subject: [PATCH] device property: constify property arrays values Data that is fed into property arrays should not be modified, so let's mark relevant pointers as const. This will allow us making source arrays as const/__initconst. Signed-off-by: Dmitry Torokhov Signed-off-by: Rafael J. Wysocki --- drivers/base/property.c | 10 +++++----- include/linux/property.h | 12 ++++++------ 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/base/property.c b/drivers/base/property.c index e9fa75645d695..31b942a29fdc4 100644 --- a/drivers/base/property.c +++ b/drivers/base/property.c @@ -718,7 +718,8 @@ static void pset_free_set(struct property_set *pset) static int pset_copy_entry(struct property_entry *dst, const struct property_entry *src) { - const char **d, **s; + const char * const *s; + char **d; size_t i, nval; dst->name = kstrdup(src->name, GFP_KERNEL); @@ -731,12 +732,11 @@ static int pset_copy_entry(struct property_entry *dst, if (src->is_string) { nval = src->length / sizeof(const char *); - dst->pointer.str = kcalloc(nval, sizeof(const char *), - GFP_KERNEL); - if (!dst->pointer.str) + d = kcalloc(nval, sizeof(const char *), GFP_KERNEL); + if (!d) return -ENOMEM; - d = dst->pointer.str; + dst->pointer.raw_data = d; s = src->pointer.str; for (i = 0; i < nval; i++) { d[i] = kstrdup(s[i], GFP_KERNEL); diff --git a/include/linux/property.h b/include/linux/property.h index d37a4498b3ac3..7a0a1cce5165f 100644 --- a/include/linux/property.h +++ b/include/linux/property.h @@ -160,12 +160,12 @@ struct property_entry { bool is_string; union { union { - void *raw_data; - u8 *u8_data; - u16 *u16_data; - u32 *u32_data; - u64 *u64_data; - const char **str; + const void *raw_data; + const u8 *u8_data; + const u16 *u16_data; + const u32 *u32_data; + const u64 *u64_data; + const char * const *str; } pointer; union { unsigned long long raw_data;