[Intel-gfx] [PATCH] drm/i915: Flush power delayed put when connector init failed
Imre Deak
imre.deak at intel.com
Thu Dec 22 20:35:38 UTC 2022
On Thu, Dec 22, 2022 at 09:18:04PM +0100, Maarten Lankhorst wrote:
> When intel_dp_init_connector fails, some power wells used in dp aux
> communication may not be completely disabled yet. This may result in a
> null pointer dereference when icl_aux_pw_to_phy() is called from
> icl_combo_phy_aux_power_well_disable() after the encoder and connector
> are already freed.
>
> Signed-off-by: Maarten Lankhorst <maarten.lankhorst at linux.intel.com>
> Cc: Imre Deak <imre.deak at intel.com>
> Cc: Jani Nikula <jani.nikula at intel.com>
> ---
> This approach better?
Looks ok to me, thanks for fixing it. I think Jani's idea is good to
refactor things wrt. the encoder hooks, but imo that could be done later
keeping the fix simpler, so:
Acked-by: Imre Deak <imre.deak at intel.com>
>
> drivers/gpu/drm/i915/display/intel_dp.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
> index bf80f296a8fd..8cf1d6ca86f4 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> @@ -5492,6 +5492,7 @@ intel_dp_init_connector(struct intel_digital_port *dig_port,
> return true;
>
> fail:
> + intel_display_power_flush_work(dev_priv);
> drm_connector_cleanup(connector);
>
> return false;
> --
> 2.37.2
>
More information about the Intel-gfx
mailing list