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
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
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
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"
>> };