mirror of https://gitee.com/openkylin/linux.git
drm/amd/display: Guard against null crtc in CRC IRQ
[Why] A null pointer deference can occur if crtc is null in amdgpu_dm_crtc_handle_crc_irq. This can happen if get_crtc_by_otg_inst returns NULL during dm_crtc_high_irq, leading to a hang in some IGT test cases. [How] Check that CRTC is non-null before accessing its fields. Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com> Reviewed-by: Sun peng Li <Sunpeng.Li@amd.com> Acked-by: Leo Li <sunpeng.li@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
433149130c
commit
dddc0557e3
|
@ -98,10 +98,16 @@ int amdgpu_dm_crtc_set_crc_source(struct drm_crtc *crtc, const char *src_name,
|
|||
*/
|
||||
void amdgpu_dm_crtc_handle_crc_irq(struct drm_crtc *crtc)
|
||||
{
|
||||
struct dm_crtc_state *crtc_state = to_dm_crtc_state(crtc->state);
|
||||
struct dc_stream_state *stream_state = crtc_state->stream;
|
||||
struct dm_crtc_state *crtc_state;
|
||||
struct dc_stream_state *stream_state;
|
||||
uint32_t crcs[3];
|
||||
|
||||
if (crtc == NULL)
|
||||
return;
|
||||
|
||||
crtc_state = to_dm_crtc_state(crtc->state);
|
||||
stream_state = crtc_state->stream;
|
||||
|
||||
/* Early return if CRC capture is not enabled. */
|
||||
if (!crtc_state->crc_enabled)
|
||||
return;
|
||||
|
|
Loading…
Reference in New Issue