Re: [PATCH] drm/tilcdc: fix wrong error handling

From: Sean Paul
Date: Fri Sep 23 2016 - 07:47:53 EST


On Fri, Sep 23, 2016 at 3:52 AM, Daniel Schultz <d.schultz@xxxxxxxxx> wrote:
> When 'component_bind_all' fails it should not try to unbind components
> in the error handling. This will produce a null pointer kernel panic when
> no component exist.
>
> This patch changes the order of the error handling. Now, it will only
> unbind components if the are bound. Otherwise, the module will jump to
> an error label below.
>
> Signed-off-by: Daniel Schultz <d.schultz@xxxxxxxxx>

Reviewed-by: Sean Paul <seanpaul@xxxxxxxxxxxx>

> ---
> drivers/gpu/drm/tilcdc/tilcdc_drv.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/tilcdc/tilcdc_drv.c b/drivers/gpu/drm/tilcdc/tilcdc_drv.c
> index d278093..d491610 100644
> --- a/drivers/gpu/drm/tilcdc/tilcdc_drv.c
> +++ b/drivers/gpu/drm/tilcdc/tilcdc_drv.c
> @@ -315,13 +315,13 @@ fail_irq_uninstall:
> fail_vblank_cleanup:
> drm_vblank_cleanup(dev);
>
> -fail_mode_config_cleanup:
> - drm_mode_config_cleanup(dev);
> -
> fail_component_cleanup:
> if (priv->is_componentized)
> component_unbind_all(dev->dev, dev);
>
> +fail_mode_config_cleanup:
> + drm_mode_config_cleanup(dev);
> +
> fail_external_cleanup:
> tilcdc_remove_external_encoders(dev);
>
> --
> 1.9.1
>