* [PATCH rust-next v2 0/3] rust: miscdevice: add llseek support
@ 2025-10-15 4:02 Ryosuke Yasuoka
2025-10-15 4:02 ` [PATCH rust-next v2 1/3] rust: fs: add pos/pos_mut methods for LocalFile struct Ryosuke Yasuoka
` (3 more replies)
0 siblings, 4 replies; 8+ messages in thread
From: Ryosuke Yasuoka @ 2025-10-15 4:02 UTC (permalink / raw)
To: arnd, gregkh, ojeda, alex.gaynor, boqun.feng, gary, bjorn3_gh,
lossin, a.hindborg, aliceryhl, tmgross, dakr, viro, brauner, jack
Cc: Ryosuke Yasuoka, rust-for-linux, linux-kernel, linux-fsdevel
Hi all,
This patch series add support for the llseek file operation to misc
devices written in Rust.
The first patch introduces pos()/pos_mut() methods to LocalFile and
File. These helpers allow to refer to the file's position, which is
required for implementing lseek in misc_device.
The second patch adds the llseek hook to the MiscDevice trait, enabling
Rust drivers to implement the seeking logic.
The last one updates the rust_misc_device sample to demonstrate the
usage of the new llseek hook, including a C test program that verifies
the functionality.
history of this patch:
v2:
- Introduce pos() and pos_mut() methods to get file positions,
and use them in sample programs.
- Add read, write and lseek in the userspace sample program.
- Remove unsafe block from the sample program.
- In this v2 patch, remove SEEK_END related codes from
a sample program because it needs inode->i_size which has not
implemented yet. The purpose of this patch is to introduce
lseek(). Since implementing an 'inode wrap' requires more
extensive discussion than adding llseek hook(), I just
exclude it from this patch series. I believe that whether
SEEK_END is supported or not has no impact on adding lseek()
to MiscDevice.
v1:
https://lore.kernel.org/rust-for-linux/20250818135846.133722-1-ryasuoka@redhat.com/
Ryosuke Yasuoka (3):
rust: fs: add pos/pos_mut methods for LocalFile struct
rust: miscdevice: add llseek support
rust: samples: miscdevice: add lseek samples
rust/kernel/fs/file.rs | 61 ++++++++++++++++++++++++++++
rust/kernel/miscdevice.rs | 36 +++++++++++++++++
samples/rust/rust_misc_device.rs | 68 ++++++++++++++++++++++++++++++++
3 files changed, 165 insertions(+)
base-commit: 98906f9d850e4882004749eccb8920649dc98456
--
2.51.0
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH rust-next v2 1/3] rust: fs: add pos/pos_mut methods for LocalFile struct
2025-10-15 4:02 [PATCH rust-next v2 0/3] rust: miscdevice: add llseek support Ryosuke Yasuoka
@ 2025-10-15 4:02 ` Ryosuke Yasuoka
2025-10-15 4:02 ` [PATCH rust-next v2 2/3] rust: miscdevice: add llseek support Ryosuke Yasuoka
` (2 subsequent siblings)
3 siblings, 0 replies; 8+ messages in thread
From: Ryosuke Yasuoka @ 2025-10-15 4:02 UTC (permalink / raw)
To: arnd, gregkh, ojeda, alex.gaynor, boqun.feng, gary, bjorn3_gh,
lossin, a.hindborg, aliceryhl, tmgross, dakr, viro, brauner, jack
Cc: Ryosuke Yasuoka, rust-for-linux, linux-kernel, linux-fsdevel
Add pos() and pos_mut() methods to get and set a file position.
Signed-off-by: Ryosuke Yasuoka <ryasuoka@redhat.com>
---
rust/kernel/fs/file.rs | 61 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 61 insertions(+)
diff --git a/rust/kernel/fs/file.rs b/rust/kernel/fs/file.rs
index cf06e73a6da0..bda6cc540dfe 100644
--- a/rust/kernel/fs/file.rs
+++ b/rust/kernel/fs/file.rs
@@ -283,6 +283,23 @@ pub unsafe fn from_raw_file<'a>(ptr: *const bindings::file) -> &'a LocalFile {
unsafe { &*ptr.cast() }
}
+ /// Create a mutable reference to a [`LocalFile`] from a valid pointer.
+ ///
+ /// # Safety
+ ///
+ /// * The caller must ensure that `ptr` points at a valid file and that the file's refcount is
+ /// positive for the duration of `'a`.
+ /// * The caller must ensure that if there is an active call to `fdget_pos` that did not take
+ /// the `f_pos_lock` mutex, then that call is on the current thread.
+ #[inline]
+ pub unsafe fn from_raw_file_mut<'a>(ptr: *mut bindings::file) -> &'a mut LocalFile {
+ // SAFETY: The caller guarantees that the pointer is not dangling and stays valid for the
+ // duration of `'a`. The cast is okay because `LocalFile` is `repr(transparent)`.
+ //
+ // INVARIANT: The caller guarantees that there are no problematic `fdget_pos` calls.
+ unsafe { &mut *ptr.cast() }
+ }
+
/// Assume that there are no active `fdget_pos` calls that prevent us from sharing this file.
///
/// This makes it safe to transfer this file to other threads. No checks are performed, and
@@ -337,6 +354,20 @@ pub fn flags(&self) -> u32 {
// FIXME(read_once): Replace with `read_once` when available on the Rust side.
unsafe { core::ptr::addr_of!((*self.as_ptr()).f_flags).read_volatile() }
}
+
+ /// Get the current `f_pos` with the file.
+ #[inline]
+ pub fn pos(&self) -> i64 {
+ // SAFETY: The `f_pos` is valid while `LocalFile` is valid
+ unsafe { (*self.as_ptr()).f_pos }
+ }
+
+ /// Get a mutable reference to the `f_pos`.
+ #[inline]
+ pub fn pos_mut(&mut self) -> &mut i64 {
+ // SAFETY: The `f_pos` is valid while `LocalFile` is valid
+ unsafe { &mut (*self.as_ptr()).f_pos }
+ }
}
impl File {
@@ -356,6 +387,23 @@ pub unsafe fn from_raw_file<'a>(ptr: *const bindings::file) -> &'a File {
// INVARIANT: The caller guarantees that there are no problematic `fdget_pos` calls.
unsafe { &*ptr.cast() }
}
+
+ /// Creates a mutable reference to a [`File`] from a valid pointer.
+ ///
+ /// # Safety
+ ///
+ /// * The caller must ensure that `ptr` points at a valid file and that the file's refcount is
+ /// positive for the duration of `'a`.
+ /// * The caller must ensure that if there are active `fdget_pos` calls on this file, then they
+ /// took the `f_pos_lock` mutex.
+ #[inline]
+ pub unsafe fn from_raw_file_mut<'a>(ptr: *mut bindings::file) -> &'a mut File {
+ // SAFETY: The caller guarantees that the pointer is not dangling and stays valid for the
+ // duration of `'a`. The cast is okay because `File` is `repr(transparent)`.
+ //
+ // INVARIANT: The caller guarantees that there are no problematic `fdget_pos` calls.
+ unsafe { &mut *ptr.cast() }
+ }
}
// Make LocalFile methods available on File.
@@ -372,6 +420,19 @@ fn deref(&self) -> &LocalFile {
}
}
+// Make LocalFile methods available on File.
+impl core::ops::DerefMut for File {
+ #[inline]
+ fn deref_mut(&mut self) -> &mut Self::Target {
+ // SAFETY: The caller provides a `&File`, and since it is a reference, it must point at a
+ // valid file for the desired duration.
+ //
+ // By the type invariants, there are no `fdget_pos` calls that did not take the
+ // `f_pos_lock` mutex.
+ unsafe { LocalFile::from_raw_file_mut(core::ptr::from_mut(self).cast()) }
+ }
+}
+
/// A file descriptor reservation.
///
/// This allows the creation of a file descriptor in two steps: first, we reserve a slot for it,
--
2.51.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH rust-next v2 2/3] rust: miscdevice: add llseek support
2025-10-15 4:02 [PATCH rust-next v2 0/3] rust: miscdevice: add llseek support Ryosuke Yasuoka
2025-10-15 4:02 ` [PATCH rust-next v2 1/3] rust: fs: add pos/pos_mut methods for LocalFile struct Ryosuke Yasuoka
@ 2025-10-15 4:02 ` Ryosuke Yasuoka
2025-10-15 4:02 ` [PATCH rust-next v2 3/3] rust: samples: miscdevice: add lseek samples Ryosuke Yasuoka
2025-10-15 5:40 ` [PATCH rust-next v2 0/3] rust: miscdevice: add llseek support Greg KH
3 siblings, 0 replies; 8+ messages in thread
From: Ryosuke Yasuoka @ 2025-10-15 4:02 UTC (permalink / raw)
To: arnd, gregkh, ojeda, alex.gaynor, boqun.feng, gary, bjorn3_gh,
lossin, a.hindborg, aliceryhl, tmgross, dakr, viro, brauner, jack
Cc: Ryosuke Yasuoka, rust-for-linux, linux-kernel, linux-fsdevel
Add the ability to write a file_operations->llseek hook in Rust when
using the miscdevice abstraction.
Signed-off-by: Ryosuke Yasuoka <ryasuoka@redhat.com>
---
rust/kernel/miscdevice.rs | 36 ++++++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)
diff --git a/rust/kernel/miscdevice.rs b/rust/kernel/miscdevice.rs
index d698cddcb4a5..2efd0847cde1 100644
--- a/rust/kernel/miscdevice.rs
+++ b/rust/kernel/miscdevice.rs
@@ -126,6 +126,16 @@ fn release(device: Self::Ptr, _file: &File) {
drop(device);
}
+ /// Handler for llseek.
+ fn llseek(
+ _device: <Self::Ptr as ForeignOwnable>::Borrowed<'_>,
+ _file: &mut File,
+ _offset: i64,
+ _whence: i32,
+ ) -> Result<isize> {
+ build_error!(VTABLE_DEFAULT_ERROR)
+ }
+
/// Handle for mmap.
///
/// This function is invoked when a user space process invokes the `mmap` system call on
@@ -296,6 +306,27 @@ impl<T: MiscDevice> MiscdeviceVTable<T> {
}
}
+ /// # Safety
+ ///
+ /// `file` must be a valid file that is associated with a `MiscDeviceRegistration<T>`.
+ unsafe extern "C" fn llseek(file: *mut bindings::file, offset: i64, whence: c_int) -> i64 {
+ // SAFETY: The llseek 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_llseek` is guaranteed to be called between those
+ // two operations.
+ let device = unsafe { <T::Ptr as ForeignOwnable>::borrow(private) };
+ // 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_mut(file) };
+
+ match T::llseek(device, file, offset, whence) {
+ Ok(res) => res as i64,
+ Err(err) => i64::from(err.to_errno()),
+ }
+ }
+
/// # Safety
///
/// `file` must be a valid file that is associated with a `MiscDeviceRegistration<T>`.
@@ -391,6 +422,11 @@ impl<T: MiscDevice> MiscdeviceVTable<T> {
const VTABLE: bindings::file_operations = bindings::file_operations {
open: Some(Self::open),
release: Some(Self::release),
+ llseek: if T::HAS_LLSEEK {
+ Some(Self::llseek)
+ } else {
+ None
+ },
mmap: if T::HAS_MMAP { Some(Self::mmap) } else { None },
read_iter: if T::HAS_READ_ITER {
Some(Self::read_iter)
--
2.51.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH rust-next v2 3/3] rust: samples: miscdevice: add lseek samples
2025-10-15 4:02 [PATCH rust-next v2 0/3] rust: miscdevice: add llseek support Ryosuke Yasuoka
2025-10-15 4:02 ` [PATCH rust-next v2 1/3] rust: fs: add pos/pos_mut methods for LocalFile struct Ryosuke Yasuoka
2025-10-15 4:02 ` [PATCH rust-next v2 2/3] rust: miscdevice: add llseek support Ryosuke Yasuoka
@ 2025-10-15 4:02 ` Ryosuke Yasuoka
2025-10-15 5:40 ` [PATCH rust-next v2 0/3] rust: miscdevice: add llseek support Greg KH
3 siblings, 0 replies; 8+ messages in thread
From: Ryosuke Yasuoka @ 2025-10-15 4:02 UTC (permalink / raw)
To: arnd, gregkh, ojeda, alex.gaynor, boqun.feng, gary, bjorn3_gh,
lossin, a.hindborg, aliceryhl, tmgross, dakr, viro, brauner, jack
Cc: Ryosuke Yasuoka, rust-for-linux, linux-kernel, linux-fsdevel
Add lseek samples in Rust MiscDevice samples
Signed-off-by: Ryosuke Yasuoka <ryasuoka@redhat.com>
---
samples/rust/rust_misc_device.rs | 68 ++++++++++++++++++++++++++++++++
1 file changed, 68 insertions(+)
diff --git a/samples/rust/rust_misc_device.rs b/samples/rust/rust_misc_device.rs
index d69bc33dbd99..7f227deef69d 100644
--- a/samples/rust/rust_misc_device.rs
+++ b/samples/rust/rust_misc_device.rs
@@ -12,6 +12,7 @@
//! #include <errno.h>
//! #include <fcntl.h>
//! #include <unistd.h>
+//! #include <string.h>
//! #include <sys/ioctl.h>
//!
//! #define RUST_MISC_DEV_FAIL _IO('|', 0)
@@ -19,9 +20,11 @@
//! #define RUST_MISC_DEV_GET_VALUE _IOR('|', 0x81, int)
//! #define RUST_MISC_DEV_SET_VALUE _IOW('|', 0x82, int)
//!
+//! #define BUF_SIZE 16
//! int main() {
//! int value, new_value;
//! int fd, ret;
+//! char *buf[BUF_SIZE];
//!
//! // Open the device file
//! printf("Opening /dev/rust-misc-device for reading and writing\n");
@@ -86,6 +89,40 @@
//! return -1;
//! }
//!
+//! // Write values to the buffer
+//! char *w_buf = "ABCDEFG";
+//! ret = write(fd, w_buf, strlen(w_buf));
+//! if (ret < 0) {
+//! perror("write");
+//! close(fd);
+//! return errno;
+//! }
+//! printf("Write values to the buffer: %.*s\n", ret, w_buf);
+//!
+//! // Read values from the buffer
+//! lseek(fd, 0, SEEK_SET);
+//! ret = read(fd, buf, BUF_SIZE - 1);
+//! if (ret < 0) {
+//! perror("read");
+//! close(fd);
+//! return errno;
+//! }
+//! buf[ret] = '\0';
+//! printf("Read values from the buffer: %s\n", buf);
+//!
+//! // Read value from the middle of the buffer
+//! memset(buf, 0, sizeof(buf));
+//! lseek(fd, 1, SEEK_SET);
+//! lseek(fd, 2, SEEK_CUR);
+//! ret = read(fd, buf, BUF_SIZE - 1);
+//! if (ret < 0) {
+//! perror("read");
+//! close(fd);
+//! return errno;
+//! }
+//! buf[ret] = '\0';
+//! printf("Read values from the middle of the buffer: %s\n", buf);
+//!
//! // Close the device file
//! printf("Closing /dev/rust-misc-device\n");
//! close(fd);
@@ -114,6 +151,9 @@
const RUST_MISC_DEV_GET_VALUE: u32 = _IOR::<i32>('|' as u32, 0x81);
const RUST_MISC_DEV_SET_VALUE: u32 = _IOW::<i32>('|' as u32, 0x82);
+const SEEK_SET: i32 = 0;
+const SEEK_CUR: i32 = 1;
+
module! {
type: RustMiscDeviceModule,
name: "rust_misc_device",
@@ -204,6 +244,34 @@ fn write_iter(mut kiocb: Kiocb<'_, Self::Ptr>, iov: &mut IovIterSource<'_>) -> R
Ok(len)
}
+ fn llseek(
+ me: Pin<&RustMiscDevice>,
+ file: &mut File,
+ offset: i64,
+ whence: i32,
+ ) -> Result<isize> {
+ dev_info!(me.dev, "LLSEEK Rust Misc Device Sample\n");
+ let pos: i64 = file.pos();
+
+ let new_pos = match whence {
+ SEEK_SET => offset,
+ SEEK_CUR => pos + offset,
+ _ => {
+ dev_err!(me.dev, "LLSEEK does not recognised: {}.\n", whence);
+ return Err(EINVAL);
+ }
+ };
+
+ if new_pos < 0 {
+ dev_err!(me.dev, "The file offset becomes negative: {}.\n", new_pos);
+ return Err(EINVAL);
+ }
+
+ *file.pos_mut() = new_pos;
+
+ Ok(new_pos as isize)
+ }
+
fn ioctl(me: Pin<&RustMiscDevice>, _file: &File, cmd: u32, arg: usize) -> Result<isize> {
dev_info!(me.dev, "IOCTLing Rust Misc Device Sample\n");
--
2.51.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH rust-next v2 0/3] rust: miscdevice: add llseek support
2025-10-15 4:02 [PATCH rust-next v2 0/3] rust: miscdevice: add llseek support Ryosuke Yasuoka
` (2 preceding siblings ...)
2025-10-15 4:02 ` [PATCH rust-next v2 3/3] rust: samples: miscdevice: add lseek samples Ryosuke Yasuoka
@ 2025-10-15 5:40 ` Greg KH
2025-10-16 10:19 ` Ryosuke Yasuoka
3 siblings, 1 reply; 8+ messages in thread
From: Greg KH @ 2025-10-15 5:40 UTC (permalink / raw)
To: Ryosuke Yasuoka
Cc: arnd, ojeda, alex.gaynor, boqun.feng, gary, bjorn3_gh, lossin,
a.hindborg, aliceryhl, tmgross, dakr, viro, brauner, jack,
rust-for-linux, linux-kernel, linux-fsdevel
On Wed, Oct 15, 2025 at 01:02:40PM +0900, Ryosuke Yasuoka wrote:
> Hi all,
>
> This patch series add support for the llseek file operation to misc
> devices written in Rust.
Cool, but what miscdevice driver needs llseek support? Do you have a
real user for this that we can see as well?
thanks,
greg k-h
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH rust-next v2 0/3] rust: miscdevice: add llseek support
2025-10-15 5:40 ` [PATCH rust-next v2 0/3] rust: miscdevice: add llseek support Greg KH
@ 2025-10-16 10:19 ` Ryosuke Yasuoka
2025-10-16 11:24 ` Greg KH
0 siblings, 1 reply; 8+ messages in thread
From: Ryosuke Yasuoka @ 2025-10-16 10:19 UTC (permalink / raw)
To: Greg KH
Cc: arnd, ojeda, alex.gaynor, boqun.feng, gary, bjorn3_gh, lossin,
a.hindborg, aliceryhl, tmgross, dakr, viro, brauner, jack,
rust-for-linux, linux-kernel, linux-fsdevel
On Wed, Oct 15, 2025 at 07:40:12AM +0200, Greg KH wrote:
> On Wed, Oct 15, 2025 at 01:02:40PM +0900, Ryosuke Yasuoka wrote:
> > Hi all,
> >
> > This patch series add support for the llseek file operation to misc
> > devices written in Rust.
>
> Cool, but what miscdevice driver needs llseek support? Do you have a
> real user for this that we can see as well?
Currently no. Because lseek is one of fundamental functions for device
driver, I think it's valuable to add support. I believe we'll have real
users based on read, write, and this lseek support.
What do you think? Thank you for your comment.
Best regards,
Ryosuke
> thanks,
>
> greg k-h
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH rust-next v2 0/3] rust: miscdevice: add llseek support
2025-10-16 10:19 ` Ryosuke Yasuoka
@ 2025-10-16 11:24 ` Greg KH
2025-10-16 14:39 ` Ryosuke Yasuoka
0 siblings, 1 reply; 8+ messages in thread
From: Greg KH @ 2025-10-16 11:24 UTC (permalink / raw)
To: Ryosuke Yasuoka
Cc: arnd, ojeda, alex.gaynor, boqun.feng, gary, bjorn3_gh, lossin,
a.hindborg, aliceryhl, tmgross, dakr, viro, brauner, jack,
rust-for-linux, linux-kernel, linux-fsdevel
On Thu, Oct 16, 2025 at 07:19:51PM +0900, Ryosuke Yasuoka wrote:
> On Wed, Oct 15, 2025 at 07:40:12AM +0200, Greg KH wrote:
> > On Wed, Oct 15, 2025 at 01:02:40PM +0900, Ryosuke Yasuoka wrote:
> > > Hi all,
> > >
> > > This patch series add support for the llseek file operation to misc
> > > devices written in Rust.
> >
> > Cool, but what miscdevice driver needs llseek support? Do you have a
> > real user for this that we can see as well?
>
> Currently no. Because lseek is one of fundamental functions for device
> driver, I think it's valuable to add support. I believe we'll have real
> users based on read, write, and this lseek support.
Char devices that use lseek are "odd", don't you agree? There are no
such current users under drivers/misc/ and only a rare few under
drivers/char/ (the huge user of that is mem.c but we aren't going to be
reimplementing that in rust any time soon...)
So without a real user of this api, I suggest we hold-off on adding it.
Let's not add it until someone comes up with a very valid reason for it.
thanks,
greg k-h
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH rust-next v2 0/3] rust: miscdevice: add llseek support
2025-10-16 11:24 ` Greg KH
@ 2025-10-16 14:39 ` Ryosuke Yasuoka
0 siblings, 0 replies; 8+ messages in thread
From: Ryosuke Yasuoka @ 2025-10-16 14:39 UTC (permalink / raw)
To: Greg KH
Cc: arnd, ojeda, alex.gaynor, boqun.feng, gary, bjorn3_gh, lossin,
a.hindborg, aliceryhl, tmgross, dakr, viro, brauner, jack,
rust-for-linux, linux-kernel, linux-fsdevel
On Thu, Oct 16, 2025 at 01:24:12PM +0200, Greg KH wrote:
> On Thu, Oct 16, 2025 at 07:19:51PM +0900, Ryosuke Yasuoka wrote:
> > On Wed, Oct 15, 2025 at 07:40:12AM +0200, Greg KH wrote:
> > > On Wed, Oct 15, 2025 at 01:02:40PM +0900, Ryosuke Yasuoka wrote:
> > > > Hi all,
> > > >
> > > > This patch series add support for the llseek file operation to misc
> > > > devices written in Rust.
> > >
> > > Cool, but what miscdevice driver needs llseek support? Do you have a
> > > real user for this that we can see as well?
> >
> > Currently no. Because lseek is one of fundamental functions for device
> > driver, I think it's valuable to add support. I believe we'll have real
> > users based on read, write, and this lseek support.
>
> Char devices that use lseek are "odd", don't you agree? There are no
> such current users under drivers/misc/ and only a rare few under
> drivers/char/ (the huge user of that is mem.c but we aren't going to be
> reimplementing that in rust any time soon...)
>
> So without a real user of this api, I suggest we hold-off on adding it.
> Let's not add it until someone comes up with a very valid reason for it.
Thank you for your review and clear explanation.
I understand your point. It makes sense not to add this without real
user. I'll hold off on this and will revisit it if a concrete use case
emerges.
Best regards,
Ryosuke
> thanks,
>
> greg k-h
>
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2025-10-16 14:39 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-15 4:02 [PATCH rust-next v2 0/3] rust: miscdevice: add llseek support Ryosuke Yasuoka
2025-10-15 4:02 ` [PATCH rust-next v2 1/3] rust: fs: add pos/pos_mut methods for LocalFile struct Ryosuke Yasuoka
2025-10-15 4:02 ` [PATCH rust-next v2 2/3] rust: miscdevice: add llseek support Ryosuke Yasuoka
2025-10-15 4:02 ` [PATCH rust-next v2 3/3] rust: samples: miscdevice: add lseek samples Ryosuke Yasuoka
2025-10-15 5:40 ` [PATCH rust-next v2 0/3] rust: miscdevice: add llseek support Greg KH
2025-10-16 10:19 ` Ryosuke Yasuoka
2025-10-16 11:24 ` Greg KH
2025-10-16 14:39 ` Ryosuke Yasuoka
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).