[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Lost] [Patch] kernel2: vmm_kernel_unmap mit nicht alignten Adressen



! kernel2: vmm_kernel_unmap muss auch mit nicht alignten Adressen arbeiten
koennne, da vmm_kernel_automap solche Adressen zurueckliefert
Index: trunk/src/kernel2/src/arch/i386/mm/virt.c
===================================================================
--- trunk.orig/src/kernel2/src/arch/i386/mm/virt.c
+++ trunk/src/kernel2/src/arch/i386/mm/virt.c
@@ -128,6 +128,12 @@ vaddr_t vmm_kernel_automap(paddr_t start
 void vmm_kernel_unmap(vaddr_t start, size_t size) 
 {
     if (use_phys_addr == FALSE) {
+
+        // An Page-Grenzen ausrichten
+        size += ((dword) start % PAGE_SIZE);
+        start = (vaddr_t) ((dword) start & PAGE_MASK);
+
+        // Eigentliches Unmapping ausfuehren
         if (!mmc_unmap(&mmc_current_context(), start, NUM_PAGES(size))) {
             panic("vmm_kernel_unmap(): Konnte 0x%08x (+ 0x%x) nicht freigeben",
                 start, size);