From: Greg KH <gregkh@linuxfoundation.org>
To: Danilo Krummrich <dakr@redhat.com>
Cc: Boqun Feng <boqun.feng@gmail.com>,
rafael@kernel.org, mcgrof@kernel.org, russell.h.weight@intel.com,
ojeda@kernel.org, alex.gaynor@gmail.com, wedsonaf@gmail.com,
gary@garyguo.net, bjorn3_gh@protonmail.com,
benno.lossin@proton.me, a.hindborg@samsung.com,
aliceryhl@google.com, airlied@gmail.com,
fujita.tomonori@gmail.com, pstanner@redhat.com,
ajanulgu@redhat.com, lyude@redhat.com,
rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 1/2] rust: add abstraction for struct device
Date: Wed, 12 Jun 2024 17:02:52 +0200 [thread overview]
Message-ID: <2024061245-kangaroo-clothes-76e1@gregkh> (raw)
In-Reply-To: <d74edb73-1dba-43f4-a50c-36354c39d758@redhat.com>
On Wed, Jun 12, 2024 at 04:51:42PM +0200, Danilo Krummrich wrote:
> On 6/11/24 18:13, Boqun Feng wrote:
> > On Tue, Jun 11, 2024 at 03:29:22PM +0200, Greg KH wrote:
> > > On Tue, Jun 11, 2024 at 03:21:31PM +0200, Danilo Krummrich wrote:
> > > > ...hence, I agree we should indeed add to the #Invariants and #Safety section
> > > > that `->release` must be callable from any thread.
> > > >
> > > > However, this is just theory, do we actually have cases where `device::release`
> >
> > @Danilo, right, it's only theorical, but it's good to call it out since
> > it's the requirement for a safe Rust abstraction.
>
> Similar to my previous reply, if we want to call this out as safety requirement
> in `Device::from_raw`, we probably want to add it to the documentation of the C
> `struct device`, such that we can argue that this is an invariant of C's
> `struct device`.
>
> Otherwise we'd have to write something like:
>
> "It must also be ensured that the `->release` function of a `struct device` can
> be called from any non-atomic context. While not being officially documented this
> is guaranteed by the invariant of `struct device`."
In the 20+ years of the driver model being part of the kernel, I don't
think this has come up yet, so maybe you can call the release function
in irq context. I don't know, I was just guessing :)
So let's not go adding constraints that we just do not have please.
Same goes for the C code, so the rust code is no different here.
thanks,
greg k-h
next prev parent reply other threads:[~2024-06-12 15:02 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-10 18:02 [PATCH v2 0/2] Rust abstractions for Device & Firmware Danilo Krummrich
2024-06-10 18:02 ` [PATCH v2 1/2] rust: add abstraction for struct device Danilo Krummrich
2024-06-10 18:38 ` Boqun Feng
2024-06-11 13:21 ` Danilo Krummrich
2024-06-11 13:29 ` Greg KH
2024-06-11 16:13 ` Boqun Feng
2024-06-12 13:59 ` Danilo Krummrich
2024-06-12 14:51 ` Danilo Krummrich
2024-06-12 15:02 ` Greg KH [this message]
2024-06-12 15:35 ` Danilo Krummrich
2024-06-12 15:50 ` Greg KH
2024-06-12 16:18 ` Danilo Krummrich
2024-06-12 17:13 ` Greg KH
2024-06-12 17:43 ` Greg KH
2024-06-12 20:56 ` Danilo Krummrich
2024-06-13 5:47 ` Greg KH
2024-06-13 12:22 ` Danilo Krummrich
2024-06-13 20:18 ` Lyude Paul
2024-06-10 18:02 ` [PATCH v2 2/2] rust: add firmware abstractions Danilo Krummrich
2024-06-11 6:31 ` Greg KH
2024-06-11 13:34 ` Danilo Krummrich
2024-06-11 13:44 ` Greg KH
2024-06-12 11:32 ` kernel test robot
2024-06-13 3:36 ` kernel test robot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=2024061245-kangaroo-clothes-76e1@gregkh \
--to=gregkh@linuxfoundation.org \
--cc=a.hindborg@samsung.com \
--cc=airlied@gmail.com \
--cc=ajanulgu@redhat.com \
--cc=alex.gaynor@gmail.com \
--cc=aliceryhl@google.com \
--cc=benno.lossin@proton.me \
--cc=bjorn3_gh@protonmail.com \
--cc=boqun.feng@gmail.com \
--cc=dakr@redhat.com \
--cc=fujita.tomonori@gmail.com \
--cc=gary@garyguo.net \
--cc=linux-kernel@vger.kernel.org \
--cc=lyude@redhat.com \
--cc=mcgrof@kernel.org \
--cc=ojeda@kernel.org \
--cc=pstanner@redhat.com \
--cc=rafael@kernel.org \
--cc=russell.h.weight@intel.com \
--cc=rust-for-linux@vger.kernel.org \
--cc=wedsonaf@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.