diff options
| author | Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com> | 2026-04-02 16:15:02 +0200 |
|---|---|---|
| committer | Danilo Krummrich <dakr@kernel.org> | 2026-04-03 19:39:52 +0200 |
| commit | 9617b5b62c7cf4284740ba5efdbf083aa5a87e5f (patch) | |
| tree | a8a0068051efd2a0028bc656cb87182afa96ad36 /kernel | |
| parent | 704b2a7d756d0886a1388456ab41415a45973588 (diff) | |
| download | linux-9617b5b62c7cf4284740ba5efdbf083aa5a87e5f.tar.gz linux-9617b5b62c7cf4284740ba5efdbf083aa5a87e5f.zip | |
kernel: ksysfs: initialize kernel_kobj earlier
Software nodes depend on kernel_kobj which is initialized pretty late
into the boot process - as a core_initcall(). Ahead of moving the
software node initialization to driver_init() we must first make
kernel_kobj available before it.
Make ksysfs_init() visible in a new header - ksysfs.h - and call it in
do_basic_setup() right before driver_init().
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
Link: https://patch.msgid.link/20260402-nokia770-gpio-swnodes-v5-1-d730db3dd299@oss.qualcomm.com
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/ksysfs.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/kernel/ksysfs.c b/kernel/ksysfs.c index a9e6354d9e25..f45ade718054 100644 --- a/kernel/ksysfs.c +++ b/kernel/ksysfs.c @@ -8,6 +8,7 @@ #include <asm/byteorder.h> #include <linux/kobject.h> +#include <linux/ksysfs.h> #include <linux/string.h> #include <linux/sysfs.h> #include <linux/export.h> @@ -213,7 +214,7 @@ static const struct attribute_group kernel_attr_group = { .attrs = kernel_attrs, }; -static int __init ksysfs_init(void) +void __init ksysfs_init(void) { int error; @@ -234,14 +235,12 @@ static int __init ksysfs_init(void) goto group_exit; } - return 0; + return; group_exit: sysfs_remove_group(kernel_kobj, &kernel_attr_group); kset_exit: kobject_put(kernel_kobj); exit: - return error; + pr_err("failed to initialize the kernel kobject: %d\n", error); } - -core_initcall(ksysfs_init); |
