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
This commit is contained in:
Dominique Martinet
2019-03-07 12:52:58 +09:00
committed by Masamichi Takagi
parent 312b6c171b
commit 21c9e57646

View File

@ -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)) {