aboutsummaryrefslogtreecommitdiff
path: root/vm/vm_resident.c
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2023-08-14 10:40:11 +0200
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2023-08-14 10:40:51 +0200
commit28c51f7f60281bf3acbefd47e8233ae40de1e463 (patch)
tree8e5709834780fab0a85e909fedc3dc047902974e /vm/vm_resident.c
parent952872cb67bd811991dd558dd4e5d28e7d16b21b (diff)
downloadgnumach-28c51f7f60281bf3acbefd47e8233ae40de1e463.tar.gz
gnumach-28c51f7f60281bf3acbefd47e8233ae40de1e463.tar.bz2
gnumach-28c51f7f60281bf3acbefd47e8233ae40de1e463.zip
vm: Fix ordering of addresses between DMA32 and DIRECTMAP
Diffstat (limited to 'vm/vm_resident.c')
-rw-r--r--vm/vm_resident.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/vm/vm_resident.c b/vm/vm_resident.c
index d4777e70..8fa7c36b 100644
--- a/vm/vm_resident.c
+++ b/vm/vm_resident.c
@@ -777,10 +777,16 @@ vm_page_t vm_page_grab(unsigned flags)
if (flags & VM_PAGE_HIGHMEM)
selector = VM_PAGE_SEL_HIGHMEM;
+#if defined(VM_PAGE_DMA32_LIMIT) && VM_PAGE_DMA32_LIMIT > VM_PAGE_DIRECTMAP_LIMIT
+ else if (flags & VM_PAGE_DMA32)
+ selector = VM_PAGE_SEL_DMA32;
+#endif
else if (flags & VM_PAGE_DIRECTMAP)
selector = VM_PAGE_SEL_DIRECTMAP;
+#if defined(VM_PAGE_DMA32_LIMIT) && VM_PAGE_DMA32_LIMIT <= VM_PAGE_DIRECTMAP_LIMIT
else if (flags & VM_PAGE_DMA32)
selector = VM_PAGE_SEL_DMA32;
+#endif
else
selector = VM_PAGE_SEL_DMA;