lkml.org 
[lkml]   [2021]   [Jul]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.13 410/800] drm/amd/display: fix potential gpu reset deadlock
    Date
    From: Roman Li <Roman.Li@amd.com>

    [ Upstream commit cf8b92a75646735136053ce51107bfa8cfc23191 ]

    [Why]
    In gpu reset dc_lock acquired in dm_suspend().
    Asynchronously handle_hpd_rx_irq can also be called
    through amdgpu_dm_irq_suspend->flush_work, which also
    tries to acquire dc_lock. That causes a deadlock.

    [How]
    Check if amdgpu executing reset before acquiring dc_lock.

    Signed-off-by: Lang Yu <Lang.Yu@amd.com>
    Signed-off-by: Roman Li <Roman.Li@amd.com>
    Reviewed-by: Qingqing Zhuo <Qingqing.Zhuo@amd.com>
    Acked-by: Wayne Lin <Wayne.Lin@amd.com>
    Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 6 ++++--
    1 file changed, 4 insertions(+), 2 deletions(-)

    diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
    index 652cc1a0e450..875fd187463e 100644
    --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
    +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
    @@ -2726,13 +2726,15 @@ static void handle_hpd_rx_irq(void *param)
    }
    }

    - mutex_lock(&adev->dm.dc_lock);
    + if (!amdgpu_in_reset(adev))
    + mutex_lock(&adev->dm.dc_lock);
    #ifdef CONFIG_DRM_AMD_DC_HDCP
    result = dc_link_handle_hpd_rx_irq(dc_link, &hpd_irq_data, NULL);
    #else
    result = dc_link_handle_hpd_rx_irq(dc_link, NULL, NULL);
    #endif
    - mutex_unlock(&adev->dm.dc_lock);
    + if (!amdgpu_in_reset(adev))
    + mutex_unlock(&adev->dm.dc_lock);

    out:
    if (result && !is_mst_root_connector) {
    --
    2.30.2


    \
     
     \ /
      Last update: 2021-07-12 10:36    [W:5.057 / U:0.504 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site