diff --git a/rust/kernel/dma.rs b/rust/kernel/dma.rs index e275f2562a5b..e8f2bb3631d6 100644 --- a/rust/kernel/dma.rs +++ b/rust/kernel/dma.rs @@ -967,7 +967,11 @@ fn write_to_slice( return Ok(0); }; - let count = self.size().saturating_sub(offset_val).min(writer.len()); + if offset_val >= self.size() { + return Ok(0); + } + + let count = (self.size() - offset_val).min(writer.len()); writer.write_dma(self, offset_val, count)?;