AMD-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Rodrigo Siqueira Jordao <Rodrigo.Siqueira@amd.com>
To: Aurabindo Pillai <aurabindo.pillai@amd.com>,
	amd-gfx@lists.freedesktop.org
Cc: harry.wentland@amd.com
Subject: Re: [PATCH v2] drm/amd/display: Fix null pointer deref in dcn20_resource.c
Date: Wed, 26 Jun 2024 18:30:26 -0600	[thread overview]
Message-ID: <3f71a531-e9a6-4e76-b268-cc9b5dd609ab@amd.com> (raw)
In-Reply-To: <20240626222831.691600-1-aurabindo.pillai@amd.com>



On 6/26/24 4:28 PM, Aurabindo Pillai wrote:
> Changes in v2: detailed description about the how the issue is
> reproduced, and remove an extraneous else keyword.

Just remove this 'Changes in v2' part, with this change:

Reviewed-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>

> 
> Fixes a hang thats triggered when MPV is run on a DCN401 dGPU:
> 
> mpv --hwdec=vaapi --vo=gpu --hwdec-codecs=all
> 
> and then enabling fullscreen playback (double click on the video)
> 
> The following calltrace will be seen:
> 
> [  181.843989] BUG: kernel NULL pointer dereference, address: 0000000000000000
> [  181.843997] #PF: supervisor instruction fetch in kernel mode
> [  181.844003] #PF: error_code(0x0010) - not-present page
> [  181.844009] PGD 0 P4D 0
> [  181.844020] Oops: 0010 [#1] PREEMPT SMP NOPTI
> [  181.844028] CPU: 6 PID: 1892 Comm: gnome-shell Tainted: G        W  OE      6.5.0-41-generic #41~22.04.2-Ubuntu
> [  181.844038] Hardware name: System manufacturer System Product Name/CROSSHAIR VI HERO, BIOS 6302 10/23/2018
> [  181.844044] RIP: 0010:0x0
> [  181.844079] Code: Unable to access opcode bytes at 0xffffffffffffffd6.
> [  181.844084] RSP: 0018:ffffb593c2b8f7b0 EFLAGS: 00010246
> [  181.844093] RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000004
> [  181.844099] RDX: ffffb593c2b8f804 RSI: ffffb593c2b8f7e0 RDI: ffff9e3c8e758400
> [  181.844105] RBP: ffffb593c2b8f7b8 R08: ffffb593c2b8f9c8 R09: ffffb593c2b8f96c
> [  181.844110] R10: 0000000000000000 R11: 0000000000000000 R12: ffffb593c2b8f9c8
> [  181.844115] R13: 0000000000000001 R14: ffff9e3c88000000 R15: 0000000000000005
> [  181.844121] FS:  00007c6e323bb5c0(0000) GS:ffff9e3f85f80000(0000) knlGS:0000000000000000
> [  181.844128] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  181.844134] CR2: ffffffffffffffd6 CR3: 0000000140fbe000 CR4: 00000000003506e0
> [  181.844141] Call Trace:
> [  181.844146]  <TASK>
> [  181.844153]  ? show_regs+0x6d/0x80
> [  181.844167]  ? __die+0x24/0x80
> [  181.844179]  ? page_fault_oops+0x99/0x1b0
> [  181.844192]  ? do_user_addr_fault+0x31d/0x6b0
> [  181.844204]  ? exc_page_fault+0x83/0x1b0
> [  181.844216]  ? asm_exc_page_fault+0x27/0x30
> [  181.844237]  dcn20_get_dcc_compression_cap+0x23/0x30 [amdgpu]
> [  181.845115]  amdgpu_dm_plane_validate_dcc.constprop.0+0xe5/0x180 [amdgpu]
> [  181.845985]  amdgpu_dm_plane_fill_plane_buffer_attributes+0x300/0x580 [amdgpu]
> [  181.846848]  fill_dc_plane_info_and_addr+0x258/0x350 [amdgpu]
> [  181.847734]  fill_dc_plane_attributes+0x162/0x350 [amdgpu]
> [  181.848748]  dm_update_plane_state.constprop.0+0x4e3/0x6b0 [amdgpu]
> [  181.849791]  ? dm_update_plane_state.constprop.0+0x4e3/0x6b0 [amdgpu]
> [  181.850840]  amdgpu_dm_atomic_check+0xdfe/0x1760 [amdgpu]
> 
> Signed-off-by: Aurabindo Pillai <aurabindo.pillai@amd.com>
> ---
>   .../drm/amd/display/dc/resource/dcn20/dcn20_resource.c   | 9 +++++----
>   1 file changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/display/dc/resource/dcn20/dcn20_resource.c b/drivers/gpu/drm/amd/display/dc/resource/dcn20/dcn20_resource.c
> index e783afbbb397..5e7cfa8e8ec9 100644
> --- a/drivers/gpu/drm/amd/display/dc/resource/dcn20/dcn20_resource.c
> +++ b/drivers/gpu/drm/amd/display/dc/resource/dcn20/dcn20_resource.c
> @@ -2200,10 +2200,11 @@ bool dcn20_get_dcc_compression_cap(const struct dc *dc,
>   		const struct dc_dcc_surface_param *input,
>   		struct dc_surface_dcc_cap *output)
>   {
> -	return dc->res_pool->hubbub->funcs->get_dcc_compression_cap(
> -			dc->res_pool->hubbub,
> -			input,
> -			output);
> +	if (dc->res_pool->hubbub->funcs->get_dcc_compression_cap)
> +		return dc->res_pool->hubbub->funcs->get_dcc_compression_cap(
> +			dc->res_pool->hubbub, input, output);
> +
> +	return false;
>   }
>   
>   static void dcn20_destroy_resource_pool(struct resource_pool **pool)


      reply	other threads:[~2024-06-27  0:30 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-26 22:28 [PATCH v2] drm/amd/display: Fix null pointer deref in dcn20_resource.c Aurabindo Pillai
2024-06-27  0:30 ` Rodrigo Siqueira Jordao [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3f71a531-e9a6-4e76-b268-cc9b5dd609ab@amd.com \
    --to=rodrigo.siqueira@amd.com \
    --cc=amd-gfx@lists.freedesktop.org \
    --cc=aurabindo.pillai@amd.com \
    --cc=harry.wentland@amd.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox