mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-07 12:25:00 -04:00
Revert "mm: protect against PTE changes done by dup_mmap()"
This reverts commit a9e3a1ab5d.
Reason for revert: remove SPF non upstream code
Bug: 140544941
Test: boot
Change-Id: I912a8891ac6cf3e72c7b7aa27df2922554b31491
Signed-off-by: Martin Liu <liumartin@google.com>
[dereference23: Forward port to msm-5.4]
Signed-off-by: Alexander Winkowski <dereference23@outlook.com>
This commit is contained in:
parent
fb1f97dab8
commit
37d40ca049
1 changed files with 2 additions and 28 deletions
|
|
@ -486,7 +486,7 @@ EXPORT_SYMBOL(free_task);
|
|||
static __latent_entropy int dup_mmap(struct mm_struct *mm,
|
||||
struct mm_struct *oldmm)
|
||||
{
|
||||
struct vm_area_struct *mpnt, *tmp, *prev, **pprev, *last = NULL;
|
||||
struct vm_area_struct *mpnt, *tmp, *prev, **pprev;
|
||||
struct rb_node **rb_link, *rb_parent;
|
||||
int retval;
|
||||
unsigned long charge;
|
||||
|
|
@ -605,18 +605,8 @@ static __latent_entropy int dup_mmap(struct mm_struct *mm,
|
|||
rb_parent = &tmp->vm_rb;
|
||||
|
||||
mm->map_count++;
|
||||
if (!(tmp->vm_flags & VM_WIPEONFORK)) {
|
||||
if (IS_ENABLED(CONFIG_SPECULATIVE_PAGE_FAULT)) {
|
||||
/*
|
||||
* Mark this VMA as changing to prevent the
|
||||
* speculative page fault hanlder to process
|
||||
* it until the TLB are flushed below.
|
||||
*/
|
||||
last = mpnt;
|
||||
vm_write_begin(mpnt);
|
||||
}
|
||||
if (!(tmp->vm_flags & VM_WIPEONFORK))
|
||||
retval = copy_page_range(mm, oldmm, mpnt);
|
||||
}
|
||||
|
||||
if (tmp->vm_ops && tmp->vm_ops->open)
|
||||
tmp->vm_ops->open(tmp);
|
||||
|
|
@ -629,22 +619,6 @@ static __latent_entropy int dup_mmap(struct mm_struct *mm,
|
|||
out:
|
||||
up_write(&mm->mmap_sem);
|
||||
flush_tlb_mm(oldmm);
|
||||
|
||||
if (IS_ENABLED(CONFIG_SPECULATIVE_PAGE_FAULT)) {
|
||||
/*
|
||||
* Since the TLB has been flush, we can safely unmark the
|
||||
* copied VMAs and allows the speculative page fault handler to
|
||||
* process them again.
|
||||
* Walk back the VMA list from the last marked VMA.
|
||||
*/
|
||||
for (; last; last = last->vm_prev) {
|
||||
if (last->vm_flags & VM_DONTCOPY)
|
||||
continue;
|
||||
if (!(last->vm_flags & VM_WIPEONFORK))
|
||||
vm_write_end(last);
|
||||
}
|
||||
}
|
||||
|
||||
up_write(&oldmm->mmap_sem);
|
||||
dup_userfaultfd_complete(&uf);
|
||||
fail_uprobe_end:
|
||||
|
|
|
|||
Loading…
Reference in a new issue