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());
}
}