From: "Eliot Courtney" <ecourtney@nvidia.com>
To: "Gary Guo" <gary@garyguo.net>,
"Alexandre Courbot" <acourbot@nvidia.com>,
"Eliot Courtney" <ecourtney@nvidia.com>
Cc: "Danilo Krummrich" <dakr@kernel.org>,
"Alice Ryhl" <aliceryhl@google.com>,
"David Airlie" <airlied@gmail.com>,
"Simona Vetter" <simona@ffwll.ch>,
"Joel Fernandes" <joelagnelf@nvidia.com>,
"John Hubbard" <jhubbard@nvidia.com>,
"Alistair Popple" <apopple@nvidia.com>,
"Timur Tabi" <ttabi@nvidia.com>, <rust-for-linux@vger.kernel.org>,
<dri-devel@lists.freedesktop.org>, <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v3 11/11] gpu: nova-core: vbios: use the first PCI-AT and FWSEC images
Date: Fri, 01 May 2026 19:55:59 +0900 [thread overview]
Message-ID: <DI7AAJUDH42D.3J4XSUH2UZJN3@nvidia.com> (raw)
In-Reply-To: <DI5TTYAABYBC.2BCOWJTEJP79H@garyguo.net>
On Thu Apr 30, 2026 at 2:49 AM JST, Gary Guo wrote:
> On Wed Apr 29, 2026 at 3:32 PM BST, Alexandre Courbot wrote:
>> On Tue Apr 21, 2026 at 5:20 PM JST, Eliot Courtney wrote:
>>> Currently, PCI-AT takes the final image if multiple exist. For FWSEC, it
>>> takes the first one and the last one. Align both of these to nouveau
>>> behavior by taking the first ones.
>>>
>>> Signed-off-by: Eliot Courtney <ecourtney@nvidia.com>
>>> ---
>>> drivers/gpu/nova-core/vbios.rs | 8 ++++++--
>>> 1 file changed, 6 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/drivers/gpu/nova-core/vbios.rs b/drivers/gpu/nova-core/vbios.rs
>>> index 5cc251c73800..8cfc75b1184f 100644
>>> --- a/drivers/gpu/nova-core/vbios.rs
>>> +++ b/drivers/gpu/nova-core/vbios.rs
>>> @@ -251,12 +251,16 @@ pub(crate) fn new(dev: &device::Device, bar0: &Bar0) -> Result<Vbios> {
>>> // Convert to a specific image type
>>> match BiosImageType::try_from(image.pcir.code_type) {
>>> Ok(BiosImageType::PciAt) => {
>>> - pci_at_image = Some(PciAtBiosImage::try_from(image)?);
>>> + // Silently ignore any extra PCI-AT images.
>>> + if pci_at_image.is_none() {
>>> + pci_at_image = Some(PciAtBiosImage::try_from(image)?);
>>> + }
>>> }
>>
>> I am getting a Clippy here:
>>
>> warning: this `if` can be collapsed into the outer `match`
>> --> ../drivers/gpu/nova-core/vbios.rs:338:21
>> |
>> 338 | / if pci_at_image.is_none() {
>> 339 | | pci_at_image = Some(PciAtBiosImage::try_from(image)?);
>> 340 | | }
>> | |_____________________^
>> |
>> = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.95.0/index.html#collapsible_match
>> = note: `-W clippy::collapsible-match` implied by `-W clippy::all`
>> = help: to override `-W clippy::all` add `#[allow(clippy::collapsible_match)]`
>> help: collapse nested if block
>> |
>> 336 ~ Ok(BiosImageType::PciAt)
>> 337 | // Silently ignore any extra PCI-AT images.
>> 338 ~ if pci_at_image.is_none() => {
>> 339 | pci_at_image = Some(PciAtBiosImage::try_from(image)?);
>> 340 ~ }
>>
>> I have tested this series on Turing and probe completed successfully.
Thank you for testing (and reviewing) this!
>
> Be aware of false positives and the suggested code changes the behaviour. See
> https://lore.kernel.org/rust-for-linux/20260426144201.227108-1-ojeda@kernel.org/.
>
> Best,
> Gary
I have to say I am not a fan of this lint in this particular case, since
it moves the "ignore this" semantics to be match level rather than match
branch level. In this particular case it's fine since the _ branch also
silently ignores, but I have been bitten by this kind of match case
lifting making it easy for semantics to be accidentally changed before
IIRC.
prev parent reply other threads:[~2026-05-01 10:56 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-21 8:20 [PATCH v3 00/11] gpu: nova-core: vbios: harden various array accesses and refactor Eliot Courtney
2026-04-21 8:20 ` [PATCH v3 01/11] gpu: nova-core: vbios: fix various cases of reading past `BIOS_MAX_SCAN_LEN` Eliot Courtney
2026-04-29 13:24 ` Alexandre Courbot
2026-04-29 14:32 ` Joel Fernandes
2026-05-01 5:15 ` Eliot Courtney
2026-04-21 8:20 ` [PATCH v3 02/11] gpu: nova-core: vbios: limit `BitToken` entry reads Eliot Courtney
2026-04-29 13:35 ` Alexandre Courbot
2026-05-01 5:38 ` Eliot Courtney
2026-04-21 8:20 ` [PATCH v3 03/11] gpu: nova-core: vbios: use checked ops and accesses in `FwSecBiosImage::ucode` Eliot Courtney
2026-04-29 13:50 ` Alexandre Courbot
2026-04-21 8:20 ` [PATCH v3 04/11] gpu: nova-core: vbios: use checked access in `FwSecBiosImage::header` Eliot Courtney
2026-04-29 13:56 ` Alexandre Courbot
2026-05-01 6:07 ` Eliot Courtney
2026-04-21 8:20 ` [PATCH v3 05/11] gpu: nova-core: vbios: use checked accesses in `setup_falcon_data` Eliot Courtney
2026-04-21 8:20 ` [PATCH v3 06/11] gpu: nova-core: vbios: drop unused falcon_data_offset from FwSecBiosBuilder Eliot Courtney
2026-04-21 8:20 ` [PATCH v3 07/11] gpu: nova-core: vbios: keep PmuLookupTable local in setup_falcon_data Eliot Courtney
2026-04-21 8:20 ` [PATCH v3 08/11] gpu: nova-core: vbios: compute FWSEC-relative Falcon data offset Eliot Courtney
2026-04-21 8:20 ` [PATCH v3 09/11] gpu: nova-core: vbios: simplify setup_falcon_data Eliot Courtney
2026-04-29 14:28 ` Alexandre Courbot
2026-04-21 8:20 ` [PATCH v3 10/11] gpu: nova-core: vbios: construct `FwSecBiosImage` directly from BIOS images Eliot Courtney
2026-04-21 8:20 ` [PATCH v3 11/11] gpu: nova-core: vbios: use the first PCI-AT and FWSEC images Eliot Courtney
2026-04-29 14:32 ` Alexandre Courbot
2026-04-29 17:49 ` Gary Guo
2026-05-01 10:55 ` Eliot Courtney [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=DI7AAJUDH42D.3J4XSUH2UZJN3@nvidia.com \
--to=ecourtney@nvidia.com \
--cc=acourbot@nvidia.com \
--cc=airlied@gmail.com \
--cc=aliceryhl@google.com \
--cc=apopple@nvidia.com \
--cc=dakr@kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=gary@garyguo.net \
--cc=jhubbard@nvidia.com \
--cc=joelagnelf@nvidia.com \
--cc=linux-kernel@vger.kernel.org \
--cc=rust-for-linux@vger.kernel.org \
--cc=simona@ffwll.ch \
--cc=ttabi@nvidia.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