From c7cdfb06c96d4db0649a3565873fda8a10d11ac2 Mon Sep 17 00:00:00 2001
From: dzwdz
Date: Tue, 21 Sep 2021 16:30:43 +0200
Subject: add `__force` for marking casts across adress spaces

---
 src/kernel/mem/virt.c | 2 +-
 src/kernel/syscalls.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

(limited to 'src/kernel')

diff --git a/src/kernel/mem/virt.c b/src/kernel/mem/virt.c
index 7a38a88..a9450c7 100644
--- a/src/kernel/mem/virt.c
+++ b/src/kernel/mem/virt.c
@@ -42,7 +42,7 @@ bool virt_iter_next(struct virt_iter *iter) {
 	} else {
 		// "iterate" over physical memory
 		// the double cast supresses the warning about changing address spaces
-		iter->frag = (void*)(uintptr_t)iter->_virt;
+		iter->frag = (void* __force)iter->_virt;
 	}
 
 	iter->frag_len    = partial;
diff --git a/src/kernel/syscalls.c b/src/kernel/syscalls.c
index 39cad3a..0ca7867 100644
--- a/src/kernel/syscalls.c
+++ b/src/kernel/syscalls.c
@@ -261,7 +261,7 @@ int _syscall_memflag(void __user *addr, size_t len, int flags) {
 	struct pagedir *pages = process_current->pages;
 	if (flags != MEMFLAG_PRESENT) panic_unimplemented(); // TODO
 
-	addr = (userptr_t)((int)addr & ~PAGE_MASK); // align to page boundary
+	addr = (userptr_t)((int __force)addr & ~PAGE_MASK); // align to page boundary
 	for (; addr < goal; addr += PAGE_SIZE) {
 		if (pagedir_virt2phys(pages, addr, false, false)) {
 			// allocated page, currently a no-op
-- 
cgit v1.2.3