diff options
author | Joshua Ashton <joshua@froggi.es> | 2024-02-05 17:26:11 +0000 |
---|---|---|
committer | Joshua Ashton <joshua@froggi.es> | 2024-02-05 17:26:11 +0000 |
commit | 49a9c3e11b34483cb65bbe8f21bd57dce67326c9 (patch) | |
tree | 7ab070a9dbb5085d8c0975ff2201ab8f45bfe5d9 | |
parent | 6b767b0cee32cb1d0fe708d21e9331ea06020cdd (diff) | |
parent | 2da48b862b2806bce4af6321187ca12f53206ee7 (diff) | |
download | linux-49a9c3e11b34483cb65bbe8f21bd57dce67326c9.tar.gz |
Merge branch 'compaction' into 'frog/6.1.52'
Add bug fix for Soft-Dirty bug when compaction happens and fix for CI See merge request jupiter/linux-integration!39
-rw-r--r-- | .gitlab-ci.yml | 2 | ||||
-rw-r--r-- | mm/migrate.c | 8 |
2 files changed, 7 insertions, 3 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 64b3c02e7cc8..9fcec6064edd 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -4,7 +4,7 @@ variables: LINUX_FIRMWARE_URL: "https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git" LINUX_FIRMWARE_DL_DIR: "dl/linux-firmware" ROOTFS_NAME: "stretch.img" - ROOTFS_IMAGE_URL: "https://gitlab.steamos.cloud/api/v4/projects/kernel-research%2Frootfs/jobs/128684/artifacts" + ROOTFS_IMAGE_URL: "https://gitlab.steamos.cloud/api/v4/projects/kernel-research%2Frootfs/jobs/129183/artifacts" GIT_AUTHOR_NAME: "Gitlab-ci" GIT_AUTHOR_EMAIL: "gitlab@gitlab.steamos.cloud" TAG: CI_${CI_PIPELINE_ID}_${CI_COMMIT_SHORT_SHA} diff --git a/mm/migrate.c b/mm/migrate.c index 8d5c0dc618a5..1a5a32a2cb62 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -200,8 +200,6 @@ static bool remove_migration_pte(struct folio *folio, folio_get(folio); pte = mk_pte(new, READ_ONCE(vma->vm_page_prot)); - if (pte_swp_soft_dirty(*pvmw.pte)) - pte = pte_mksoft_dirty(pte); /* * Recheck VMA as permissions can change since migration started @@ -211,6 +209,12 @@ static bool remove_migration_pte(struct folio *folio, pte = pte_mkold(pte); if (folio_test_dirty(folio) && is_migration_entry_dirty(entry)) pte = pte_mkdirty(pte); + + if (pte_swp_soft_dirty(*pvmw.pte)) + pte = pte_mksoft_dirty(pte); + else + pte = pte_clear_soft_dirty(pte); + if (is_writable_migration_entry(entry)) pte = maybe_mkwrite(pte, vma); else if (pte_swp_uffd_wp(*pvmw.pte)) |