On 8/30/25 3:32 PM, Danilo Krummrich wrote:
+    pub(crate) fn unbind(&self, pdev: &pci::Device<device::Bound>) {
+        // Unregister the sysmem flush page before we release it.
+        kernel::warn_on!(self.bar.access(pdev.as_ref()).map_or(true, |bar| {
+            self.sysmem_flush.unregister(bar);
+
+            false
+        }));
+    }
  }

Actually, inspect() + is_err() is much nicer:

diff --git a/drivers/gpu/nova-core/gpu.rs b/drivers/gpu/nova-core/gpu.rs
index 2db9afdc6087..ca4ea5749975 100644
--- a/drivers/gpu/nova-core/gpu.rs
+++ b/drivers/gpu/nova-core/gpu.rs
@@ -303,10 +303,10 @@ pub(crate) fn new(

     pub(crate) fn unbind(&self, pdev: &pci::Device<device::Bound>) {
         // Unregister the sysmem flush page before we release it.
-        kernel::warn_on!(self.bar.access(pdev.as_ref()).map_or(true, |bar| {
-            self.sysmem_flush.unregister(bar);
-
-            false
-        }));
+        kernel::warn_on!(self
+            .bar
+            .access(pdev.as_ref())
+            .inspect(|bar| self.sysmem_flush.unregister(bar))
+            .is_err());
     }
 }

Reply via email to