diff --git a/src/arch/aarch64/mm/virtualmem.rs b/src/arch/aarch64/mm/virtualmem.rs
index 78c96395ce7472671df19fa161c1a4dd9aa7abdb..398edd4f90ffa6cf5aacc1b5a2a2b22cb3a1145e 100644
--- a/src/arch/aarch64/mm/virtualmem.rs
+++ b/src/arch/aarch64/mm/virtualmem.rs
@@ -85,8 +85,8 @@ pub fn allocate_aligned(size: usize, alignment: usize) -> Result<VirtAddr, Alloc
 
 pub fn deallocate(virtual_address: VirtAddr, size: usize) {
 	assert!(
-		virtual_address >= mm::kernel_end_address(),
-		"Virtual address {:#X} is not >= KERNEL_END_ADDRESS",
+		virtual_address >= mm::kernel_end_address() || virtual_address < mm::kernel_start_address(),
+		"Virtual address {:#X} belongs to the kernel",
 		virtual_address
 	);
 	assert!(