2017-06-29 12:01:33

by Arvind Yadav

[permalink] [raw]
Subject: [PATCH] kernel: ksysfs: 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
1120 544 16 1680 690 kernel/ksysfs.o

File size After adding 'const':
text data bss dec hex filename
1160 480 16 1656 678 kernel/ksysfs.o

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

diff --git a/kernel/ksysfs.c b/kernel/ksysfs.c
index 23cd706..df1a9aa 100644
--- a/kernel/ksysfs.c
+++ b/kernel/ksysfs.c
@@ -234,7 +234,7 @@ static ssize_t notes_read(struct file *filp, struct kobject *kobj,
NULL
};

-static struct attribute_group kernel_attr_group = {
+static const struct attribute_group kernel_attr_group = {
.attrs = kernel_attrs,
};

--
1.9.1


2017-06-29 16:14:51

by Kees Cook

[permalink] [raw]
Subject: Re: [PATCH] kernel: ksysfs: constify attribute_group structures.

On Thu, Jun 29, 2017 at 5:01 AM, Arvind Yadav <[email protected]> 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.
>
> File size before:
> text data bss dec hex filename
> 1120 544 16 1680 690 kernel/ksysfs.o
>
> File size After adding 'const':
> text data bss dec hex filename
> 1160 480 16 1656 678 kernel/ksysfs.o
>
> Signed-off-by: Arvind Yadav <[email protected]>

Thanks! Always nice to get more const structures. :)

Andrew, can you pick this up?

Acked-by: Kees Cook <[email protected]>

-Kees

> ---
> kernel/ksysfs.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/kernel/ksysfs.c b/kernel/ksysfs.c
> index 23cd706..df1a9aa 100644
> --- a/kernel/ksysfs.c
> +++ b/kernel/ksysfs.c
> @@ -234,7 +234,7 @@ static ssize_t notes_read(struct file *filp, struct kobject *kobj,
> NULL
> };
>
> -static struct attribute_group kernel_attr_group = {
> +static const struct attribute_group kernel_attr_group = {
> .attrs = kernel_attrs,
> };
>
> --
> 1.9.1
>



--
Kees Cook
Pixel Security