From 2f39aade304c872fa8fcbfa89504ce956a23f8e6 Mon Sep 17 00:00:00 2001 From: bjorn3 <17426603+bjorn3@users.noreply.github.com> Date: Mon, 6 Apr 2026 17:50:10 +0200 Subject: [PATCH] Use mmap_anywhere in a couple of places --- src/scheme/proc.rs | 4 +--- src/scheme/sys/iostat.rs | 34 +++++++++++++++++----------------- 2 files changed, 18 insertions(+), 20 deletions(-) diff --git a/src/scheme/proc.rs b/src/scheme/proc.rs index bdcc26da0a..d82187065b 100644 --- a/src/scheme/proc.rs +++ b/src/scheme/proc.rs @@ -585,12 +585,10 @@ impl KernelScheme for ProcScheme { let addrsp = AddrSpace::current()?; // TODO: Lock ordering violation let mut token = unsafe { CleanLockToken::new() }; - let page = addrsp.acquire_write(token.downgrade()).mmap( + let page = addrsp.acquire_write(token.downgrade()).mmap_anywhere( &addrsp, - None, NonZeroUsize::new(1).unwrap(), MapFlags::PROT_READ | MapFlags::PROT_WRITE, - None, |page, flags, mapper, flusher| { Grant::allocated_shared_one_page( frame.get(), diff --git a/src/scheme/sys/iostat.rs b/src/scheme/sys/iostat.rs index 0d6a76fbd5..afdc008a88 100644 --- a/src/scheme/sys/iostat.rs +++ b/src/scheme/sys/iostat.rs @@ -93,23 +93,23 @@ pub fn resource(token: &mut CleanLockToken) -> Result> { let page_count = NonZeroUsize::new(1).unwrap(); let fpath_page = { let addr_space = Arc::clone(context::current().read(token.token()).addr_space()?); - addr_space.acquire_write(token.token().downgrade()).mmap( - &addr_space, - None, - page_count, - MapFlags::PROT_READ | MapFlags::PROT_WRITE, - None, - |page, flags, mapper, flusher| { - let shared = false; - Ok(Grant::zeroed( - PageSpan::new(page, page_count.get()), - flags, - mapper, - flusher, - shared, - )?) - }, - )? + addr_space + .acquire_write(token.token().downgrade()) + .mmap_anywhere( + &addr_space, + page_count, + MapFlags::PROT_READ | MapFlags::PROT_WRITE, + |page, flags, mapper, flusher| { + let shared = false; + Ok(Grant::zeroed( + PageSpan::new(page, page_count.get()), + flags, + mapper, + flusher, + shared, + )?) + }, + )? }; let res = UserSlice::rw(fpath_page.start_address().data(), PAGE_SIZE)