On Wed, Aug 14, 2024 at 04:36:23PM +0200, Louis Chauvet wrote: > As the driver now uses drm managed allocation, the devres group is not > needed anymore, so remove it. drmm isn't devres, and you still have a devres managed resource here, namely devm_drm_dev_alloc. The reason I suggest in the review on google's series for configfs to nuke this is that they switched over to making vkms a proper platform driver, in which case you get a devres group automatically for your driver binding. But neither the explicit one or the driver binding is one devres too few :-) Cheers, Sima > > Signed-off-by: Louis Chauvet <louis.chauvet@xxxxxxxxxxx> > --- > drivers/gpu/drm/vkms/vkms_drv.c | 18 +++++------------- > 1 file changed, 5 insertions(+), 13 deletions(-) > > diff --git a/drivers/gpu/drm/vkms/vkms_drv.c b/drivers/gpu/drm/vkms/vkms_drv.c > index e79832e10f3c..7ac3ab7e16e5 100644 > --- a/drivers/gpu/drm/vkms/vkms_drv.c > +++ b/drivers/gpu/drm/vkms/vkms_drv.c > @@ -297,16 +297,11 @@ static int vkms_create(struct vkms_config *config) > if (IS_ERR(pdev)) > return PTR_ERR(pdev); > > - if (!devres_open_group(&pdev->dev, NULL, GFP_KERNEL)) { > - ret = -ENOMEM; > - goto out_unregister; > - } > - > vkms_device = devm_drm_dev_alloc(&pdev->dev, &vkms_driver, > struct vkms_device, drm); > if (IS_ERR(vkms_device)) { > ret = PTR_ERR(vkms_device); > - goto out_devres; > + goto out_unregister; > } > vkms_device->platform = pdev; > vkms_device->config = config; > @@ -317,32 +312,30 @@ static int vkms_create(struct vkms_config *config) > > if (ret) { > DRM_ERROR("Could not initialize DMA support\n"); > - goto out_devres; > + goto out_unregister; > } > > ret = drm_vblank_init(&vkms_device->drm, 1); > if (ret) { > DRM_ERROR("Failed to vblank\n"); > - goto out_devres; > + goto out_unregister; > } > > ret = vkms_modeset_init(vkms_device); > if (ret) > - goto out_devres; > + goto out_unregister; > > drm_debugfs_add_files(&vkms_device->drm, vkms_config_debugfs_list, > ARRAY_SIZE(vkms_config_debugfs_list)); > > ret = drm_dev_register(&vkms_device->drm, 0); > if (ret) > - goto out_devres; > + goto out_unregister; > > drm_fbdev_shmem_setup(&vkms_device->drm, 0); > > return 0; > > -out_devres: > - devres_release_group(&pdev->dev, NULL); > out_unregister: > platform_device_unregister(pdev); > return ret; > @@ -383,7 +376,6 @@ static void vkms_destroy(struct vkms_config *config) > > drm_dev_unregister(&config->dev->drm); > drm_atomic_helper_shutdown(&config->dev->drm); > - devres_release_group(&pdev->dev, NULL); > platform_device_unregister(pdev); > > config->dev = NULL; > > -- > 2.44.2 > -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch