Skip to content

Commit

Permalink
device property: constify property arrays values
Browse files Browse the repository at this point in the history
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 <dmitry.torokhov@gmail.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
  • Loading branch information
Dmitry Torokhov authored and Rafael J. Wysocki committed Feb 7, 2017
1 parent bec84da commit 9426998
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 11 deletions.
10 changes: 5 additions & 5 deletions drivers/base/property.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand All @@ -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);
Expand Down
12 changes: 6 additions & 6 deletions include/linux/property.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down

0 comments on commit 9426998

Please sign in to comment.