The sysfs core now allows instances of 'struct bin_attribute' to be
moved into read-only memory. Make use of that to protect them against
accidental or malicious modifications.
Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
---
drivers/gpu/drm/drm_sysfs.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/drm_sysfs.c b/drivers/gpu/drm/drm_sysfs.c
index fb3bbb6adcd16f3f325a2ae8e35f41851c00b272..60c1f26edb6fad23153c32a29fd3be02700fc938 100644
--- a/drivers/gpu/drm/drm_sysfs.c
+++ b/drivers/gpu/drm/drm_sysfs.c
@@ -261,7 +261,7 @@ static ssize_t enabled_show(struct device *device,
}
static ssize_t edid_show(struct file *filp, struct kobject *kobj,
- struct bin_attribute *attr, char *buf, loff_t off,
+ const struct bin_attribute *attr, char *buf, loff_t off,
size_t count)
{
struct device *connector_dev = kobj_to_dev(kobj);
@@ -315,21 +315,21 @@ static struct attribute *connector_dev_attrs[] = {
NULL
};
-static struct bin_attribute edid_attr = {
+static const struct bin_attribute edid_attr = {
.attr.name = "edid",
.attr.mode = 0444,
.size = 0,
- .read = edid_show,
+ .read_new = edid_show,
};
-static struct bin_attribute *connector_bin_attrs[] = {
+static const struct bin_attribute *const connector_bin_attrs[] = {
&edid_attr,
NULL
};
static const struct attribute_group connector_dev_group = {
.attrs = connector_dev_attrs,
- .bin_attrs = connector_bin_attrs,
+ .bin_attrs_new = connector_bin_attrs,
};
static const struct attribute_group *connector_dev_groups[] = {
--
2.47.1
Hi Thomas, On Mon, Dec 16, 2024 at 12:34:47PM +0100, Thomas Weißschuh wrote: > The sysfs core now allows instances of 'struct bin_attribute' to be > moved into read-only memory. Make use of that to protect them against > accidental or malicious modifications. > > Signed-off-by: Thomas Weißschuh <linux@weissschuh.net> Reviewed-by: Andi Shyti <andi.shyti@linux.intel.com> Thanks, Andi
On Mon, 16 Dec 2024, Thomas Weißschuh <linux@weissschuh.net> wrote:
> The sysfs core now allows instances of 'struct bin_attribute' to be
> moved into read-only memory. Make use of that to protect them against
> accidental or malicious modifications.
>
> Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
> ---
> drivers/gpu/drm/drm_sysfs.c | 10 +++++-----
> 1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_sysfs.c b/drivers/gpu/drm/drm_sysfs.c
> index fb3bbb6adcd16f3f325a2ae8e35f41851c00b272..60c1f26edb6fad23153c32a29fd3be02700fc938 100644
> --- a/drivers/gpu/drm/drm_sysfs.c
> +++ b/drivers/gpu/drm/drm_sysfs.c
> @@ -261,7 +261,7 @@ static ssize_t enabled_show(struct device *device,
> }
>
> static ssize_t edid_show(struct file *filp, struct kobject *kobj,
> - struct bin_attribute *attr, char *buf, loff_t off,
> + const struct bin_attribute *attr, char *buf, loff_t off,
> size_t count)
> {
> struct device *connector_dev = kobj_to_dev(kobj);
> @@ -315,21 +315,21 @@ static struct attribute *connector_dev_attrs[] = {
> NULL
> };
>
> -static struct bin_attribute edid_attr = {
> +static const struct bin_attribute edid_attr = {
> .attr.name = "edid",
> .attr.mode = 0444,
> .size = 0,
> - .read = edid_show,
> + .read_new = edid_show,
> };
>
> -static struct bin_attribute *connector_bin_attrs[] = {
> +static const struct bin_attribute *const connector_bin_attrs[] = {
> &edid_attr,
> NULL
> };
>
> static const struct attribute_group connector_dev_group = {
> .attrs = connector_dev_attrs,
> - .bin_attrs = connector_bin_attrs,
> + .bin_attrs_new = connector_bin_attrs,
> };
>
> static const struct attribute_group *connector_dev_groups[] = {
--
Jani Nikula, Intel
© 2016 - 2025 Red Hat, Inc.