[PATCH v2 2/2] rust: mm: refactor zap_vma_range() to use contains_range()
liujinlong <[email protected]>
| Newsgroups | org.kernel.vger.rust-for-linux |
|---|---|
| Message-ID | <[email protected]> |
From: liujinlong <[email protected]> Open-code the overflow and range check in zap_vma_range() with the contains_range() helper added in the previous patch. Drop two local variables and three lines of hand-rolled arithmetic in the process. No functional change. Signed-off-by: liujinlong <[email protected]> --- rust/kernel/mm/virt.rs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/rust/kernel/mm/virt.rs b/rust/kernel/mm/virt.rs index c11fb4c089bd..32749039f7c4 100644 --- a/rust/kernel/mm/virt.rs +++ b/rust/kernel/mm/virt.rs @@ -144,15 +144,14 @@ pub fn is_page_aligned_range(addr: usize, size: usize) -> bool { /// we must only assume that the leaf level is cleared. #[inline] pub fn zap_vma_range(&self, address: usize, size: usize) { - let (end, did_overflow) = address.overflowing_add(size); - if did_overflow || address < self.start() || self.end() < end { + if !self.contains_range(address, size) { // TODO: call WARN_ONCE once Rust version of it is added return; } // SAFETY: By the type invariants, the caller has read access to this VMA, which is // sufficient for this method call. This method has no requirements on the vma flags. The - // address range is checked to be within the vma. + // address range is checked to be within the vma via `contains_range`. unsafe { bindings::zap_vma_range(self.as_ptr(), address, size) }; } -- 2.25.1