[PATCH] drm/amd/display: add missing NULL check for DML2

Alex Deucher alexdeucher at gmail.com
Tue Oct 10 13:25:00 UTC 2023


On Tue, Oct 10, 2023 at 2:07 AM Bob Zhou <bob.zhou at amd.com> wrote:
>
> Recently, the driver introduce DML2 for future ASIC support.
> But, some ASIC's hubbub pointer is null before calling.
> It cause the below null pointer issue, so add null check to fix it.
>
> BUG: kernel NULL pointer dereference, address: 0000000000000000
> RIP: 0010:dc_create_resource_pool+0xc1/0x2c0 [amdgpu] Call Trace:
>  <TASK>
>  ? show_regs.cold+0x1a/0x1f
>  ? __die_body+0x20/0x70
>  ? __die+0x2b/0x37
>  ? page_fault_oops+0x136/0x2c0
>  ? do_user_addr_fault+0x303/0x660
>  ? exc_page_fault+0x77/0x170
>  ? asm_exc_page_fault+0x27/0x30
>  ? dc_create_resource_pool+0xc1/0x2c0 [amdgpu]  ? dc_create_resource_pool+0x243/0x2c0 [amdgpu]
>  dc_create+0x23f/0x6b0 [amdgpu]
>  ? dmi_matches+0xa3/0x200
>  amdgpu_dm_init+0x2bd/0x22a0 [amdgpu]
>
> Fixes: a2815ada8616 ("drm/amd/display: Introduce DML2")
>
> Signed-off-by: Bob Zhou <bob.zhou at amd.com>

Acked-by: Alex Deucher <alexander.deucher at amd.com>

> ---
>  drivers/gpu/drm/amd/display/dc/core/dc_resource.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_resource.c b/drivers/gpu/drm/amd/display/dc/core/dc_resource.c
> index 25562b262555..d20e01226353 100644
> --- a/drivers/gpu/drm/amd/display/dc/core/dc_resource.c
> +++ b/drivers/gpu/drm/amd/display/dc/core/dc_resource.c
> @@ -321,7 +321,7 @@ struct resource_pool *dc_create_resource_pool(struct dc  *dc,
>                                 res_pool->ref_clocks.xtalin_clock_inKhz;
>                         res_pool->ref_clocks.dchub_ref_clock_inKhz =
>                                 res_pool->ref_clocks.xtalin_clock_inKhz;
> -                       if ((res_pool->hubbub->funcs->get_dchub_ref_freq))
> +                       if (res_pool->hubbub && res_pool->hubbub->funcs->get_dchub_ref_freq)
>                                 res_pool->hubbub->funcs->get_dchub_ref_freq(res_pool->hubbub,
>                                         res_pool->ref_clocks.dccg_ref_clock_inKhz,
>                                         &res_pool->ref_clocks.dchub_ref_clock_inKhz);
> --
> 2.34.1
>


More information about the amd-gfx mailing list