lkml.org 
[lkml]   [2018]   [Mar]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL for 4.14 51/84] drm/amdgpu:fix virtual dce bug
    Date
    From: Monk Liu <Monk.Liu@amd.com>

    [ Upstream commit 129d65c18ecfb249aceb540c31fdaf79bd5a11ff ]

    this fix the issue that access memory after freed
    after driver unloaded.

    Signed-off-by: Monk Liu <Monk.Liu@amd.com>
    Acked-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    ---
    drivers/gpu/drm/amd/amdgpu/dce_virtual.c | 4 +++-
    1 file changed, 3 insertions(+), 1 deletion(-)

    diff --git a/drivers/gpu/drm/amd/amdgpu/dce_virtual.c b/drivers/gpu/drm/amd/amdgpu/dce_virtual.c
    index b9ee9073cb0d..f3f93b6b51ef 100644
    --- a/drivers/gpu/drm/amd/amdgpu/dce_virtual.c
    +++ b/drivers/gpu/drm/amd/amdgpu/dce_virtual.c
    @@ -437,6 +437,8 @@ static int dce_virtual_sw_fini(void *handle)
    drm_kms_helper_poll_fini(adev->ddev);

    drm_mode_config_cleanup(adev->ddev);
    + /* clear crtcs pointer to avoid dce irq finish routine access freed data */
    + memset(adev->mode_info.crtcs, 0, sizeof(adev->mode_info.crtcs[0]) * AMDGPU_MAX_CRTCS);
    adev->mode_info.mode_config_initialized = false;
    return 0;
    }
    @@ -723,7 +725,7 @@ static void dce_virtual_set_crtc_vblank_interrupt_state(struct amdgpu_device *ad
    int crtc,
    enum amdgpu_interrupt_state state)
    {
    - if (crtc >= adev->mode_info.num_crtc) {
    + if (crtc >= adev->mode_info.num_crtc || !adev->mode_info.crtcs[crtc]) {
    DRM_DEBUG("invalid crtc %d\n", crtc);
    return;
    }
    --
    2.14.1
    \
     
     \ /
      Last update: 2018-03-03 23:30    [W:4.091 / U:0.488 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site