Re: [PATCH RESEND 2/3] drm/i915: check for return value

Daniel Vetter
2015-10-08T14:29:31Z

On Thu, Oct 08, 2015 at 07:28:00PM +0530, Sudip Mukherjee wrote:
> We were not checking the return value of drm_encoder_init() which can
> fail. And if it fails then we will be working with an uninitialized
> encoder.
>
> Cc: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Jani Nikula <jani.nikula@linux.intel.com>
> Signed-off-by: Sudip Mukherjee <sudip@vectorindia.org>

Queued for -next, thanks for the patch.
-Daniel

> ---
>
> Sent on 27/07/2015
>
> drivers/gpu/drm/i915/intel_dp.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> index 18bcfbe..2a8b47e 100644
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -6174,8 +6174,9 @@ intel_dp_init(struct drm_device *dev, int output_reg, enum port port)
> intel_encoder = &intel_dig_port->base;
> encoder = &intel_encoder->base;
>
> - drm_encoder_init(dev, &intel_encoder->base, &intel_dp_enc_funcs,
> - DRM_MODE_ENCODER_TMDS);
> + if (drm_encoder_init(dev, &intel_encoder->base, &intel_dp_enc_funcs,
> + DRM_MODE_ENCODER_TMDS))
> + goto err_encoder_init;
>
> intel_encoder->compute_config = intel_dp_compute_config;
> intel_encoder->disable = intel_disable_dp;
> @@ -6224,6 +6225,7 @@ intel_dp_init(struct drm_device *dev, int output_reg, enum port port)
>
> err_init_connector:
> drm_encoder_cleanup(encoder);
> +err_encoder_init:
> kfree(intel_connector);
> err_connector_alloc:
> kfree(intel_dig_port);
> --
> 1.9.1