mirror of
https://github.com/torvalds/linux.git
synced 2026-05-23 22:52:19 +02:00
mm/migrate: revert "mm/migrate: fix wrongly apply write bit after mkdirty on sparc64"
This reverts commit96a9c287e2("mm/migrate: fix wrongly apply write bit after mkdirty on sparc64"). Now that sparc64 mkdirty handling is fixed and no longer sets a PTE/PMD writable that shouldn't be writable, let's revert the temporary fix. The mkdirty mm selftest still passes with this change on sparc64. Note that loongarch handling was fixed in commitbf2f34a506("LoongArch: Set _PAGE_DIRTY only if _PAGE_WRITE is set in {pmd,pte}_mkdirty()"). Link: https://lkml.kernel.org/r/20230411142512.438404-5-david@redhat.com Signed-off-by: David Hildenbrand <david@redhat.com> Cc: Anshuman Khandual <anshuman.khandual@arm.com> Cc: David S. Miller <davem@davemloft.net> Cc: Hugh Dickins <hughd@google.com> Cc: Peter Xu <peterx@redhat.com> Cc: Sam Ravnborg <sam@ravnborg.org> Cc: Shuah Khan <shuah@kernel.org> Cc: Yu Zhao <yuzhao@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
fa2e71a6fc
commit
3c811f7883
|
|
@ -3276,6 +3276,8 @@ void remove_migration_pmd(struct page_vma_mapped_walk *pvmw, struct page *new)
|
|||
pmde = mk_huge_pmd(new, READ_ONCE(vma->vm_page_prot));
|
||||
if (pmd_swp_soft_dirty(*pvmw->pmd))
|
||||
pmde = pmd_mksoft_dirty(pmde);
|
||||
if (is_writable_migration_entry(entry))
|
||||
pmde = maybe_pmd_mkwrite(pmde, vma);
|
||||
if (pmd_swp_uffd_wp(*pvmw->pmd))
|
||||
pmde = pmd_mkuffd_wp(pmde);
|
||||
if (!is_migration_entry_young(entry))
|
||||
|
|
@ -3283,10 +3285,6 @@ void remove_migration_pmd(struct page_vma_mapped_walk *pvmw, struct page *new)
|
|||
/* NOTE: this may contain setting soft-dirty on some archs */
|
||||
if (PageDirty(new) && is_migration_entry_dirty(entry))
|
||||
pmde = pmd_mkdirty(pmde);
|
||||
if (is_writable_migration_entry(entry))
|
||||
pmde = maybe_pmd_mkwrite(pmde, vma);
|
||||
else
|
||||
pmde = pmd_wrprotect(pmde);
|
||||
|
||||
if (PageAnon(new)) {
|
||||
rmap_t rmap_flags = RMAP_COMPOUND;
|
||||
|
|
|
|||
|
|
@ -225,8 +225,6 @@ static bool remove_migration_pte(struct folio *folio,
|
|||
pte = maybe_mkwrite(pte, vma);
|
||||
else if (pte_swp_uffd_wp(*pvmw.pte))
|
||||
pte = pte_mkuffd_wp(pte);
|
||||
else
|
||||
pte = pte_wrprotect(pte);
|
||||
|
||||
if (folio_test_anon(folio) && !is_readable_migration_entry(entry))
|
||||
rmap_flags |= RMAP_EXCLUSIVE;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user