On Fri, Jun 10, 2022 at 03:16:29PM +0800, Sun Feng wrote: > after commit 52b85909f85d("block: fold register_disk into device_add_disk") > when set attribute_group with following code: > > disk_to_dev(disk)->groups = attr_groups; > err = add_disk(disk); > > disk_to_dev(disk)->groups will set to NULL in device_add_disk, > > static inline int __must_check add_disk(struct gendisk *disk) > { > return device_add_disk(NULL, disk, NULL); > } > int __must_check device_add_disk(struct device *parent, ... > const struct attribute_group **groups) > { > … > ddev->groups = groups > > and it will lose attribute group set. Well, your are not supposed to set the attribute group yourself, but instead pass it to device_add_disk.