Commit 33bb6391 authored by Nicholas Kazlauskas's avatar Nicholas Kazlauskas Committed by Alex Deucher
Browse files

drm/amd/display: Fix USB4 null pointer dereference in update_psp_stream_config



[Why]
A porting error on a previous patch left the block of code that
causes the crash from a NULL pointer dereference.

More specifically, we try to access link_enc before it's assigned in
the USB4 case in the following assignment:

config.dio_output_idx = link_enc->transmitter - TRANSMITTER_UNIPHY_A;

[How]
That assignment occurs later depending on the ASIC version. It's only
needed on DCN31 and only after link_enc is already assigned.

Fixes: 98643044 ("drm/amd/display: fix a crash on USB4 over C20 PHY")
Reviewed-by: default avatarHarry Wentland <harry.wentland@amd.com>
Signed-off-by: default avatarNicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 33735c1c
Loading
Loading
Loading
Loading
+1 −4
Original line number Diff line number Diff line
@@ -3948,9 +3948,6 @@ static void update_psp_stream_config(struct pipe_ctx *pipe_ctx, bool dpms_off)

		if (pipe_ctx->stream->link->ep_type == DISPLAY_ENDPOINT_PHY ||
				pipe_ctx->stream->link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA) {
			link_enc = pipe_ctx->stream->link->link_enc;
			config.dio_output_type = pipe_ctx->stream->link->ep_type;
			config.dio_output_idx = link_enc->transmitter - TRANSMITTER_UNIPHY_A;
			if (pipe_ctx->stream->link->ep_type == DISPLAY_ENDPOINT_PHY)
				link_enc = pipe_ctx->stream->link->link_enc;
			else if (pipe_ctx->stream->link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA)