diff options
| author | Hans de Goede <johannes.goede@oss.qualcomm.com> | 2025-12-21 17:57:40 +0100 |
|---|---|---|
| committer | Helge Deller <deller@gmx.de> | 2026-02-14 11:07:12 +0100 |
| commit | 68eeb0871e986ae5462439dae881e3a27bcef85f (patch) | |
| tree | 285d66aadc089693d06e9747b9d5b4118ec6c49d /include/linux | |
| parent | 120adae7b42faa641179270c067864544a50ab69 (diff) | |
fbdev: Use device_create_with_groups() to fix sysfs groups registration race
The fbdev sysfs attributes are registered after sending the uevent for
the device creation, leaving a race window where e.g. udev rules may
not be able to access the sysfs attributes because the registration is
not done yet.
Fix this by switching to device_create_with_groups(). This also results in
a nice cleanup. After switching to device_create_with_groups() all that
is left of fb_init_device() is setting the drvdata and that can be passed
to device_create[_with_groups]() too. After which fb_init_device() can
be completely removed.
Dropping fb_init_device() + fb_cleanup_device() in turn allows removing
fb_info.class_flag as they were the only user of this field.
Fixes: 5fc830d6aca1 ("fbdev: Register sysfs groups through device_add_group")
Cc: stable@vger.kernel.org
Cc: Shixiong Ou <oushixiong@kylinos.cn>
Signed-off-by: Hans de Goede <johannes.goede@oss.qualcomm.com>
Signed-off-by: Helge Deller <deller@gmx.de>
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/fb.h | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/include/linux/fb.h b/include/linux/fb.h index 65fb70382675..aaa50b81f1d2 100644 --- a/include/linux/fb.h +++ b/include/linux/fb.h @@ -493,7 +493,6 @@ struct fb_info { #if defined(CONFIG_FB_DEVICE) struct device *dev; /* This is this fb device */ #endif - int class_flag; /* private sysfs flags */ #ifdef CONFIG_FB_TILEBLITTING struct fb_tile_ops *tileops; /* Tile Blitting */ #endif |
