mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
sysfs: attribute_group: allow registration of const attribute
To be able to constify instances of struct attribute it has to be
possible to add them to struct attribute_group. The current type of the
attrs member however is not compatible with that. Introduce a union that
allows registration of both const and non-const attributes to enable a
piecewise transition. As both union member types are compatible no
logic needs to be adapted.
Technically it is now possible register a const struct attribute and
receive it as mutable pointer in the callbacks. This is a soundness
issue. But this same soundness issue already exists today in
sysfs_create_file(). Also the struct definition and callback
implementation are always closely linked and are meant to be moved to
const in lockstep.
Similar to commit 906c508afd ("sysfs: attribute_group: allow
registration of const bin_attribute")
Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
Link: https://patch.msgid.link/20251029-sysfs-const-attr-prep-v5-1-ea7d745acff4@weissschuh.net
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
a762f883ec
commit
f85d90dd8d
@@ -105,7 +105,10 @@ struct attribute_group {
|
||||
size_t (*bin_size)(struct kobject *,
|
||||
const struct bin_attribute *,
|
||||
int);
|
||||
struct attribute **attrs;
|
||||
union {
|
||||
struct attribute **attrs;
|
||||
const struct attribute *const *attrs_const;
|
||||
};
|
||||
const struct bin_attribute *const *bin_attrs;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user