mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-15 00:34:10 +08:00
driver core: remove CONFIG_SYSFS_DEPRECATED and CONFIG_SYSFS_DEPRECATED_V2
CONFIG_SYSFS_DEPRECATED was added in commit88a22c985e
("CONFIG_SYSFS_DEPRECATED") in 2006 to allow systems with older versions of some tools (i.e. Fedora 3's version of udev) to boot properly. Four years later, in 2010, the option was attempted to be removed as most of userspace should have been fixed up properly by then, but some kernel developers clung to those old systems and refused to update, so we added CONFIG_SYSFS_DEPRECATED_V2 in commite52eec13cd
("SYSFS: Allow boot time switching between deprecated and modern sysfs layout") to allow them to continue to boot properly, and we allowed a boot time parameter to be used to switch back to the old format if needed. Over time, the logic that was covered under these config options was slowly removed from individual driver subsystems successfully, removed, and the only thing that is now left in the kernel are some changes in the block layer's representation in sysfs where real directories are used instead of symlinks like normal. Because the original changes were done to userspace tools in 2006, and all distros that use those tools are long end-of-life, and older non-udev-based systems do not care about the block layer's sysfs representation, it is time to finally remove this old logic and the config entries from the kernel. Cc: Jonathan Corbet <corbet@lwn.net> Cc: "Rafael J. Wysocki" <rafael@kernel.org> Cc: linux-block@vger.kernel.org Cc: linux-doc@vger.kernel.org Acked-by: Jens Axboe <axboe@kernel.dk> Link: https://lore.kernel.org/r/20230223073326.2073220-1-gregkh@linuxfoundation.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
fe15c26ee2
commit
721da5cee9
@ -6130,15 +6130,6 @@
|
||||
later by a loaded module cannot be set this way.
|
||||
Example: sysctl.vm.swappiness=40
|
||||
|
||||
sysfs.deprecated=0|1 [KNL]
|
||||
Enable/disable old style sysfs layout for old udev
|
||||
on older distributions. When this option is enabled
|
||||
very new udev will not work anymore. When this option
|
||||
is disabled (or CONFIG_SYSFS_DEPRECATED not compiled)
|
||||
in older udev will not work anymore.
|
||||
Default depends on CONFIG_SYSFS_DEPRECATED_V2 set in
|
||||
the kernel configuration.
|
||||
|
||||
sysrq_always_enabled
|
||||
[KNL]
|
||||
Ignore sysrq setting - this boot parameter will
|
||||
|
@ -466,12 +466,10 @@ int __must_check device_add_disk(struct device *parent, struct gendisk *disk,
|
||||
if (ret)
|
||||
goto out_device_del;
|
||||
|
||||
if (!sysfs_deprecated) {
|
||||
ret = sysfs_create_link(block_depr, &ddev->kobj,
|
||||
kobject_name(&ddev->kobj));
|
||||
if (ret)
|
||||
goto out_device_del;
|
||||
}
|
||||
|
||||
/*
|
||||
* avoid probable deadlock caused by allocating memory with
|
||||
@ -554,7 +552,6 @@ out_put_holder_dir:
|
||||
out_del_integrity:
|
||||
blk_integrity_del(disk);
|
||||
out_del_block_link:
|
||||
if (!sysfs_deprecated)
|
||||
sysfs_remove_link(block_depr, dev_name(ddev));
|
||||
out_device_del:
|
||||
device_del(ddev);
|
||||
@ -657,7 +654,6 @@ void del_gendisk(struct gendisk *disk)
|
||||
|
||||
part_stat_set_all(disk->part0, 0);
|
||||
disk->part0->bd_stamp = 0;
|
||||
if (!sysfs_deprecated)
|
||||
sysfs_remove_link(block_depr, dev_name(disk_to_dev(disk)));
|
||||
pm_runtime_set_memalloc_noio(disk_to_dev(disk), false);
|
||||
device_del(disk_to_dev(disk));
|
||||
@ -912,7 +908,6 @@ static int __init genhd_device_init(void)
|
||||
register_blkdev(BLOCK_EXT_MAJOR, "blkext");
|
||||
|
||||
/* create top-level block dir */
|
||||
if (!sysfs_deprecated)
|
||||
block_depr = kobject_create_and_add("block", NULL);
|
||||
return 0;
|
||||
}
|
||||
|
@ -180,7 +180,7 @@ int __class_register(struct class *cls, struct lock_class_key *key)
|
||||
|
||||
#if defined(CONFIG_BLOCK)
|
||||
/* let the block class directory show up in the root of sysfs */
|
||||
if (!sysfs_deprecated || cls != &block_class)
|
||||
if (cls != &block_class)
|
||||
cp->subsys.kobj.kset = class_kset;
|
||||
#else
|
||||
cp->subsys.kobj.kset = class_kset;
|
||||
|
@ -36,19 +36,6 @@
|
||||
#include "physical_location.h"
|
||||
#include "power/power.h"
|
||||
|
||||
#ifdef CONFIG_SYSFS_DEPRECATED
|
||||
#ifdef CONFIG_SYSFS_DEPRECATED_V2
|
||||
long sysfs_deprecated = 1;
|
||||
#else
|
||||
long sysfs_deprecated = 0;
|
||||
#endif
|
||||
static int __init sysfs_deprecated_setup(char *arg)
|
||||
{
|
||||
return kstrtol(arg, 10, &sysfs_deprecated);
|
||||
}
|
||||
early_param("sysfs.deprecated", sysfs_deprecated_setup);
|
||||
#endif
|
||||
|
||||
/* Device links support. */
|
||||
static LIST_HEAD(deferred_sync);
|
||||
static unsigned int defer_sync_state_count = 1;
|
||||
@ -3137,15 +3124,6 @@ static struct kobject *get_device_parent(struct device *dev,
|
||||
struct kobject *parent_kobj;
|
||||
struct kobject *k;
|
||||
|
||||
#ifdef CONFIG_BLOCK
|
||||
/* block disks show up in /sys/block */
|
||||
if (sysfs_deprecated && dev->class == &block_class) {
|
||||
if (parent && parent->class == &block_class)
|
||||
return &parent->kobj;
|
||||
return &block_class.p->subsys.kobj;
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* If we have no parent, we live in "virtual".
|
||||
* Class-devices with a non class-device as parent, live
|
||||
@ -3324,12 +3302,6 @@ static int device_add_class_symlinks(struct device *dev)
|
||||
goto out_subsys;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_BLOCK
|
||||
/* /sys/block has directories and does not need symlinks */
|
||||
if (sysfs_deprecated && dev->class == &block_class)
|
||||
return 0;
|
||||
#endif
|
||||
|
||||
/* link in the class directory pointing to the device */
|
||||
error = sysfs_create_link(&dev->class->p->subsys.kobj,
|
||||
&dev->kobj, dev_name(dev));
|
||||
@ -3359,10 +3331,6 @@ static void device_remove_class_symlinks(struct device *dev)
|
||||
if (dev->parent && device_is_not_partition(dev))
|
||||
sysfs_remove_link(&dev->kobj, "device");
|
||||
sysfs_remove_link(&dev->kobj, "subsystem");
|
||||
#ifdef CONFIG_BLOCK
|
||||
if (sysfs_deprecated && dev->class == &block_class)
|
||||
return;
|
||||
#endif
|
||||
sysfs_delete_link(&dev->class->p->subsys.kobj, &dev->kobj, dev_name(dev));
|
||||
}
|
||||
|
||||
@ -4652,11 +4620,6 @@ int device_change_owner(struct device *dev, kuid_t kuid, kgid_t kgid)
|
||||
if (error)
|
||||
goto out;
|
||||
|
||||
#ifdef CONFIG_BLOCK
|
||||
if (sysfs_deprecated && dev->class == &block_class)
|
||||
goto out;
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Change the owner of the symlink located in the class directory of
|
||||
* the device class associated with @dev which points to the actual
|
||||
|
@ -1092,10 +1092,4 @@ int dev_err_probe(const struct device *dev, int err, const char *fmt, ...);
|
||||
#define MODULE_ALIAS_CHARDEV_MAJOR(major) \
|
||||
MODULE_ALIAS("char-major-" __stringify(major) "-*")
|
||||
|
||||
#ifdef CONFIG_SYSFS_DEPRECATED
|
||||
extern long sysfs_deprecated;
|
||||
#else
|
||||
#define sysfs_deprecated 0
|
||||
#endif
|
||||
|
||||
#endif /* _DEVICE_H_ */
|
||||
|
38
init/Kconfig
38
init/Kconfig
@ -1297,44 +1297,6 @@ config SCHED_AUTOGROUP
|
||||
desktop applications. Task group autogeneration is currently based
|
||||
upon task session.
|
||||
|
||||
config SYSFS_DEPRECATED
|
||||
bool "Enable deprecated sysfs features to support old userspace tools"
|
||||
depends on SYSFS
|
||||
default n
|
||||
help
|
||||
This option adds code that switches the layout of the "block" class
|
||||
devices, to not show up in /sys/class/block/, but only in
|
||||
/sys/block/.
|
||||
|
||||
This switch is only active when the sysfs.deprecated=1 boot option is
|
||||
passed or the SYSFS_DEPRECATED_V2 option is set.
|
||||
|
||||
This option allows new kernels to run on old distributions and tools,
|
||||
which might get confused by /sys/class/block/. Since 2007/2008 all
|
||||
major distributions and tools handle this just fine.
|
||||
|
||||
Recent distributions and userspace tools after 2009/2010 depend on
|
||||
the existence of /sys/class/block/, and will not work with this
|
||||
option enabled.
|
||||
|
||||
Only if you are using a new kernel on an old distribution, you might
|
||||
need to say Y here.
|
||||
|
||||
config SYSFS_DEPRECATED_V2
|
||||
bool "Enable deprecated sysfs features by default"
|
||||
default n
|
||||
depends on SYSFS
|
||||
depends on SYSFS_DEPRECATED
|
||||
help
|
||||
Enable deprecated sysfs by default.
|
||||
|
||||
See the CONFIG_SYSFS_DEPRECATED option for more details about this
|
||||
option.
|
||||
|
||||
Only if you are using a new kernel on an old distribution, you might
|
||||
need to say Y here. Even then, odds are you would not need it
|
||||
enabled, you can always pass the boot option if absolutely necessary.
|
||||
|
||||
config RELAY
|
||||
bool "Kernel->user space relay support (formerly relayfs)"
|
||||
select IRQ_WORK
|
||||
|
Loading…
Reference in New Issue
Block a user