The embedded member integrity_kobj member of struct gendisk violates the assumption of the driver core that only one struct kobject should be embedded into another object and then manages its lifetime. As the integrity_kobj is only used to hold a few sysfs attributes it can be replaced by direct device_attributes and removed. Signed-off-by: Thomas Weißschuh <linux@xxxxxxxxxxxxxx> --- Changes in v2: - Get rid of integrity_kobj completely - Migrate to sysfs_emit helper - Link to v1: https://lore.kernel.org/r/20230309-kobj_release-gendisk_integrity-v1-1-a240f54eac60@xxxxxxxxxxxxxx --- Thomas Weißschuh (4): blk-integrity: use sysfs_emit blk-integrity: convert to struct device_attribute blk-integrity: register sysfs attributes on struct device blk-integrity: drop integrity_kobj from gendisk block/blk-integrity.c | 159 +++++++++++++++++-------------------------------- include/linux/blkdev.h | 3 - 2 files changed, 55 insertions(+), 107 deletions(-) --- base-commit: 55a21105ecc156495446d8ae75d7d73f66baed7b change-id: 20230309-kobj_release-gendisk_integrity-e26c0bc126aa Best regards, -- Thomas Weißschuh <linux@xxxxxxxxxxxxxx>