Hi Krzysztof,

...

> Amend the problem by removing debugfs entries and marking
> registered flag as false upon error in drm_dev_register().
> 
> Signed-off-by: Krzysztof Karas <[email protected]>
> Co-developed-by: Krzysztof Niemiec <[email protected]>
> Signed-off-by: Krzysztof Niemiec <[email protected]>

I think the right order should be:

Co-developed-by: Krzysztof Karas <[email protected]>
Signed-off-by: Krzysztof Karas <[email protected]>
Signed-off-by: Krzysztof Niemiec <[email protected]>

> diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
> index e51ed959da89..b98e8af6f1c1 100644
> --- a/drivers/gpu/drm/drm_drv.c
> +++ b/drivers/gpu/drm/drm_drv.c
> @@ -1140,6 +1140,8 @@ int drm_dev_register(struct drm_device *dev, unsigned 
> long flags)
>       drm_minor_unregister(dev, DRM_MINOR_ACCEL);
>       drm_minor_unregister(dev, DRM_MINOR_PRIMARY);
>       drm_minor_unregister(dev, DRM_MINOR_RENDER);
> +     drm_debugfs_dev_fini(dev);

I think sashiko is right here, this should be removed.

> +     dev->registered = false;

dev->registered = false should be set at the very beginning,
maybe something like this:

err_unload:
        dev->registered = false;
        if (dev->driver->unload)
                dev->driver->unload(dev);
        goto err_cleanup;
err_minors:
        dev->registered = false;
err_clenup:
        ...

Thanks,
Andi

Reply via email to