Re: [PATCH] gpu: nova-core: fb: make sure to unregister SysmemFlush on boot failure
From: John Hubbard
Date: Thu Apr 09 2026 - 18:57:15 EST
On 4/9/26 5:15 AM, Eliot Courtney wrote:
> Current `Gpu::new` will not unregister SysmemFlush if something fails
> after it is created, since it needs manual unregistering. Add a `Drop`
> implementation which will clean it up in that case. Maintain the manual
> unregister path because it can stay infallible, unlike the Drop path
> which depends on revocable access. In the case that `Gpu::new` fails the
> access is guaranteed to succeed, however.
Hi Eliot,
The code looks exactly correct to me. I just have some tiny commit
message suggestions:
1. The subject line could be tightened up slightly, to:
gpu: nova-core: fb: unregister SysmemFlush on boot failure
2. And I'd like to rewrite the commit message body, to approximately this:
If Gpu::new fails after SysmemFlush::register succeeds, the registered
sysmem flush page is never unregistered because SysmemFlush has no Drop
impl and try_pin_init! only drops already-initialized fields on failure.
Add a Drop impl that unregisters through revocable BAR access, which
covers the init-failure path. The manual unregister in Gpu::unbind is
still needed because by the time Drop runs during normal teardown,
devres has already revoked the BAR.
With that,
Reviewed-by: John Hubbard <jhubbard@xxxxxxxxxx>
thanks,
--
John Hubbard