lkml.org 
[lkml]   [2022]   [Aug]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 5.18 47/93] drm/amdgpu/display/dc: Fix null pointer exception
    Date
    From: Rahul Kumar <rahul.kumar1@amd.com>

    [ Upstream commit 1c4dae3e4639540fb567e570cc56a3c292afb6fe ]

    We observed hard hang due to NULL derefrence This issue is seen after
    running system all the time after two or three days

    struct dc *dc = plane_state->ctx->dc; Randomly in long run we found
    plane_state or plane_state->ctx is found NULL which causes exception.

    BUG: kernel NULL pointer dereference, address: 0000000000000000
    PF: supervisor read access in kernel mode
    PF: error_code(0x0000) - not-present page
    PGD 1dc7f2067 P4D 1dc7f2067 PUD 222c75067 PMD 0
    Oops: 0000 [#1] SMP NOPTI
    CPU: 5 PID: 29855 Comm: kworker/u16:4 ...
    ...
    Workqueue: events_unbound commit_work [drm_kms_helper]
    RIP: 0010:dcn10_update_pending_status+0x1f/0xee [amdgpu]
    Code: 41 5f c3 0f 1f 44 00 00 b0 01 c3 0f 1f 44 00 00 41 55 41 54 55 53 48 8b 1f 4c 8b af f8 00 00 00 48 8b 83 88 03 00 00 48 85 db <4c> 8b 20 0f 84 bf 00 00 00 48 89 fd 48 8b bf b8 00 00 00 48 8b 07
    RSP: 0018:ffff942941997ab8 EFLAGS: 00010286
    RAX: 0000000000000000 RBX: ffff8d7fd98d2000 RCX: 0000000000000000
    RDX: 0000000000000000 RSI: ffff8d7e3e87c708 RDI: ffff8d7f2d8c0690
    RBP: ffff8d7f2d8c0000 R08: ffff942941997a34 R09: 00000000ffffffff
    R10: 0000000000005000 R11: 00000000000000f0 R12: ffff8d7f2d8c0690
    R13: ffff8d8035a41680 R14: 00000000000186a0 R15: ffff8d7f2d8c1dd8
    FS: 0000000000000000(0000) GS:ffff8d8037340000(0000) knlGS:0000000000000000
    CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 0000000000000000 CR3: 0000000148030000 CR4: 00000000003406e0
    Call Trace:
    dc_commit_state+0x6a2/0x7f0 [amdgpu]
    amdgpu_dm_atomic_commit_tail+0x460/0x19bb [amdgpu]

    Tested-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
    Reviewed-by: Harry Wentland <harry.wentland@amd.com>
    Signed-off-by: Rahul Kumar <rahul.kumar1@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c
    index 83fbea2df410..b12a46c4e872 100644
    --- a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c
    +++ b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c
    @@ -3205,7 +3205,7 @@ void dcn10_update_pending_status(struct pipe_ctx *pipe_ctx)
    struct dc_plane_state *plane_state = pipe_ctx->plane_state;
    struct timing_generator *tg = pipe_ctx->stream_res.tg;
    bool flip_pending;
    - struct dc *dc = plane_state->ctx->dc;
    + struct dc *dc = pipe_ctx->stream->ctx->dc;

    if (plane_state == NULL)
    return;
    --
    2.35.1
    \
     
     \ /
      Last update: 2022-08-11 18:00    [W:8.231 / U:0.060 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site