All of lore.kernel.org
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Dmitriy Chumachenko" <Dmitry.Chumachenko@cyberprotect.ru>
Cc: dri-devel@lists.freedesktop.org
Subject: Re: [PATCH] drm/amdgpu: check ras and obj before dereference
Date: Mon, 14 Sep 2026 14:56:36 +0000	[thread overview]
Message-ID: <20260914145636.A6EC61F000FF@smtp.kernel.org> (raw)
In-Reply-To: <20260914143303.90614-1-Dmitry.Chumachenko@cyberprotect.ru>

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:

Pre-existing issues:
- [High] amdgpu_ras_global_ras_isr and amdgpu_ras_reset_gpu dereference ras without checking if it is NULL.
--

commit 968ac5f5bc519258a8c9858799f60257d1c4fa96
Author: Dmitriy Chumachenko <Dmitry.Chumachenko@cyberprotect.ru>

drm/amdgpu: check ras and obj before dereference

This patch adds NULL checks for the ras and obj pointers in
nbio_v7_9_handle_ras_controller_intr_no_bifring() before dereferencing them.
This prevents a hard-IRQ context crash during the initialization window where
the fatal-error interrupt is enabled but the RAS context is not fully created.

> diff --git a/drivers/gpu/drm/amd/amdgpu/nbio_v7_9.c b/drivers/gpu/drm/amd/amdgpu/nbio_v7_9.c
> index bdfd2917e3cab..def02993b7cfd 100644
> --- a/drivers/gpu/drm/amd/amdgpu/nbio_v7_9.c
> +++ b/drivers/gpu/drm/amd/amdgpu/nbio_v7_9.c
> @@ -535,7 +535,7 @@ static void nbio_v7_9_handle_ras_controller_intr_no_bifring(struct amdgpu_device
>  						RAS_CNTLR_INTERRUPT_CLEAR, 1);
>  		WREG32_SOC15(NBIO, 0, regBIF_BX0_BIF_DOORBELL_INT_CNTL, bif_doorbell_intr_cntl);
>  
> -		if (!ras->disable_ras_err_cnt_harvest) {
> +		if (ras && !ras->disable_ras_err_cnt_harvest && obj) {

[Severity: High]
This isn't a bug introduced by this patch, but while this change fixes the NULL
pointer dereference here, it looks like there are similar vulnerabilities in
other interrupt handlers during this same initialization window.

If the ATHUB interrupt fires when the RAS context is unavailable, its handler
delegates to amdgpu_ras_global_ras_isr(), which fetches the RAS context via
amdgpu_ras_get_context() but unconditionally dereferences it:

drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c:amdgpu_ras_global_ras_isr() {
    ...
    ras->gpu_reset_flags |= AMDGPU_RAS_GPU_RESET_MODE1_RESET;
    ...
}

It then calls amdgpu_ras_reset_gpu(), which also uses the ras pointer without
a NULL check:

drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c:amdgpu_ras_reset_gpu() {
    ...
    if (atomic_cmpxchg(&ras->in_recovery, 0, 1) == 0) {
    ...
}

Both direct dereferences will cause a hard-IRQ context kernel panic if ras is
NULL. Should these paths also include a check for the RAS context?

>  			/*
>  			 * clear error status after ras_controller_intr
>  			 * according to hw team and count ue number

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260914143303.90614-1-Dmitry.Chumachenko@cyberprotect.ru?part=1

  reply	other threads:[~2026-09-14 14:56 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-14 14:33 [PATCH] drm/amdgpu: check ras and obj before dereference Dmitriy Chumachenko
2026-09-14 14:56 ` sashiko-bot [this message]
2026-09-15  3:14 ` Zhou1, Tao
2026-09-15 14:12   ` Alex Deucher

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=20260914145636.A6EC61F000FF@smtp.kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=Dmitry.Chumachenko@cyberprotect.ru \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=sashiko-reviews@lists.linux.dev \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.