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