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 v3: - Style cleanups - Register attributes directly via disk_attr_groups - Link to v2: https://lore.kernel.org/r/20230309-kobj_release-gendisk_integrity-v2-0-761a50d71900@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 (3): blk-integrity: use sysfs_emit blk-integrity: convert to struct device_attribute blk-integrity: register sysfs attributes on struct device block/blk-integrity.c | 175 +++++++++++++++++-------------------------------- block/blk.h | 10 +-- block/genhd.c | 12 ++-- include/linux/blkdev.h | 3 - 4 files changed, 66 insertions(+), 134 deletions(-) --- base-commit: 478a351ce0d69cef2d2bf2a686a09b356b63a66c change-id: 20230309-kobj_release-gendisk_integrity-e26c0bc126aa Best regards, -- Thomas Weißschuh <linux@xxxxxxxxxxxxxx>