diff --git a/rust/kernel/miscdevice.rs b/rust/kernel/miscdevice.rs index ac4afe9f18b8..eb9d1fa8507b 100644 --- a/rust/kernel/miscdevice.rs +++ b/rust/kernel/miscdevice.rs @@ -14,7 +14,6 @@ use crate::{ error::{to_result, Error, Result, VTABLE_DEFAULT_ERROR}, ffi::{c_int, c_long, c_uint, c_ulong, c_void}, fs::{File, LocalFile}, - mm::virt::VmAreaNew, prelude::*, seq_file::SeqFile, str::CStr, @@ -124,22 +123,6 @@ pub trait MiscDevice: Sized { drop(device); } - /// Handle for mmap. - /// - /// This function is invoked when a user space process invokes the `mmap` system call on - /// `file`. The function is a callback that is part of the VMA initializer. The kernel will do - /// initial setup of the VMA before calling this function. The function can then interact with - /// the VMA initialization by calling methods of `vma`. If the function does not return an - /// error, the kernel will complete initialization of the VMA according to the properties of - /// `vma`. - fn mmap( - _device: ::Borrowed<'_>, - _file: &File, - _vma: &VmAreaNew, - ) -> Result { - kernel::build_error!(VTABLE_DEFAULT_ERROR) - } - /// Seeks this miscdevice. fn llseek( _device: ::Borrowed<'_>, @@ -286,7 +269,6 @@ const fn create_vtable() -> &'static bindings::file_operations { const VTABLE: bindings::file_operations = bindings::file_operations { open: Some(fops_open::), release: Some(fops_release::), - mmap: maybe_fn(T::HAS_MMAP, fops_mmap::), llseek: maybe_fn(T::HAS_LLSEEK, fops_llseek::), read_iter: maybe_fn(T::HAS_READ_ITER, fops_read_iter::), write_iter: maybe_fn(T::HAS_WRITE_ITER, fops_write_iter::), @@ -371,32 +353,6 @@ unsafe extern "C" fn fops_release( 0 } -/// # Safety -/// -/// `file` must be a valid file that is associated with a `MiscDeviceRegistration`. -/// `vma` must be a vma that is currently being mmap'ed with this file. -unsafe extern "C" fn fops_mmap( - file: *mut bindings::file, - vma: *mut bindings::vm_area_struct, -) -> c_int { - // SAFETY: The mmap call of a file can access the private data. - let private = unsafe { (*file).private_data }; - // SAFETY: This is a Rust Miscdevice, so we call `into_foreign` in `open` and `from_foreign` in - // `release`, and `fops_mmap` is guaranteed to be called between those two operations. - let device = unsafe { ::borrow(private) }; - // SAFETY: The caller provides a vma that is undergoing initial VMA setup. - let area = unsafe { VmAreaNew::from_raw(vma) }; - // SAFETY: - // * The file is valid for the duration of this call. - // * There is no active fdget_pos region on the file on this thread. - let file = unsafe { File::from_raw_file(file) }; - - match T::mmap(device, file, area) { - Ok(()) => 0, - Err(err) => err.to_errno() as c_int, - } -} - /// # Safety /// /// `file` must be a valid file that is associated with a `MiscDeviceRegistration`.