2017-07-17 10:35:19

by Arvind Yadav

[permalink] [raw]
Subject: [PATCH 1/2] thermal: int340x: constify attribute_group structures.

attribute_groups are not supposed to change at runtime. All functions
working with attribute_groups provided by <linux/sysfs.h> work
with const attribute_group. So mark the non-const structs as const.

File size before:
text data bss dec hex filename
1687 592 0 2279 8e7 int3400_thermal.o

File size After adding 'const':
text data bss dec hex filename
1751 528 0 2279 8e7 int3400_thermal.o

Signed-off-by: Arvind Yadav <[email protected]>
---
drivers/thermal/int340x_thermal/int3400_thermal.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/thermal/int340x_thermal/int3400_thermal.c b/drivers/thermal/int340x_thermal/int3400_thermal.c
index a9ec94e..b2ffbed 100644
--- a/drivers/thermal/int340x_thermal/int3400_thermal.c
+++ b/drivers/thermal/int340x_thermal/int3400_thermal.c
@@ -104,7 +104,7 @@ static ssize_t current_uuid_store(struct device *dev,
NULL
};

-static struct attribute_group uuid_attribute_group = {
+static const struct attribute_group uuid_attribute_group = {
.attrs = uuid_attrs,
.name = "uuids"
};
--
1.9.1


2017-07-17 10:35:37

by Arvind Yadav

[permalink] [raw]
Subject: [PATCH 2/2] thermal: int340x_thermal: Constify attribute_group structures.

attribute_groups are not supposed to change at runtime. All functions
working with attribute_groups provided by <linux/sysfs.h> work
with const attribute_group. So mark the non-const structs as const.

File size before:
text data bss dec hex filename
3152 1096 8 4256 10a0 processor_thermal_device.o

File size After adding 'const':
text data bss dec hex filename
3216 1032 8 4256 10a0 processor_thermal_device.o

Signed-off-by: Arvind Yadav <[email protected]>
---
drivers/thermal/int340x_thermal/processor_thermal_device.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/thermal/int340x_thermal/processor_thermal_device.c b/drivers/thermal/int340x_thermal/processor_thermal_device.c
index ff3b36f..f02341f 100644
--- a/drivers/thermal/int340x_thermal/processor_thermal_device.c
+++ b/drivers/thermal/int340x_thermal/processor_thermal_device.c
@@ -127,7 +127,7 @@ enum proc_thermal_emum_mode_type {
NULL
};

-static struct attribute_group power_limit_attribute_group = {
+static const struct attribute_group power_limit_attribute_group = {
.attrs = power_limit_attrs,
.name = "power_limits"
};
--
1.9.1

2017-07-17 10:41:26

by Andy Shevchenko

[permalink] [raw]
Subject: Re: [PATCH 1/2] thermal: int340x: constify attribute_group structures.

On Mon, 2017-07-17 at 16:04 +0530, Arvind Yadav wrote:
> attribute_groups are not supposed to change at runtime. All functions
> working with attribute_groups provided by <linux/sysfs.h> work
> with const attribute_group. So mark the non-const structs as const.
>

I hope you did compile test it.

> File size before:
>    text    data     bss     dec     hex
> filename
>    1687     592       0    2279     8e7
> int3400_thermal.o
>
> File size After adding 'const':
>    text    data     bss     dec     hex
> filename
>    1751     528       0    2279     8e7
> int3400_thermal.o
>
> Signed-off-by: Arvind Yadav <[email protected]>
> ---
>  drivers/thermal/int340x_thermal/int3400_thermal.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/thermal/int340x_thermal/int3400_thermal.c
> b/drivers/thermal/int340x_thermal/int3400_thermal.c
> index a9ec94e..b2ffbed 100644
> --- a/drivers/thermal/int340x_thermal/int3400_thermal.c
> +++ b/drivers/thermal/int340x_thermal/int3400_thermal.c
> @@ -104,7 +104,7 @@ static ssize_t current_uuid_store(struct device
> *dev,
>   NULL
>  };
>  
> -static struct attribute_group uuid_attribute_group = {
> +static const struct attribute_group uuid_attribute_group = {
>   .attrs = uuid_attrs,
>   .name = "uuids"
>  };

--
Andy Shevchenko <[email protected]>
Intel Finland Oy

2017-07-17 10:59:52

by Arvind Yadav

[permalink] [raw]
Subject: Re: [PATCH 1/2] thermal: int340x: constify attribute_group structures.

Hi Andy,


On Monday 17 July 2017 04:11 PM, Andy Shevchenko wrote:
> On Mon, 2017-07-17 at 16:04 +0530, Arvind Yadav wrote:
>> attribute_groups are not supposed to change at runtime. All functions
>> working with attribute_groups provided by <linux/sysfs.h> work
>> with const attribute_group. So mark the non-const structs as const.
>>
> I hope you did compile test it.
I have compiled it. If we will see <linux/sysfs.h>
"int sysfs_create_group(struct kobject *kobj, const struct
attribute_group *grp)" and
"void sysfs_remove_group(struct kobject *kobj, const struct
attribute_group *grp);"
Here, passing parameter attribute_group are constant. So I have
changed non-const as const.

~arvind
>
>> File size before:
>> text data bss dec hex
>> filename
>> 1687 592 0 2279 8e7
>> int3400_thermal.o
>>
>> File size After adding 'const':
>> text data bss dec hex
>> filename
>> 1751 528 0 2279 8e7
>> int3400_thermal.o
>>
>> Signed-off-by: Arvind Yadav <[email protected]>
>> ---
>> drivers/thermal/int340x_thermal/int3400_thermal.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/thermal/int340x_thermal/int3400_thermal.c
>> b/drivers/thermal/int340x_thermal/int3400_thermal.c
>> index a9ec94e..b2ffbed 100644
>> --- a/drivers/thermal/int340x_thermal/int3400_thermal.c
>> +++ b/drivers/thermal/int340x_thermal/int3400_thermal.c
>> @@ -104,7 +104,7 @@ static ssize_t current_uuid_store(struct device
>> *dev,
>> NULL
>> };
>>
>> -static struct attribute_group uuid_attribute_group = {
>> +static const struct attribute_group uuid_attribute_group = {
>> .attrs = uuid_attrs,
>> .name = "uuids"
>> };