[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <2025090629-economy-geologist-3548@gregkh>
Date: Sat, 6 Sep 2025 15:07:16 +0200
From: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
To: Daniel Almeida <daniel.almeida@...labora.com>
Cc: Miguel Ojeda <ojeda@...nel.org>, Alex Gaynor <alex.gaynor@...il.com>,
Boqun Feng <boqun.feng@...il.com>, Gary Guo <gary@...yguo.net>,
Björn Roy Baron <bjorn3_gh@...tonmail.com>,
Benno Lossin <lossin@...nel.org>,
Andreas Hindborg <a.hindborg@...nel.org>,
Alice Ryhl <aliceryhl@...gle.com>, Trevor Gross <tmgross@...ch.edu>,
Danilo Krummrich <dakr@...nel.org>, linux-kernel@...r.kernel.org,
rust-for-linux@...r.kernel.org, linux-usb@...r.kernel.org
Subject: Re: [PATCH 2/2] samples: rust: add a USB driver sample
On Sat, Sep 06, 2025 at 09:41:16AM -0300, Daniel Almeida wrote:
>
>
> >>
> >> I thought that an iterative approach would work here, i.e.: merge this, then
> >> URBs, then more stuff, etc.
> >
> > Ah, that makes sense, I didn't realize you want that here. What USB
> > device do you want to write a rust driver for? Are you going to need
> > bindings to the usb major number, or is it going to talk to some other
> > subsystem instead?
> >
> > Right now, these bindings don't really do anything USB specific at all
> > except allow a driver to bind to a device.
> >
> > thanks,
> >
> > greg k-h
>
> To be honest, I'm trying to pave the way for others.
>
> I often hear people saying that they would look into Rust drivers if only they
> did not have to write all the surrounding infrastructure themselves. On the
> other hand, there is no infrastructure because there are no drivers. It's a
> chicken and egg problem that I am trying to solve.
Sure, but a framework like this (probe/disconnect), really isn't USB,
it's just driver core stuff :)
> It's also a cool opportunity to learn about USB, but I don't have any plans
> for a driver at the moment other than a instructional sample driver in Rust.
Then let's not add bindings without a real user please. We don't want
to maintain them for no good reason.
> Give me a few more weeks and I'll come up with the code for the other things
> you've pointed out.
>
> By the way, I wonder how testing would work. I tested this by plugging in my
> mouse and fiddling around with /sys/bus/usb/drivers/rust_driver_usb/new_id. I
> am not sure how this is going to work once I start looking into data transfer
> and etc. Perhaps there's a simple device out there that I should target? Or
> maybe there's a way to "fake" a USB device that would work with the sample
> driver for demonstration purposes.
You can use the usb-gadget subsystem and dummy-hcd to create a loop-back
for a virtual USB device. That's how syzbot does USB driver fuzz
testing, there should be some documentation on that somewhere in the
tree.
thanks
greg k-h
Powered by blists - more mailing lists