Make it build
Signed-off-by: Joel Fernandes <joelagnelf@nvidia.com>
diff --git a/rust/kernel/debugfs.rs b/rust/kernel/debugfs.rs
index ba32fb8..bdebc2b 100644
--- a/rust/kernel/debugfs.rs
+++ b/rust/kernel/debugfs.rs
@@ -69,11 +69,11 @@ unsafe impl Send for DebugfsBlobEntry {}
unsafe impl Sync for DebugfsBlobEntry {}
impl DebugfsBlobEntry {
- pub fn new<'a, T: AsRef<[u8]>>(
+ pub fn new<'a, T>(
name: &CStr,
mode: bindings::umode_t,
parent: Option<&DebugfsEntry>,
- data: &'a mut T,
+ data: &'a T,
) -> Result<Envelope<'a, Self>> {
let _parent: *mut bindings::dentry = match parent {
// To do: probably should test for parent == PTR_ERR here
@@ -84,7 +84,7 @@ pub fn new<'a, T: AsRef<[u8]>>(
let mut entry = KBox::<DebugfsBlobEntry>::new(DebugfsBlobEntry {
dentry: core::ptr::null_mut(), // Assign it to NULL for now
blob: { bindings::debugfs_blob_wrapper {
- data: data as *mut T as *mut core::ffi::c_void, // Pointer to the data
+ data: data as *const T as *mut core::ffi::c_void, // Pointer to the data
size: core::mem::size_of_val(data),
}},
}, GFP_KERNEL)?;
diff --git a/samples/rust/rust_minimal.rs b/samples/rust/rust_minimal.rs
index 8ddd861..db3ac86 100644
--- a/samples/rust/rust_minimal.rs
+++ b/samples/rust/rust_minimal.rs
@@ -34,9 +34,11 @@ struct RustMinimal {
numbers: KVec<i32>,
parent: debugfs::DebugfsEntry,
entry: debugfs::Envelope<'static, debugfs::DebugfsBlobEntry>,
- data: KBox::<MyData>,
+ data: &'static MyData,
}
+static data: MyData = MyData { x: 3 };
+
impl kernel::Module for RustMinimal {
fn init(_module: &'static ThisModule) -> Result<Self> {
pr_info!("Rust minimal sample (init)\n");
@@ -49,12 +51,10 @@ fn init(_module: &'static ThisModule) -> Result<Self> {
let parent = debugfs::DebugfsEntry::debugfs_create_dir(c_str!("my_debug_dir"), None)?;
- let mut data = KBox::<MyData>::new( MyData {x:3}, GFP_KERNEL)?;
-
if let Ok(entry) =
- debugfs::DebugfsBlobEntry::new(c_str!("blob"), 0x664, Some(&parent), &mut data) {
+ debugfs::DebugfsBlobEntry::new(c_str!("blob"), 0x664, Some(&parent), &data) {
pr_info!("created debugfs entry\n");
- Ok(Self { numbers, parent, entry, data })
+ Ok(Self { numbers, parent, entry, data: &data })
} else {
pr_info!("failed to create debugfs entry\n");
return Err(EINVAL)