drm/amdgpu/display/dc: Fix null pointer exception
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>