driver core: class: fix block class problem when removing CONFIG_SYSFS_DEPRECATED*
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 7 Mar 2023 07:51:02 +0000 (08:51 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 7 Mar 2023 08:24:29 +0000 (09:24 +0100)
In removing the CONFIG_SYSFS_DEPRECATED and CONFIG_SYSFS_DEPRECATED_V2
config options, I messed up in the __class_register() function and got
the logic incorrect.  Fix this all up by just removing the special case
of a block device class logic in this function, as that is what is
intended.

In testing, this solves the boot problem on my systems, hopefully on
others as well.

Cc: "Rafael J. Wysocki" <rafael@kernel.org>
Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Fixes: 721da5cee9d4 ("driver core: remove CONFIG_SYSFS_DEPRECATED and CONFIG_SYSFS_DEPRECATED_V2")
Link: https://lore.kernel.org/r/20230307075102.3537-1-gregkh@linuxfoundation.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/base/class.c

index fb8f2a1..5983eea 100644 (file)
@@ -178,13 +178,7 @@ int __class_register(struct class *cls, struct lock_class_key *key)
        if (!cls->dev_kobj)
                cls->dev_kobj = sysfs_dev_char_kobj;
 
-#if defined(CONFIG_BLOCK)
-       /* let the block class directory show up in the root of sysfs */
-       if (cls != &block_class)
-               cp->subsys.kobj.kset = class_kset;
-#else
        cp->subsys.kobj.kset = class_kset;
-#endif
        cp->subsys.kobj.ktype = &class_ktype;
        cp->class = cls;
        cls->p = cp;