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:
@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user