|
@@ -389,11 +389,13 @@ static __always_inline ssize_t mfill_atomic_pte(struct mm_struct *dst_mm,
|
|
|
err = mfill_zeropage_pte(dst_mm, dst_pmd,
|
|
|
dst_vma, dst_addr);
|
|
|
} else {
|
|
|
- err = -EINVAL; /* if zeropage is true return -EINVAL */
|
|
|
- if (likely(!zeropage))
|
|
|
+ if (!zeropage)
|
|
|
err = shmem_mcopy_atomic_pte(dst_mm, dst_pmd,
|
|
|
dst_vma, dst_addr,
|
|
|
src_addr, page);
|
|
|
+ else
|
|
|
+ err = shmem_mfill_zeropage_pte(dst_mm, dst_pmd,
|
|
|
+ dst_vma, dst_addr);
|
|
|
}
|
|
|
|
|
|
return err;
|