NVIDIA GPU driver infrastructure
 help / color / mirror / Atom feed
* [PATCH 0/4] nova-core: align Bar0/Bar1 and remvove unnecessary Arc
@ 2026-09-26 12:43 Danilo Krummrich
  2026-09-26 12:43 ` [PATCH 1/4] gpu: nova-core: align Bar1 alias with Bar0 Danilo Krummrich
                   ` (5 more replies)
  0 siblings, 6 replies; 11+ messages in thread
From: Danilo Krummrich @ 2026-09-26 12:43 UTC (permalink / raw)
  To: dakr, acourbot; +Cc: nova-gpu, dri-devel

Get rid of the Bar0/Bar1 type alias inconsistency and the unnecessary reference
count of BarUser.

There's much more to improve, but this just crossed my way.

Danilo Krummrich (4):
  gpu: nova-core: align Bar1 alias with Bar0
  gpu: nova-core: remove unnecessary Arc around BarUser
  gpu: nova-core: mm: get rid of Arc<BarUser> in BarUserAccess
  gpu: nova-core: mm: fix lifetime name in BarUser

 drivers/gpu/nova-core/driver.rs      |  4 +--
 drivers/gpu/nova-core/gpu.rs         | 26 ++++++++---------
 drivers/gpu/nova-core/mm.rs          |  5 ++--
 drivers/gpu/nova-core/mm/bar_user.rs | 43 +++++++++++++---------------
 4 files changed, 36 insertions(+), 42 deletions(-)


base-commit: 896ed083362758b33c49a1b5e5a3423c5814d87e
-- 
2.55.0


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH 1/4] gpu: nova-core: align Bar1 alias with Bar0
  2026-09-26 12:43 [PATCH 0/4] nova-core: align Bar0/Bar1 and remvove unnecessary Arc Danilo Krummrich
@ 2026-09-26 12:43 ` Danilo Krummrich
  2026-09-28  5:39   ` Eliot Courtney
  2026-09-26 12:43 ` [PATCH 2/4] gpu: nova-core: remove unnecessary Arc around BarUser Danilo Krummrich
                   ` (4 subsequent siblings)
  5 siblings, 1 reply; 11+ messages in thread
From: Danilo Krummrich @ 2026-09-26 12:43 UTC (permalink / raw)
  To: dakr, acourbot; +Cc: nova-gpu, dri-devel

Make Bar1 an alias for a borrowed pci::Bar in order to match the Bar0
type alias.

Signed-off-by: Danilo Krummrich <dakr@kernel.org>
---
 drivers/gpu/nova-core/driver.rs      | 4 ++--
 drivers/gpu/nova-core/gpu.rs         | 2 +-
 drivers/gpu/nova-core/mm/bar_user.rs | 4 ++--
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/nova-core/driver.rs b/drivers/gpu/nova-core/driver.rs
index 0672a0707a71..9ce70703b2ce 100644
--- a/drivers/gpu/nova-core/driver.rs
+++ b/drivers/gpu/nova-core/driver.rs
@@ -32,7 +32,7 @@ pub(crate) struct NovaCore<'bound> {
     #[pin]
     pub(crate) gpu: Gpu<'bound>,
     bar: pci::Bar<'bound, BAR0_SIZE>,
-    bar1: Bar1<'bound>,
+    bar1: pci::Bar<'bound>,
     #[allow(clippy::type_complexity)]
     _reg: auxiliary::Registration<'bound, CovariantForLt!(())>,
 }
@@ -43,7 +43,7 @@ pub(crate) struct NovaCore<'bound> {
 
 pub(crate) type Bar0<'a> = &'a pci::Bar<'a, BAR0_SIZE>;
 pub(crate) type NovaRegisters = kernel::io::Region<BAR0_SIZE>;
-pub(crate) type Bar1<'a> = pci::Bar<'a>;
+pub(crate) type Bar1<'a> = &'a pci::Bar<'a>;
 
 /// Returns the Linux PCI resource index that holds BAR1 for an NVIDIA GPU.
 ///
diff --git a/drivers/gpu/nova-core/gpu.rs b/drivers/gpu/nova-core/gpu.rs
index 8f30186f10ba..1ae287c9e776 100644
--- a/drivers/gpu/nova-core/gpu.rs
+++ b/drivers/gpu/nova-core/gpu.rs
@@ -353,7 +353,7 @@ impl<'gpu> Gpu<'gpu> {
     pub(crate) fn new<'a>(
         pdev: &'gpu pci::Device<device::Core<'a>>,
         bar: Bar0<'gpu>,
-        bar1: &'gpu Bar1<'gpu>,
+        bar1: Bar1<'gpu>,
     ) -> impl PinInit<Self, Error> + use<'gpu, 'a> {
         let dev = pdev.as_ref();
 
diff --git a/drivers/gpu/nova-core/mm/bar_user.rs b/drivers/gpu/nova-core/mm/bar_user.rs
index 8f4a27c1fd14..86b5d302188e 100644
--- a/drivers/gpu/nova-core/mm/bar_user.rs
+++ b/drivers/gpu/nova-core/mm/bar_user.rs
@@ -41,7 +41,7 @@
 pub(crate) struct BarUser<'gpu> {
     #[pin]
     vmm: Mutex<Vmm>,
-    bar1: &'gpu Bar1<'gpu>,
+    bar1: Bar1<'gpu>,
 }
 
 impl<'gpu> BarUser<'gpu> {
@@ -50,7 +50,7 @@ pub(crate) fn new(
         pdb_addr: VramAddress,
         chipset: Chipset,
         va_size: u64,
-        bar1: &'gpu Bar1<'gpu>,
+        bar1: Bar1<'gpu>,
     ) -> Result<impl PinInit<Self> + 'gpu> {
         let vmm = Vmm::new(pdb_addr, chipset.mmu_version(), va_size)?;
         Ok(pin_init!(Self {
-- 
2.55.0


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH 2/4] gpu: nova-core: remove unnecessary Arc around BarUser
  2026-09-26 12:43 [PATCH 0/4] nova-core: align Bar0/Bar1 and remvove unnecessary Arc Danilo Krummrich
  2026-09-26 12:43 ` [PATCH 1/4] gpu: nova-core: align Bar1 alias with Bar0 Danilo Krummrich
@ 2026-09-26 12:43 ` Danilo Krummrich
  2026-09-28  5:39   ` Eliot Courtney
  2026-09-26 12:43 ` [PATCH 3/4] gpu: nova-core: mm: get rid of Arc<BarUser> in BarUserAccess Danilo Krummrich
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 11+ messages in thread
From: Danilo Krummrich @ 2026-09-26 12:43 UTC (permalink / raw)
  To: dakr, acourbot; +Cc: nova-gpu, dri-devel

Remove the unnecessary Arc around BarUser and get rid of
Result<impl PinInit<T>> in favor of impl PinInit<T, Error>.

Signed-off-by: Danilo Krummrich <dakr@kernel.org>
---
 drivers/gpu/nova-core/gpu.rs         | 24 +++++++++++-------------
 drivers/gpu/nova-core/mm.rs          |  5 ++---
 drivers/gpu/nova-core/mm/bar_user.rs | 16 +++++++++-------
 3 files changed, 22 insertions(+), 23 deletions(-)

diff --git a/drivers/gpu/nova-core/gpu.rs b/drivers/gpu/nova-core/gpu.rs
index 1ae287c9e776..123e605fa2c2 100644
--- a/drivers/gpu/nova-core/gpu.rs
+++ b/drivers/gpu/nova-core/gpu.rs
@@ -16,7 +16,6 @@
         SizeConstants,
         SZ_4K, //
     },
-    sync::Arc,
 };
 
 use crate::{
@@ -309,7 +308,8 @@ pub(crate) struct Gpu<'gpu> {
     /// the GSP is still operational.
     mm: GpuMm<'gpu>,
     /// BAR1 user interface for CPU access to GPU virtual memory.
-    bar_user: Arc<BarUser<'gpu>>,
+    #[pin]
+    bar_user: BarUser<'gpu>,
     /// GSP and its resources.
     #[pin]
     gsp_resources: GspResources<'gpu>,
@@ -465,19 +465,17 @@ pub(crate) fn new<'a>(
             },
 
             // Create BAR1 user interface for CPU access to GPU virtual memory.
-            bar_user: {
+            bar_user <- {
                 let pdb_addr = VramAddress::from_raw(gsp_static_info.bar1_pde_base);
                 let bar1_idx = crate::driver::bar1_resource_index(pdev)?;
                 let bar1_size = pdev.resource_len(bar1_idx)?;
-                Arc::pin_init(
-                    BarUser::new(
-                        pdb_addr,
-                        gsp_resources.spec.chipset,
-                        bar1_size,
-                        bar1,
-                    )?,
-                    GFP_KERNEL,
-                )?
+
+                BarUser::new(
+                    pdb_addr,
+                    gsp_resources.spec.chipset,
+                    bar1_size,
+                    bar1,
+                )
             },
         })
     }
@@ -493,7 +491,7 @@ pub(crate) fn run_selftests(self: Pin<&mut Self>, pdev: &pci::Device<device::Bou
             dev,
             this.mm,
             regions,
-            this.bar_user,
+            &this.bar_user,
             this.gsp_static_info.bar1_pde_base,
             this.spec.chipset,
         ) {
diff --git a/drivers/gpu/nova-core/mm.rs b/drivers/gpu/nova-core/mm.rs
index a5bc4042577b..8a934c55169f 100644
--- a/drivers/gpu/nova-core/mm.rs
+++ b/drivers/gpu/nova-core/mm.rs
@@ -298,8 +298,7 @@ pub(crate) mod selftest {
 
     use kernel::{
         device,
-        sizes::SizeConstants,
-        sync::Arc, //
+        sizes::SizeConstants, //
     };
 
     use super::*;
@@ -309,7 +308,7 @@ pub(crate) fn run(
         dev: &device::Device<device::Bound>,
         mm: &mut GpuMm<'_>,
         usable_fb_regions: &[Range<u64>],
-        bar_user: &Arc<bar_user::BarUser<'_>>,
+        bar_user: &bar_user::BarUser<'_>,
         bar1_pdb: u64,
         chipset: Chipset,
     ) -> Result {
diff --git a/drivers/gpu/nova-core/mm/bar_user.rs b/drivers/gpu/nova-core/mm/bar_user.rs
index 86b5d302188e..6c8fa06d9f4b 100644
--- a/drivers/gpu/nova-core/mm/bar_user.rs
+++ b/drivers/gpu/nova-core/mm/bar_user.rs
@@ -51,12 +51,14 @@ pub(crate) fn new(
         chipset: Chipset,
         va_size: u64,
         bar1: Bar1<'gpu>,
-    ) -> Result<impl PinInit<Self> + 'gpu> {
-        let vmm = Vmm::new(pdb_addr, chipset.mmu_version(), va_size)?;
-        Ok(pin_init!(Self {
-            vmm <- new_mutex!(vmm, "bar_user_vmm"),
+    ) -> impl PinInit<Self, Error> + 'gpu {
+        try_pin_init!(Self {
+            vmm <- new_mutex!(
+                Vmm::new(pdb_addr, chipset.mmu_version(), va_size)?,
+                "bar_user_vmm",
+            ),
             bar1,
-        }))
+        })
     }
 
     /// Map physical pages to a contiguous BAR1 virtual range.
@@ -183,7 +185,7 @@ fn drop(&mut self) {
 pub(crate) fn run_self_test(
     dev: &device::Device<device::Bound>,
     mm: &mut GpuMm<'_>,
-    bar_user: &Arc<BarUser<'_>>,
+    bar_user: &BarUser<'_>,
     bar1_pdb: u64,
     chipset: Chipset,
 ) -> Result {
@@ -389,7 +391,7 @@ pub(crate) fn run_self_test(
 
     // Test 4: Exercise `BarUser::map()` end-to-end.
     let bar_user = Arc::pin_init(
-        BarUser::new(pdb_addr, chipset, SZ_64K.into_safe_cast(), bar1)?,
+        BarUser::new(pdb_addr, chipset, SZ_64K.into_safe_cast(), bar1),
         GFP_KERNEL,
     )?;
     let access = bar_user.map(mm, &[test_pfn], true)?;
-- 
2.55.0


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH 3/4] gpu: nova-core: mm: get rid of Arc<BarUser> in BarUserAccess
  2026-09-26 12:43 [PATCH 0/4] nova-core: align Bar0/Bar1 and remvove unnecessary Arc Danilo Krummrich
  2026-09-26 12:43 ` [PATCH 1/4] gpu: nova-core: align Bar1 alias with Bar0 Danilo Krummrich
  2026-09-26 12:43 ` [PATCH 2/4] gpu: nova-core: remove unnecessary Arc around BarUser Danilo Krummrich
@ 2026-09-26 12:43 ` Danilo Krummrich
  2026-09-28  5:40   ` Eliot Courtney
  2026-09-26 12:43 ` [PATCH 4/4] gpu: nova-core: mm: fix lifetime name in BarUser Danilo Krummrich
                   ` (2 subsequent siblings)
  5 siblings, 1 reply; 11+ messages in thread
From: Danilo Krummrich @ 2026-09-26 12:43 UTC (permalink / raw)
  To: dakr, acourbot; +Cc: nova-gpu, dri-devel

There is no need for a reference count here. BarUserAccess can just
borrow from BarUser.

Signed-off-by: Danilo Krummrich <dakr@kernel.org>
---
 drivers/gpu/nova-core/mm/bar_user.rs | 21 ++++++++-------------
 1 file changed, 8 insertions(+), 13 deletions(-)

diff --git a/drivers/gpu/nova-core/mm/bar_user.rs b/drivers/gpu/nova-core/mm/bar_user.rs
index 6c8fa06d9f4b..855244f06983 100644
--- a/drivers/gpu/nova-core/mm/bar_user.rs
+++ b/drivers/gpu/nova-core/mm/bar_user.rs
@@ -7,10 +7,7 @@
     io::Io,
     new_mutex,
     prelude::*,
-    sync::{
-        Arc,
-        Mutex, //
-    },
+    sync::Mutex, //
 };
 
 use crate::{
@@ -63,11 +60,11 @@ pub(crate) fn new(
 
     /// Map physical pages to a contiguous BAR1 virtual range.
     pub(crate) fn map(
-        self: &Arc<Self>,
+        &self,
         mm: &mut GpuMm<'_>,
         pfns: &[Pfn],
         writable: bool,
-    ) -> Result<BarUserAccess<'gpu>> {
+    ) -> Result<BarUserAccess<'_>> {
         if pfns.is_empty() {
             return Err(EINVAL);
         }
@@ -75,15 +72,17 @@ pub(crate) fn map(
         let mapped = vmm.map_pages(mm, pfns, None, writable)?;
 
         Ok(BarUserAccess {
-            bar_user: self.clone(),
+            bar_user: self,
             mapped: Some(mapped),
         })
     }
 }
 
 /// Access object for a mapped BAR1 region.
-pub(crate) struct BarUserAccess<'gpu> {
-    bar_user: Arc<BarUser<'gpu>>,
+///
+/// Borrows the [`BarUser`] managing the mapping for the lifetime of the access object.
+pub(crate) struct BarUserAccess<'a> {
+    bar_user: &'a BarUser<'a>,
     /// [`BarUserAccess::release`] [`Option::take`]s this; `Some` at
     /// drop time means `release()` was never called.
     mapped: Option<MappedRange>,
@@ -390,10 +389,6 @@ pub(crate) fn run_self_test(
     drop(vmm);
 
     // Test 4: Exercise `BarUser::map()` end-to-end.
-    let bar_user = Arc::pin_init(
-        BarUser::new(pdb_addr, chipset, SZ_64K.into_safe_cast(), bar1),
-        GFP_KERNEL,
-    )?;
     let access = bar_user.map(mm, &[test_pfn], true)?;
 
     // Write pattern via PRAMIN, read via BarUserAccess.
-- 
2.55.0


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH 4/4] gpu: nova-core: mm: fix lifetime name in BarUser
  2026-09-26 12:43 [PATCH 0/4] nova-core: align Bar0/Bar1 and remvove unnecessary Arc Danilo Krummrich
                   ` (2 preceding siblings ...)
  2026-09-26 12:43 ` [PATCH 3/4] gpu: nova-core: mm: get rid of Arc<BarUser> in BarUserAccess Danilo Krummrich
@ 2026-09-26 12:43 ` Danilo Krummrich
  2026-09-28  5:40   ` Eliot Courtney
  2026-09-26 15:34 ` [PATCH 0/4] nova-core: align Bar0/Bar1 and remvove unnecessary Arc Alexandre Courbot
  2026-09-27 12:15 ` Danilo Krummrich
  5 siblings, 1 reply; 11+ messages in thread
From: Danilo Krummrich @ 2026-09-26 12:43 UTC (permalink / raw)
  To: dakr, acourbot; +Cc: nova-gpu, dri-devel

BarUser should not use 'gpu as a name for its lifetime; stick to a
generic 'a until we need pin-init selfref for this struct.

Signed-off-by: Danilo Krummrich <dakr@kernel.org>
---
 drivers/gpu/nova-core/mm/bar_user.rs | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/nova-core/mm/bar_user.rs b/drivers/gpu/nova-core/mm/bar_user.rs
index 855244f06983..dbf6445fa9ce 100644
--- a/drivers/gpu/nova-core/mm/bar_user.rs
+++ b/drivers/gpu/nova-core/mm/bar_user.rs
@@ -35,20 +35,20 @@
 ///
 /// Owns the [`Vmm`] for the BAR1 address space.
 #[pin_data]
-pub(crate) struct BarUser<'gpu> {
+pub(crate) struct BarUser<'a> {
     #[pin]
     vmm: Mutex<Vmm>,
-    bar1: Bar1<'gpu>,
+    bar1: Bar1<'a>,
 }
 
-impl<'gpu> BarUser<'gpu> {
+impl<'a> BarUser<'a> {
     /// Create a pin-initializer for [`BarUser`].
     pub(crate) fn new(
         pdb_addr: VramAddress,
         chipset: Chipset,
         va_size: u64,
-        bar1: Bar1<'gpu>,
-    ) -> impl PinInit<Self, Error> + 'gpu {
+        bar1: Bar1<'a>,
+    ) -> impl PinInit<Self, Error> + 'a {
         try_pin_init!(Self {
             vmm <- new_mutex!(
                 Vmm::new(pdb_addr, chipset.mmu_version(), va_size)?,
-- 
2.55.0


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH 0/4] nova-core: align Bar0/Bar1 and remvove unnecessary Arc
  2026-09-26 12:43 [PATCH 0/4] nova-core: align Bar0/Bar1 and remvove unnecessary Arc Danilo Krummrich
                   ` (3 preceding siblings ...)
  2026-09-26 12:43 ` [PATCH 4/4] gpu: nova-core: mm: fix lifetime name in BarUser Danilo Krummrich
@ 2026-09-26 15:34 ` Alexandre Courbot
  2026-09-27 12:15 ` Danilo Krummrich
  5 siblings, 0 replies; 11+ messages in thread
From: Alexandre Courbot @ 2026-09-26 15:34 UTC (permalink / raw)
  To: Danilo Krummrich; +Cc: nova-gpu, dri-devel

On Sat Sep 26, 2026 at 9:43 PM JST, Danilo Krummrich wrote:
> Get rid of the Bar0/Bar1 type alias inconsistency and the unnecessary reference
> count of BarUser.
>
> There's much more to improve, but this just crossed my way.
>
> Danilo Krummrich (4):
>   gpu: nova-core: align Bar1 alias with Bar0
>   gpu: nova-core: remove unnecessary Arc around BarUser
>   gpu: nova-core: mm: get rid of Arc<BarUser> in BarUserAccess
>   gpu: nova-core: mm: fix lifetime name in BarUser

The series,

Reviewed-by: Alexandre Courbot <acourbot@nvidia.com>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 0/4] nova-core: align Bar0/Bar1 and remvove unnecessary Arc
  2026-09-26 12:43 [PATCH 0/4] nova-core: align Bar0/Bar1 and remvove unnecessary Arc Danilo Krummrich
                   ` (4 preceding siblings ...)
  2026-09-26 15:34 ` [PATCH 0/4] nova-core: align Bar0/Bar1 and remvove unnecessary Arc Alexandre Courbot
@ 2026-09-27 12:15 ` Danilo Krummrich
  5 siblings, 0 replies; 11+ messages in thread
From: Danilo Krummrich @ 2026-09-27 12:15 UTC (permalink / raw)
  To: Danilo Krummrich; +Cc: acourbot, nova-gpu, dri-devel

On Sat, 26 Sep 2026 14:43:23 +0200, Danilo Krummrich wrote:
> [PATCH 0/4] nova-core: align Bar0/Bar1 and remvove unnecessary Arc

Applied, thanks!

  Branch: drm-rust-next
  Tree:   https://gitlab.freedesktop.org/drm/rust/kernel.git

[1/4] gpu: nova-core: align Bar1 alias with Bar0
      commit: c0c5d21b466c
[2/4] gpu: nova-core: remove unnecessary Arc around BarUser
      commit: 224618807575
[3/4] gpu: nova-core: mm: get rid of Arc<BarUser> in BarUserAccess
      commit: 05e647ea4069

      [ Update stale comment in run_self_test(). - Danilo ]

[4/4] gpu: nova-core: mm: fix lifetime name in BarUser
      commit: bf91bd56fc46

The patches will appear in the next linux-next integration (typically within 24
hours on weekdays).

The patches are queued up for the upcoming merge window for the next major
kernel release.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 1/4] gpu: nova-core: align Bar1 alias with Bar0
  2026-09-26 12:43 ` [PATCH 1/4] gpu: nova-core: align Bar1 alias with Bar0 Danilo Krummrich
@ 2026-09-28  5:39   ` Eliot Courtney
  0 siblings, 0 replies; 11+ messages in thread
From: Eliot Courtney @ 2026-09-28  5:39 UTC (permalink / raw)
  To: Danilo Krummrich, acourbot; +Cc: nova-gpu, dri-devel, dri-devel

On Sat Sep 26, 2026 at 9:43 PM JST, Danilo Krummrich wrote:
> Make Bar1 an alias for a borrowed pci::Bar in order to match the Bar0
> type alias.
>
> Signed-off-by: Danilo Krummrich <dakr@kernel.org>
> ---

Reviewed-by: Eliot Courtney <ecourtney@nvidia.com>


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 2/4] gpu: nova-core: remove unnecessary Arc around BarUser
  2026-09-26 12:43 ` [PATCH 2/4] gpu: nova-core: remove unnecessary Arc around BarUser Danilo Krummrich
@ 2026-09-28  5:39   ` Eliot Courtney
  0 siblings, 0 replies; 11+ messages in thread
From: Eliot Courtney @ 2026-09-28  5:39 UTC (permalink / raw)
  To: Danilo Krummrich, acourbot; +Cc: nova-gpu, dri-devel, dri-devel

On Sat Sep 26, 2026 at 9:43 PM JST, Danilo Krummrich wrote:
> Remove the unnecessary Arc around BarUser and get rid of
> Result<impl PinInit<T>> in favor of impl PinInit<T, Error>.
>
> Signed-off-by: Danilo Krummrich <dakr@kernel.org>
> ---

Reviewed-by: Eliot Courtney <ecourtney@nvidia.com>


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 3/4] gpu: nova-core: mm: get rid of Arc<BarUser> in BarUserAccess
  2026-09-26 12:43 ` [PATCH 3/4] gpu: nova-core: mm: get rid of Arc<BarUser> in BarUserAccess Danilo Krummrich
@ 2026-09-28  5:40   ` Eliot Courtney
  0 siblings, 0 replies; 11+ messages in thread
From: Eliot Courtney @ 2026-09-28  5:40 UTC (permalink / raw)
  To: Danilo Krummrich, acourbot; +Cc: nova-gpu, dri-devel, dri-devel

On Sat Sep 26, 2026 at 9:43 PM JST, Danilo Krummrich wrote:
> There is no need for a reference count here. BarUserAccess can just
> borrow from BarUser.
>
> Signed-off-by: Danilo Krummrich <dakr@kernel.org>
> ---

Reviewed-by: Eliot Courtney <ecourtney@nvidia.com>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 4/4] gpu: nova-core: mm: fix lifetime name in BarUser
  2026-09-26 12:43 ` [PATCH 4/4] gpu: nova-core: mm: fix lifetime name in BarUser Danilo Krummrich
@ 2026-09-28  5:40   ` Eliot Courtney
  0 siblings, 0 replies; 11+ messages in thread
From: Eliot Courtney @ 2026-09-28  5:40 UTC (permalink / raw)
  To: Danilo Krummrich, acourbot; +Cc: nova-gpu, dri-devel, dri-devel

On Sat Sep 26, 2026 at 9:43 PM JST, Danilo Krummrich wrote:
> BarUser should not use 'gpu as a name for its lifetime; stick to a
> generic 'a until we need pin-init selfref for this struct.
>
> Signed-off-by: Danilo Krummrich <dakr@kernel.org>
> ---

Reviewed-by: Eliot Courtney <ecourtney@nvidia.com>

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2026-09-28  5:40 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-26 12:43 [PATCH 0/4] nova-core: align Bar0/Bar1 and remvove unnecessary Arc Danilo Krummrich
2026-09-26 12:43 ` [PATCH 1/4] gpu: nova-core: align Bar1 alias with Bar0 Danilo Krummrich
2026-09-28  5:39   ` Eliot Courtney
2026-09-26 12:43 ` [PATCH 2/4] gpu: nova-core: remove unnecessary Arc around BarUser Danilo Krummrich
2026-09-28  5:39   ` Eliot Courtney
2026-09-26 12:43 ` [PATCH 3/4] gpu: nova-core: mm: get rid of Arc<BarUser> in BarUserAccess Danilo Krummrich
2026-09-28  5:40   ` Eliot Courtney
2026-09-26 12:43 ` [PATCH 4/4] gpu: nova-core: mm: fix lifetime name in BarUser Danilo Krummrich
2026-09-28  5:40   ` Eliot Courtney
2026-09-26 15:34 ` [PATCH 0/4] nova-core: align Bar0/Bar1 and remvove unnecessary Arc Alexandre Courbot
2026-09-27 12:15 ` Danilo Krummrich

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox