mcctrl_clear_pte_range: fix zap_page for kernel >= 4.18

zap_vma_ptes no longer returns an error code as of Linux's
27d036e33237e4 ("mm: Remove return value of zap_vma_ptes()"),
where they decided nobody is interested in it....

Just copy the check out of the function.

Change-Id: I2eda0f91ec55a34bba96f45cc3d887bc80132a82
Originally-by: Kagawa Kodai <fj1731iw@aa.jp.fujitsu.com>
This commit is contained in:
Dominique Martinet
2019-01-31 11:01:57 +09:00
parent 9e5472bb94
commit 452d93f14d

View File

@ -2019,18 +2019,27 @@ int mcctrl_clear_pte_range(uintptr_t start, uintptr_t len)
end = vma->vm_end; end = vma->vm_end;
} }
if (addr < end) { if (addr < end) {
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 18, 0) #if LINUX_VERSION_CODE < KERNEL_VERSION(4, 18, 0)
zap_vma_ptes(vma, addr, end-addr);
#else
error = zap_vma_ptes(vma, addr, end-addr); error = zap_vma_ptes(vma, addr, end-addr);
if (error) { if (error) {
mcctrl_zap_page_range(vma, addr, end-addr, NULL); mcctrl_zap_page_range(vma, addr, end-addr,
NULL);
error = 0; error = 0;
} }
if (ret == 0) { if (ret == 0) {
ret = error; ret = error;
} }
#endif #else /* LINUX_VERSION_CODE < KERNEL_VERSION(4, 18, 0) */
if (addr < vma->vm_start ||
addr + end-addr > vma->vm_end ||
!(vma->vm_flags & VM_PFNMAP)) {
mcctrl_zap_page_range(vma, addr, end-addr,
NULL);
}
else {
zap_vma_ptes(vma, addr, end-addr);
}
#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(4, 18, 0) */
} }
addr = end; addr = end;
} }