[PATCH] drm: fix double drm_put_minor() in fail paths

Ilia Mirkin imirkin at alum.mit.edu
Thu Dec 12 09:12:22 PST 2013


On Thu, Dec 12, 2013 at 12:07 PM, Rob Clark <robdclark at gmail.com> wrote:
> If driver failed to load (for example, -EPROBE_DEFER), we'd end up doing
> drm_put_minor() both from drm_dev_register() and drm_dev_free(), the
> second time with a bogus pointer.

FYI, I sent a similar patch ~week ago that changed put_minor into
unplug_minor per David Herrmann's advice.

>
> Signed-off-by: Rob Clark <robdclark at gmail.com>
> ---
>  drivers/gpu/drm/drm_stub.c | 3 +++
>  1 file changed, 3 insertions(+)
>
> diff --git a/drivers/gpu/drm/drm_stub.c b/drivers/gpu/drm/drm_stub.c
> index f53d524..f245d99 100644
> --- a/drivers/gpu/drm/drm_stub.c
> +++ b/drivers/gpu/drm/drm_stub.c
> @@ -567,10 +567,13 @@ err_unload:
>                 dev->driver->unload(dev);
>  err_primary_node:
>         drm_put_minor(dev->primary);
> +       dev->primary = NULL;
>  err_render_node:
>         drm_put_minor(dev->render);
> +       dev->render = NULL;
>  err_control_node:
>         drm_put_minor(dev->control);
> +       dev->control = NULL;
>  err_agp:
>         if (dev->driver->bus->agp_destroy)
>                 dev->driver->bus->agp_destroy(dev);
> --
> 1.8.4.2
>
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel


More information about the dri-devel mailing list