gpu: nova-core: use DevresChain for SysmemFlush

If Gpu::new() fails after SysmemFlush has been registered, the flush
page is never unregistered because cleanup requires Bar0 access, which
is not available through a simple Drop implementation.

Use DevresChain to let SysmemFlush hold a direct &Bar0 reference,
which is guaranteed to remain valid, and implement native Drop for
cleanup.

Reported-by: Eliot Courtney <ecourtney@nvidia.com>
Closes: https://lore.kernel.org/all/20260409-fix-systemflush-v1-1-a1d6c968f17c@nvidia.com/
Fixes: 6554ad65b589 ("gpu: nova-core: register sysmem flush page")
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
3 files changed