From c7b207f4dc0005b20a156afebbd906f025acbbfe Mon Sep 17 00:00:00 2001 From: 4lDO2 <4lDO2@protonmail.com> Date: Thu, 11 Jun 2020 11:58:58 +0200 Subject: [PATCH] Use #[repr(packed)] with correct align for paging. --- src/arch/x86_64/paging/entry.rs | 1 + src/arch/x86_64/paging/table.rs | 1 + 2 files changed, 2 insertions(+) diff --git a/src/arch/x86_64/paging/entry.rs b/src/arch/x86_64/paging/entry.rs index 3f59f0e..56f9755 100644 --- a/src/arch/x86_64/paging/entry.rs +++ b/src/arch/x86_64/paging/entry.rs @@ -6,6 +6,7 @@ use crate::memory::Frame; use super::PhysicalAddress; /// A page table entry +#[repr(packed(8))] pub struct Entry(u64); bitflags! { diff --git a/src/arch/x86_64/paging/table.rs b/src/arch/x86_64/paging/table.rs index 28f5982..9ebfcef 100644 --- a/src/arch/x86_64/paging/table.rs +++ b/src/arch/x86_64/paging/table.rs @@ -39,6 +39,7 @@ impl HierarchicalLevel for Level2 { type NextLevel = Level1; } +#[repr(packed(4096))] pub struct Table<L: TableLevel> { entries: [Entry; ENTRY_COUNT], level: PhantomData<L>, -- GitLab