[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);