From 21c9e576468aacc1440044a957ef32bd8e3bc056 Mon Sep 17 00:00:00 2001 From: Dominique Martinet Date: Thu, 7 Mar 2019 12:52:58 +0900 Subject: [PATCH] page fault: use cow for private device mappings Private device mappings still need copy-on-write to work, even if there is no page. Change-Id: I96e3e1eea81104f6b09bb7fda1105d9eeb489155 Refs: #1254 --- kernel/process.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel/process.c b/kernel/process.c index 6b826683..f085c8b3 100644 --- a/kernel/process.c +++ b/kernel/process.c @@ -1972,8 +1972,8 @@ retry: /* Copy on write */ if (((range->flag & VR_PRIVATE) || ((reason & PF_PATCH) && !(range->flag & VR_PROT_WRITE))) - && ((!page && phys == NOPHYS) || (page && - (page_is_in_memobj(page) || + && ((!page && ((phys == NOPHYS) || range->memobj)) + || (page && (page_is_in_memobj(page) || page_is_multi_mapped(page))))) { if (!(attr & PTATTR_DIRTY)) {