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