summaryrefslogtreecommitdiff
path: root/rust/kernel
diff options
context:
space:
mode:
authorDanilo Krummrich <dakr@kernel.org>2026-08-10 00:36:11 +0200
committerDanilo Krummrich <dakr@kernel.org>2026-08-10 01:20:05 +0200
commitdbaafe9cc56a996931eedfe043eb34418cc9cd9b (patch)
tree812b63d549e87c3fff744a21b75b73c8f096b5c5 /rust/kernel
parent67b1e7245bd60f54f820859b9e400136a7b6d00a (diff)
parentdb2ddb87143519e20a95aa36c60b36107b736a58 (diff)
Merge tag 'v7.2-rc7' into driver-core-next
We need the driver-core fixes in here as well to build on top of. Signed-off-by: Danilo Krummrich <dakr@kernel.org>
Diffstat (limited to 'rust/kernel')
-rw-r--r--rust/kernel/device.rs20
-rw-r--r--rust/kernel/devres.rs1
-rw-r--r--rust/kernel/io.rs1
-rw-r--r--rust/kernel/platform.rs9
-rw-r--r--rust/kernel/time.rs11
5 files changed, 25 insertions, 17 deletions
diff --git a/rust/kernel/device.rs b/rust/kernel/device.rs
index 82e46b37e814..2291d85b6849 100644
--- a/rust/kernel/device.rs
+++ b/rust/kernel/device.rs
@@ -739,9 +739,7 @@ macro_rules! impl_device_context_into_aref {
#[macro_export]
macro_rules! dev_printk {
($method:ident, $dev:expr, $($f:tt)*) => {
- {
- $crate::device::Device::$method($dev.as_ref(), $crate::prelude::fmt!($($f)*))
- }
+ $crate::device::Device::$method($dev.as_ref(), $crate::prelude::fmt!($($f)*))
}
}
@@ -768,7 +766,7 @@ macro_rules! dev_printk {
/// ```
#[macro_export]
macro_rules! dev_emerg {
- ($($f:tt)*) => { $crate::dev_printk!(pr_emerg, $($f)*); }
+ ($($f:tt)*) => { $crate::dev_printk!(pr_emerg, $($f)*) }
}
/// Prints an alert-level message (level 1) prefixed with device information.
@@ -794,7 +792,7 @@ macro_rules! dev_emerg {
/// ```
#[macro_export]
macro_rules! dev_alert {
- ($($f:tt)*) => { $crate::dev_printk!(pr_alert, $($f)*); }
+ ($($f:tt)*) => { $crate::dev_printk!(pr_alert, $($f)*) }
}
/// Prints a critical-level message (level 2) prefixed with device information.
@@ -820,7 +818,7 @@ macro_rules! dev_alert {
/// ```
#[macro_export]
macro_rules! dev_crit {
- ($($f:tt)*) => { $crate::dev_printk!(pr_crit, $($f)*); }
+ ($($f:tt)*) => { $crate::dev_printk!(pr_crit, $($f)*) }
}
/// Prints an error-level message (level 3) prefixed with device information.
@@ -846,7 +844,7 @@ macro_rules! dev_crit {
/// ```
#[macro_export]
macro_rules! dev_err {
- ($($f:tt)*) => { $crate::dev_printk!(pr_err, $($f)*); }
+ ($($f:tt)*) => { $crate::dev_printk!(pr_err, $($f)*) }
}
/// Prints a warning-level message (level 4) prefixed with device information.
@@ -872,7 +870,7 @@ macro_rules! dev_err {
/// ```
#[macro_export]
macro_rules! dev_warn {
- ($($f:tt)*) => { $crate::dev_printk!(pr_warn, $($f)*); }
+ ($($f:tt)*) => { $crate::dev_printk!(pr_warn, $($f)*) }
}
/// Prints a notice-level message (level 5) prefixed with device information.
@@ -898,7 +896,7 @@ macro_rules! dev_warn {
/// ```
#[macro_export]
macro_rules! dev_notice {
- ($($f:tt)*) => { $crate::dev_printk!(pr_notice, $($f)*); }
+ ($($f:tt)*) => { $crate::dev_printk!(pr_notice, $($f)*) }
}
/// Prints an info-level message (level 6) prefixed with device information.
@@ -924,7 +922,7 @@ macro_rules! dev_notice {
/// ```
#[macro_export]
macro_rules! dev_info {
- ($($f:tt)*) => { $crate::dev_printk!(pr_info, $($f)*); }
+ ($($f:tt)*) => { $crate::dev_printk!(pr_info, $($f)*) }
}
/// Prints a debug-level message (level 7) prefixed with device information.
@@ -950,5 +948,5 @@ macro_rules! dev_info {
/// ```
#[macro_export]
macro_rules! dev_dbg {
- ($($f:tt)*) => { $crate::dev_printk!(pr_dbg, $($f)*); }
+ ($($f:tt)*) => { $crate::dev_printk!(pr_dbg, $($f)*) }
}
diff --git a/rust/kernel/devres.rs b/rust/kernel/devres.rs
index aecc8906de2c..d2924aaae008 100644
--- a/rust/kernel/devres.rs
+++ b/rust/kernel/devres.rs
@@ -68,6 +68,7 @@ struct Inner<T> {
/// # Examples
///
/// ```no_run
+/// # #![cfg(CONFIG_HAS_IOMEM)]
/// use kernel::{
/// bindings,
/// device::{
diff --git a/rust/kernel/io.rs b/rust/kernel/io.rs
index a38c20ba3d23..5ce9fd129068 100644
--- a/rust/kernel/io.rs
+++ b/rust/kernel/io.rs
@@ -18,6 +18,7 @@ use crate::{
}, //
};
+#[cfg(CONFIG_HAS_IOMEM)]
pub mod mem;
pub mod poll;
pub mod register;
diff --git a/rust/kernel/platform.rs b/rust/kernel/platform.rs
index 45204e51cdef..f48b7a226a1b 100644
--- a/rust/kernel/platform.rs
+++ b/rust/kernel/platform.rs
@@ -17,10 +17,7 @@ use crate::{
from_result,
to_result, //
},
- io::{
- mem::IoRequest,
- Resource, //
- },
+ io::Resource,
irq::{
self,
IrqRequest, //
@@ -31,6 +28,9 @@ use crate::{
ThisModule, //
};
+#[cfg(CONFIG_HAS_IOMEM)]
+use crate::io::mem::IoRequest;
+
use core::{
marker::PhantomData,
mem::offset_of,
@@ -306,6 +306,7 @@ impl<Ctx: device::DeviceContext> Device<Ctx> {
}
}
+#[cfg(CONFIG_HAS_IOMEM)]
impl Device<Bound> {
/// Returns an `IoRequest` for the resource at `index`, if any.
pub fn io_request_by_index(&self, index: u32) -> Option<IoRequest<'_>> {
diff --git a/rust/kernel/time.rs b/rust/kernel/time.rs
index 363e93cbb139..b8463823aed9 100644
--- a/rust/kernel/time.rs
+++ b/rust/kernel/time.rs
@@ -441,15 +441,22 @@ impl Delta {
/// to the value in the [`Delta`].
#[inline]
pub fn as_micros_ceil(self) -> i64 {
+ let n = self.as_nanos();
+ let n = if n >= 0 {
+ n.saturating_add(NSEC_PER_USEC - 1)
+ } else {
+ n
+ };
+
#[cfg(CONFIG_64BIT)]
{
- self.as_nanos().saturating_add(NSEC_PER_USEC - 1) / NSEC_PER_USEC
+ n / NSEC_PER_USEC
}
#[cfg(not(CONFIG_64BIT))]
// SAFETY: It is always safe to call `ktime_to_us()` with any value.
unsafe {
- bindings::ktime_to_us(self.as_nanos().saturating_add(NSEC_PER_USEC - 1))
+ bindings::ktime_to_us(n)
}
}