[PATCH] drm/amd/display: Fix NULL pointer dereference in dmub_tracebuffer_show

Dan Carpenter dan.carpenter at linaro.org
Thu Dec 12 10:55:11 UTC 2024


On Thu, Dec 12, 2024 at 03:07:58PM +0530, Srinivasan Shanmugam wrote:
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
> index 11a7ac54f91c..0092d4a1e59d 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
> @@ -902,7 +902,7 @@ static int dmub_tracebuffer_show(struct seq_file *m, void *data)
>  {
>  	struct amdgpu_device *adev = m->private;
>  	struct dmub_srv_fb_info *fb_info = adev->dm.dmub_fb_info;
> -	struct dmub_fw_meta_info *fw_meta_info = &adev->dm.dmub_srv->meta_info;
> +	struct dmub_fw_meta_info *fw_meta_info;

This needs to be initialized to NULL.

	struct dmub_fw_meta_info *fw_meta_info = NULL;

otherwise it's uninitialized later.

>  	struct dmub_debugfs_trace_entry *entries;
>  	uint8_t *tbuf_base;
>  	uint32_t tbuf_size, max_entries, num_entries, first_entry, i;
> @@ -914,6 +914,9 @@ static int dmub_tracebuffer_show(struct seq_file *m, void *data)
>  	if (!tbuf_base)
>  		return 0;
>  
> +	if (adev->dm.dmub_srv)
> +		fw_meta_info = &adev->dm.dmub_srv->meta_info;
> +
>  	tbuf_size = fw_meta_info ? fw_meta_info->trace_buffer_size :
>  				   DMUB_TRACE_BUFFER_SIZE;
>  	max_entries = (tbuf_size - sizeof(struct dmub_debugfs_trace_header)) /

regards,
dan carpenter


More information about the amd-gfx mailing list