From dffc8ec9fc25283b229e6bc7f627d4bb909d0e6c Mon Sep 17 00:00:00 2001 From: 4lDO2 <4lDO2@protonmail.com> Date: Tue, 27 Jun 2023 19:55:46 +0200 Subject: [PATCH] Do not expect PageInfo for PhysMap grants. --- src/context/memory.rs | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/context/memory.rs b/src/context/memory.rs index e7d5a0ba..ffc61415 100644 --- a/src/context/memory.rs +++ b/src/context/memory.rs @@ -777,11 +777,18 @@ impl Grant { }; let frame = Frame::containing_address(phys); - let is_cow = !matches!(self.info.provider, Provider::External { .. }); + let is_cow_opt = match self.info.provider { + Provider::Allocated => Some(true), + Provider::External { .. } => Some(false), + Provider::PhysBorrowed { .. } => None, + Provider::Fmap { .. } => todo!(), + }; - get_page_info(frame) - .expect("allocated frame did not have an associated PageInfo") - .remove_ref(is_cow); + if let Some(is_cow) = is_cow_opt { + get_page_info(frame) + .expect("allocated frame did not have an associated PageInfo") + .remove_ref(is_cow); + } flusher.consume(flush); -- GitLab