> On Jan 26, 2023, at 4:53 AM, Ming Lei <ming.lei@xxxxxxxxxx> wrote: > > The 'ublk_chr_class' is needed when deleting ublk char devices in > ublk_exit(), so move it after devices(idle) are removed. > > Fixes the following warning reported by Harris, James R: > > [ 859.178950] sysfs group 'power' not found for kobject 'ublkc0' > [ 859.178962] WARNING: CPU: 3 PID: 1109 at fs/sysfs/group.c:278 sysfs_remove_group+0x9c/0xb0 > > Reported-by: "Harris, James R" <james.r.harris@xxxxxxxxx> > Fixes: 71f28f3136af ("ublk_drv: add io_uring based userspace block driver") > Link: https://lore.kernel.org/linux-block/Y9JlFmSgDl3+zy3N@T590/T/#t > Signed-off-by: Ming Lei <ming.lei@xxxxxxxxxx> > --- > drivers/block/ublk_drv.c | 7 +++---- > 1 file changed, 3 insertions(+), 4 deletions(-) > > diff --git a/drivers/block/ublk_drv.c b/drivers/block/ublk_drv.c > index 9f32553cb938..a725a236a38f 100644 > --- a/drivers/block/ublk_drv.c > +++ b/drivers/block/ublk_drv.c > @@ -2238,13 +2238,12 @@ static void __exit ublk_exit(void) > struct ublk_device *ub; > int id; > > - class_destroy(ublk_chr_class); > - > - misc_deregister(&ublk_misc); > - > idr_for_each_entry(&ublk_index_idr, ub, id) > ublk_remove(ub); > > + class_destroy(ublk_chr_class); > + misc_deregister(&ublk_misc); > + > idr_destroy(&ublk_index_idr); > unregister_chrdev_region(ublk_chr_devt, UBLK_MINORS); > } > -- > 2.31.1 > This works for me. Thanks Ming! Tested-by: Jim Harris <james.r.harris@xxxxxxxxx>