• Akhil P Oommen's avatar
    drm/msm/adreno: Fix null ptr access in adreno_gpu_cleanup() · dbeedbcb
    Akhil P Oommen authored
    Fix the below kernel panic due to null pointer access:
    [   18.504431] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000048
    [   18.513464] Mem abort info:
    [   18.516346]   ESR = 0x0000000096000005
    [   18.520204]   EC = 0x25: DABT (current EL), IL = 32 bits
    [   18.525706]   SET = 0, FnV = 0
    [   18.528878]   EA = 0, S1PTW = 0
    [   18.532117]   FSC = 0x05: level 1 translation fault
    [   18.537138] Data abort info:
    [   18.540110]   ISV = 0, ISS = 0x00000005
    [   18.544060]   CM = 0, WnR = 0
    [   18.547109] user pgtable: 4k pages, 39-bit VAs, pgdp=0000000112826000
    [   18.553738] [0000000000000048] pgd=0000000000000000, p4d=0000000000000000, pud=0000000000000000
    [   18.562690] Internal error: Oops: 0000000096000005 [#1] PREEMPT SMP
    **Snip**
    [   18.696758] Call trace:
    [   18.699278]  adreno_gpu_cleanup+0x30/0x88
    [   18.703396]  a6xx_destroy+0xc0/0x130
    [   18.707066]  a6xx_gpu_init+0x308/0x424
    [   18.710921]  adreno_bind+0x178/0x288
    [   18.714590]  component_bind_all+0xe0/0x214
    [   18.718797]  msm_drm_bind+0x1d4/0x614
    [   18.722566]  try_to_bring_up_aggregate_device+0x16c/0x1b8
    [   18.728105]  __component_add+0xa0/0x158
    [   18.732048]  component_add+0x20/0x2c
    [   18.735719]  adreno_probe+0x40/0xc0
    [   18.739300]  platform_probe+0xb4/0xd4
    [   18.743068]  really_probe+0xfc/0x284
    [   18.746738]  __driver_probe_device+0xc0/0xec
    [   18.751129]  driver_probe_device+0x48/0x110
    [   18.755421]  __device_attach_driver+0xa8/0xd0
    [   18.759900]  bus_for_each_drv+0x90/0xdc
    [   18.763843]  __device_attach+0xfc/0x174
    [   18.767786]  device_initial_probe+0x20/0x2c
    [   18.772090]  bus_probe_device+0x40/0xa0
    [   18.776032]  deferred_probe_work_func+0x94/0xd0
    [   18.780686]  process_one_work+0x190/0x3d0
    [   18.784805]  worker_thread+0x280/0x3d4
    [   18.788659]  kthread+0x104/0x1c0
    [   18.791981]  ret_from_fork+0x10/0x20
    [   18.795654] Code: f9400408 aa0003f3 aa1f03f4 91142015 (f9402516)
    [   18.801913] ---[ end trace 0000000000000000 ]---
    [   18.809039] Kernel panic - not syncing: Oops: Fatal exception
    
    Fixes: 17e822f7 ("drm/msm: fix unbalanced pm_runtime_enable in adreno_gpu_{init, cleanup}")
    Signed-off-by: default avatarAkhil P Oommen <quic_akhilpo@quicinc.com>
    Patchwork: https://patchwork.freedesktop.org/patch/515605/
    Link: https://lore.kernel.org/r/20221221203925.v2.1.Ib978de92c4bd000b515486aad72e96c2481f84d0@changeidSigned-off-by: default avatarRob Clark <robdclark@chromium.org>
    dbeedbcb
adreno_gpu.c 26.9 KB