message: Paging: Fix unmap
diff: use core::ptr;
  use x86_64::instructions::tlb;
  +use x86_64::structures::paging::mapper::UnmapError;
  use x86_64::structures::paging::{
  Mapper, Page, PageTableIndex, PhysFrame, RecursivePageTable, Size1GiB, Size2MiB, Size4KiB,
  };
  @@ -227,12 +228,29 @@ pub fn unmap<S: PageSize>(virtual_address: VirtAddr, count: usize) {
  count
  );
  - map::<S>(
  - virtual_address,
  - PhysAddr::zero(),
  - count,
  - PageTableEntryFlags::empty(),
  - );
  + let first_page = Page::<S>::containing_address(x86_64::VirtAddr::new(virtual_address.0));
  + let last_page = first_page + count as u64;
  + let range = Page::range(first_page, last_page);
  +
  + for page in range {
  + match S::SIZE {
  + Size4KiB::SIZE => {
  + let page = Page::<Size4KiB>::from_start_address(page.start_address()).unwrap();
  + unsafe {
  + match recursive_page_table().unmap(page) {
  + Ok((_frame, flush)) => flush.flush(),
  + // FIXME: Some sentinel pages around stacks are supposed to be unmapped.
  + // We should handle this case there instead of here.
  + Err(UnmapError::PageNotMapped) => {
  + debug!("Tried to unmap {page:?}, which was not mapped.")
  + }
  + Err(err) => panic!("{err:?}"),
  + }
  + }
  + }
  + _ => unimplemented!(),
  + }
  + }
  }
  #[cfg(feature = "acpi")]
  