Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion common/src/level_4_entries.rs
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ impl UsedLevel4Entries {
/// Marks all p4 entries in the range `[address..address+size)` as used.
fn mark_range_as_used(&mut self, address: u64, size: u64) {
let start = VirtAddr::new(address);
let end_inclusive = (start + size) - 1;
let end_inclusive = start + (size - 1);
let start_page = Page::<Size4KiB>::containing_address(start);
let end_page_inclusive = Page::<Size4KiB>::containing_address(end_inclusive);

Expand Down
7 changes: 5 additions & 2 deletions common/src/load_kernel.rs
Original file line number Diff line number Diff line change
Expand Up @@ -504,12 +504,15 @@ where
fn remove_copied_flags(&mut self, elf_file: &ElfFile) -> Result<(), &'static str> {
for program_header in elf_file.program_iter() {
if let Type::Load = program_header.get_type()? {
if program_header.mem_size() == 0 {
continue;
}
let start = self.virtual_address_offset + program_header.virtual_addr();
let end = start + program_header.mem_size();
let end = start + (program_header.mem_size() - 1);
let start = VirtAddr::new(start);
let end = VirtAddr::new(end);
let start_page = Page::containing_address(start);
let end_page = Page::containing_address(end - 1u64);
let end_page = Page::containing_address(end);
for page in Page::<Size4KiB>::range_inclusive(start_page, end_page) {
// Translate the page and get the flags.
let res = self.page_table.translate(page.start_address());
Expand Down
Loading