Create the 'nova_core' root debugfs entry when the driver loads. The Dir entry is part of the NovaCoreModule, so when the module unloads, the NovaCoreModule object is dropped, and that drops the _debugfs_root, which automatically deletes the debugfs file.
Signed-off-by: Timur Tabi <[email protected]> --- drivers/gpu/nova-core/nova_core.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/gpu/nova-core/nova_core.rs b/drivers/gpu/nova-core/nova_core.rs index d0df8db3693d..c9b93ccd6092 100644 --- a/drivers/gpu/nova-core/nova_core.rs +++ b/drivers/gpu/nova-core/nova_core.rs @@ -3,6 +3,7 @@ //! Nova Core GPU Driver use kernel::{ + debugfs::{Dir, Directory}, error::Error, pci, prelude::*, @@ -31,12 +32,17 @@ struct NovaCoreModule { #[pin] _driver: kernel::driver::Registration<pci::Adapter<driver::NovaCore>>, + _debugfs_root: Dir, } impl InPlaceModule for NovaCoreModule { fn init(module: &'static kernel::ThisModule) -> impl PinInit<Self, Error> { + // Create the debugfs top-level directory. Each GPU will create a subdirectory. + let debugfs_root = Dir::new(kernel::c_str!("nova_core")); + try_pin_init!(Self { _driver <- kernel::driver::Registration::new(MODULE_NAME, module), + _debugfs_root: debugfs_root, }) } } -- 2.52.0
