We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 9a915f1 commit f317b0dCopy full SHA for f317b0d
src/page_table.rs
@@ -96,8 +96,15 @@ pub(crate) fn map_segment(
96
for frame in PhysFrame::range_inclusive(start_frame, end_frame) {
97
let offset = frame - start_frame;
98
let page = start_page + offset;
99
- unsafe { map_page(page, frame, page_table_flags, page_table, frame_allocator)? }
100
- .flush();
+ match unsafe {
+ map_page(page, frame, page_table_flags, page_table, frame_allocator)
101
+ } {
102
+ Ok(flusher) => flusher.flush(),
103
+ Err(MapToError::PageAlreadyMapped(to)) if to == frame => {
104
+ // nothing to do, page is already mapped to the correct frame
105
+ }
106
+ Err(err) => return Err(err),
107
108
}
109
110
if mem_size > file_size {
0 commit comments