From: sashiko-bot@kernel.org
To: "Alexandre Courbot" <acourbot@nvidia.com>
Cc: ojeda@kernel.org, "Danilo Krummrich" <dakr@kernel.org>,
dri-devel@lists.freedesktop.org
Subject: Re: [PATCH v4 13/13] gpu: nova-core: store Fsp instance in Gpu
Date: Mon, 29 Jun 2026 14:27:37 +0000 [thread overview]
Message-ID: <20260629142737.ED6141F000E9@smtp.kernel.org> (raw)
In-Reply-To: <20260629-nova-bootcontext-v4-13-5539d8469590@nvidia.com>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
Pre-existing issues:
- [Critical] DMA Use-After-Free due to freeing buffers while GSP is still active on timeout
--
commit ad8609a0c320b89583cef07a17ca5ce5c85167ea
Author: Alexandre Courbot <acourbot@nvidia.com>
gpu: nova-core: store Fsp instance in Gpu
The Fsp instance was only used in the Hopper+ boot path, and
consequently built locally (and immediately dropped) in it.
This worked well as a temporary measure, but the FSP is a GPU
sub-device, so its lifetime should match the GPU rather than a single
boot invocation.
> diff --git a/drivers/gpu/nova-core/gsp/hal/gh100.rs b/drivers/gpu/nova-core/gsp/hal/gh100.rs
> index 2805a35abb798..de786871c8ec4 100644
> --- a/drivers/gpu/nova-core/gsp/hal/gh100.rs
> +++ b/drivers/gpu/nova-core/gsp/hal/gh100.rs
[ ... ]
> @@ -150,7 +146,7 @@ fn boot(
> KBox::new(FspUnloadBundle, GFP_KERNEL)? as KBox<dyn UnloadBundle>
> );
>
> - let mut fsp = Fsp::wait_secure_boot(dev, bar, chipset)?;
> + let fsp = ctx.fsp.as_mut().ok_or(ENODEV)?;
>
> let args = FmcBootArgs::new(
> dev,
[Severity: Critical]
This is a pre-existing issue, but I wanted to ask about the error handling
in this function and how it affects DMA buffers.
If wait_for_gsp_lockdown_release() times out later in Gh100::boot(), the ?
operator causes an early return:
let res = fsp.boot_fmc(dev, fb_layout, &args);
wait_for_gsp_lockdown_release(dev, gsp_falcon, args.boot_params_dma_handle())?;
When this happens, args is dropped, and the error propagates back to
Gsp::boot(), which bypasses the unload_guard creation and immediately
drops wpr_meta:
let unload_bundle = hal
.boot(&self, &mut ctx, &fb_layout, &wpr_meta)?
Dropping these structures frees their underlying DMA memory. However, since
the timeout occurred, the GSP hardware is not forcefully halted.
A similar issue appears during the unload path in FspUnloadBundle::run().
If a timeout occurs while waiting for RISC-V to halt, the code explicitly
detects that the engine is still active but returns an error without
forcefully halting it:
read_poll_timeout(
|| Ok(ctx.gsp_falcon.is_riscv_active()),
|&active| !active,
Delta::from_millis(10),
Delta::from_secs(5),
)
.map(|_| ())
.inspect_err(|_| dev_err!(ctx.dev(), "GSP falcon failed to halt\n"))
Since the error propagates and allows the DMA memory to be freed while the
engine continues executing, could the active GSP hardware write to the freed
host memory and cause memory corruption?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260629-nova-bootcontext-v4-0-5539d8469590@nvidia.com?part=13
next prev parent reply other threads:[~2026-06-29 14:27 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-29 14:09 [PATCH v4 00/13] gpu: nova-core: consolidate and streamline GSP boot process Alexandre Courbot
2026-06-29 14:09 ` [PATCH v4 01/13] gpu: nova-core: gsp: sequencer: use GspBootContext Alexandre Courbot
2026-06-29 14:22 ` sashiko-bot
2026-06-29 14:09 ` [PATCH v4 02/13] gpu: nova-core: gsp: sequencer: do not store sequence into GspSequencer Alexandre Courbot
2026-06-29 14:19 ` sashiko-bot
2026-06-29 14:09 ` [PATCH v4 03/13] gpu: nova-core: gsp: replace BootUnloadGuard with local handlers Alexandre Courbot
2026-06-29 14:21 ` sashiko-bot
2026-07-01 2:54 ` Eliot Courtney
2026-07-06 10:00 ` Alexandre Courbot
2026-06-29 14:09 ` [PATCH v4 04/13] gpu: nova-core: gsp: pass GspBootContext to unload methods Alexandre Courbot
2026-07-01 3:57 ` Eliot Courtney
2026-06-29 14:09 ` [PATCH v4 05/13] gpu: nova-core: gsp: centralize missing unload bundle warnings Alexandre Courbot
2026-06-29 14:20 ` sashiko-bot
2026-07-01 4:06 ` Eliot Courtney
2026-06-29 14:09 ` [PATCH v4 06/13] gpu: nova-core: gsp: fold TU102 unload bundle construction into HAL method Alexandre Courbot
2026-07-01 4:15 ` Eliot Courtney
2026-06-29 14:09 ` [PATCH v4 07/13] gpu: nova-core: gsp: turn FWSEC execution " Alexandre Courbot
2026-07-01 4:16 ` Eliot Courtney
2026-06-29 14:09 ` [PATCH v4 08/13] gpu: nova-core: gsp: make use of FWSEC bootloader a property of the TU102 HAL Alexandre Courbot
2026-06-29 14:09 ` [PATCH v4 09/13] gpu: nova-core: introduce GspBootMethod Alexandre Courbot
2026-07-02 2:28 ` Eliot Courtney
2026-06-29 14:09 ` [PATCH v4 10/13] gpu: nova-core: avoid repeated calls to pci::Device::as_ref Alexandre Courbot
2026-06-29 14:17 ` sashiko-bot
2026-07-01 6:38 ` Eliot Courtney
2026-06-29 14:09 ` [PATCH v4 11/13] gpu: nova-core: gsp: pass GspBootContext mutably Alexandre Courbot
2026-07-01 6:40 ` Eliot Courtney
2026-06-29 14:09 ` [PATCH v4 12/13] gpu: nova-core: gsp: separate context and GPU lifetimes in GspBootContext Alexandre Courbot
2026-06-29 14:22 ` sashiko-bot
2026-07-01 6:52 ` Eliot Courtney
2026-06-29 14:09 ` [PATCH v4 13/13] gpu: nova-core: store Fsp instance in Gpu Alexandre Courbot
2026-06-29 14:27 ` sashiko-bot [this message]
2026-07-01 6:46 ` Eliot Courtney
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=20260629142737.ED6141F000E9@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=acourbot@nvidia.com \
--cc=dakr@kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=ojeda@kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox