From: Markus Probst <markus.probst@posteo.de>
To: "Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Miguel Ojeda" <ojeda@kernel.org>,
"Boqun Feng" <boqun@kernel.org>, "Gary Guo" <gary@garyguo.net>,
"Björn Roy Baron" <bjorn3_gh@protonmail.com>,
"Benno Lossin" <lossin@kernel.org>,
"Andreas Hindborg" <a.hindborg@kernel.org>,
"Alice Ryhl" <aliceryhl@google.com>,
"Trevor Gross" <tmgross@umich.edu>,
"Danilo Krummrich" <dakr@kernel.org>,
"Daniel Almeida" <daniel.almeida@collabora.com>,
"Tamir Duberstein" <tamird@kernel.org>,
"Alexandre Courbot" <acourbot@nvidia.com>,
"Onur Özkan" <work@onurozkan.dev>
Cc: linux-serial@vger.kernel.org, rust-for-linux@vger.kernel.org,
linux-kernel@vger.kernel.org,
Markus Probst <markus.probst@posteo.de>
Subject: [PATCH v2 2/4] rust: serdev: mark small functions as `#[inline]`
Date: Sat, 18 Jul 2026 12:47:48 +0000 [thread overview]
Message-ID: <20260718-rust_serdev_fixes-v2-2-e5214e03de13@posteo.de> (raw)
In-Reply-To: <20260718-rust_serdev_fixes-v2-0-e5214e03de13@posteo.de>
These methods should be inlined for optimization reasons.
Suggested-by: Gary Guo <gary@garyguo.net>
Link: https://lore.kernel.org/rust-for-linux/DK0SX3P5K1J6.1OV4ETJMXW83R@garyguo.net/
Signed-off-by: Markus Probst <markus.probst@posteo.de>
---
rust/kernel/serdev.rs | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/rust/kernel/serdev.rs b/rust/kernel/serdev.rs
index 47ca57966abf..79d61c6ceeec 100644
--- a/rust/kernel/serdev.rs
+++ b/rust/kernel/serdev.rs
@@ -440,6 +440,7 @@ pub struct Device<Ctx: device::DeviceContext = device::Normal>(
);
impl<Ctx: device::DeviceContext> Device<Ctx> {
+ #[inline]
fn as_raw(&self) -> *mut bindings::serdev_device {
self.0.get()
}
@@ -451,6 +452,7 @@ impl Device<device::Bound> {
/// Common baudrates are 115200, 9600, 19200, 57600, 4800.
///
/// Use [`Device::write_flush`] before calling this if you have written data prior to this call.
+ #[inline]
pub fn set_baudrate(&self, speed: u32) -> Result<(), u32> {
// SAFETY: `self.as_raw()` is guaranteed to be a pointer to a valid `serdev_device`.
let ret = unsafe { bindings::serdev_device_set_baudrate(self.as_raw(), speed) };
@@ -464,6 +466,7 @@ pub fn set_baudrate(&self, speed: u32) -> Result<(), u32> {
/// Set if flow control should be enabled.
///
/// Use [`Device::write_flush`] before calling this if you have written data prior to this call.
+ #[inline]
pub fn set_flow_control(&self, enable: bool) {
// SAFETY: `self.as_raw()` is guaranteed to be a pointer to a valid `serdev_device`.
unsafe { bindings::serdev_device_set_flow_control(self.as_raw(), enable) };
@@ -472,6 +475,7 @@ pub fn set_flow_control(&self, enable: bool) {
/// Set parity to use.
///
/// Use [`Device::write_flush`] before calling this if you have written data prior to this call.
+ #[inline]
pub fn set_parity(&self, parity: Parity) -> Result {
// SAFETY: `self.as_raw()` is guaranteed to be a pointer to a valid `serdev_device`.
to_result(unsafe { bindings::serdev_device_set_parity(self.as_raw(), parity as u32) })
@@ -487,6 +491,7 @@ pub fn set_parity(&self, parity: Parity) -> Result {
/// Returns the number of bytes written (less than `data.len()` if interrupted).
/// [`kernel::error::code::ETIMEDOUT`] or [`kernel::error::code::ERESTARTSYS`] if interrupted
/// before any bytes were written.
+ #[inline]
pub fn write_all(&self, data: &[u8], timeout: Timeout) -> Result<usize> {
if data.len() > i32::MAX as usize {
return Err(EINVAL);
@@ -520,6 +525,7 @@ pub fn write_all(&self, data: &[u8], timeout: Timeout) -> Result<usize> {
///
/// Returns the number of bytes written (less than `data.len()` if not enough room in the
/// write buffer).
+ #[inline]
pub fn write(&self, data: &[u8]) -> Result<u32> {
if data.len() > i32::MAX as usize {
return Err(EINVAL);
@@ -539,6 +545,7 @@ pub fn write(&self, data: &[u8]) -> Result<u32> {
///
/// Note that this doesn't guarantee that the data has been transmitted.
/// Use [`Device::wait_until_sent`] for this purpose.
+ #[inline]
pub fn write_flush(&self) {
// SAFETY: `self.as_raw()` is guaranteed to be a pointer to a valid `serdev_device`.
unsafe { bindings::serdev_device_write_flush(self.as_raw()) };
@@ -547,6 +554,7 @@ pub fn write_flush(&self) {
/// Wait for the data to be sent.
///
/// After this function, the write buffer of the controller should be empty.
+ #[inline]
pub fn wait_until_sent(&self, timeout: Timeout) {
// SAFETY: `self.as_raw()` is guaranteed to be a pointer to a valid `serdev_device`.
unsafe { bindings::serdev_device_wait_until_sent(self.as_raw(), timeout.into_jiffies()) };
--
2.54.0
next prev parent reply other threads:[~2026-07-18 12:47 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-18 12:47 [PATCH v2 0/4] rust: serdev: trivial fixes Markus Probst
2026-07-18 12:47 ` [PATCH v2 1/4] rust: serdev: fix typo in rustdoc Markus Probst
2026-07-18 12:47 ` Markus Probst [this message]
2026-07-18 12:47 ` [PATCH v2 3/4] rust: serdev: document `PrivateData::active` Markus Probst
2026-07-18 12:47 ` [PATCH v2 4/4] rust: serdev: remove `serdev::Timeout` Markus Probst
2026-07-18 15:02 ` Gary Guo
2026-07-18 15:12 ` Markus Probst
2026-07-18 15:23 ` Gary Guo
2026-07-18 14:10 ` [PATCH v2 0/4] rust: serdev: trivial fixes Danilo Krummrich
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=20260718-rust_serdev_fixes-v2-2-e5214e03de13@posteo.de \
--to=markus.probst@posteo.de \
--cc=a.hindborg@kernel.org \
--cc=acourbot@nvidia.com \
--cc=aliceryhl@google.com \
--cc=bjorn3_gh@protonmail.com \
--cc=boqun@kernel.org \
--cc=dakr@kernel.org \
--cc=daniel.almeida@collabora.com \
--cc=gary@garyguo.net \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-serial@vger.kernel.org \
--cc=lossin@kernel.org \
--cc=ojeda@kernel.org \
--cc=rust-for-linux@vger.kernel.org \
--cc=tamird@kernel.org \
--cc=tmgross@umich.edu \
--cc=work@onurozkan.dev \
/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.