The patch titled Subject: mm-fix-list-corruptions-on-shmem-shrinklist-fix has been added to the -mm tree. Its filename is mm-fix-list-corruptions-on-shmem-shrinklist-fix.patch This patch should soon appear at http://ozlabs.org/~akpm/mmots/broken-out/mm-fix-list-corruptions-on-shmem-shrinklist-fix.patch and later at http://ozlabs.org/~akpm/mmotm/broken-out/mm-fix-list-corruptions-on-shmem-shrinklist-fix.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/SubmitChecklist when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> Subject: mm-fix-list-corruptions-on-shmem-shrinklist-fix add comments Cc: <stable@xxxxxxxxxxxxxxx> Cc: Cong Wang <xiyou.wangcong@xxxxxxxxx> Cc: Hugh Dickins <hughd@xxxxxxxxxx> Cc: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx> Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- mm/shmem.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff -puN mm/shmem.c~mm-fix-list-corruptions-on-shmem-shrinklist-fix mm/shmem.c --- a/mm/shmem.c~mm-fix-list-corruptions-on-shmem-shrinklist-fix +++ a/mm/shmem.c @@ -1022,6 +1022,10 @@ static int shmem_setattr(struct dentry * */ if (IS_ENABLED(CONFIG_TRANSPARENT_HUGE_PAGECACHE)) { spin_lock(&sbinfo->shrinklist_lock); + /* + * _careful to defend against unlocked access to + * ->shrink_list in shmem_unused_huge_shrink() + */ if (list_empty_careful(&info->shrinklist)) { list_add_tail(&info->shrinklist, &sbinfo->shrinklist); @@ -1817,6 +1821,10 @@ alloc_nohuge: page = shmem_alloc_and_ac * to shrink under memory pressure. */ spin_lock(&sbinfo->shrinklist_lock); + /* + * _careful to defend against unlocked access to + * ->shrink_list in shmem_unused_huge_shrink() + */ if (list_empty_careful(&info->shrinklist)) { list_add_tail(&info->shrinklist, &sbinfo->shrinklist); _ Patches currently in -mm which might be from akpm@xxxxxxxxxxxxxxxxxxxx are i-need-old-gcc.patch mm-make-tlb_flush_pending-global-fix.patch mm-fix-list-corruptions-on-shmem-shrinklist-fix.patch arm-arch-arm-include-asm-pageh-needs-personalityh.patch ocfs2-old-mle-put-and-release-after-the-function-dlm_add_migration_mle-called-fix.patch ocfs2-dlm-optimization-of-code-while-free-dead-node-locks-checkpatch-fixes.patch mm.patch mm-memory_hotplug-just-build-zonelist-for-new-added-node-fix.patch mm-memory_hotplug-just-build-zonelist-for-new-added-node-fix-fix.patch mm-thp-enable-thp-migration-in-generic-path-fix-fix.patch zsmalloc-zs_page_migrate-skip-unnecessary-loops-but-not-return-ebusy-if-zspage-is-not-inuse-fix.patch treewide-remove-gfp_temporary-allocation-flag-fix.patch treewide-remove-gfp_temporary-allocation-flag-checkpatch-fixes.patch userfaultfd-selftest-exercise-uffdio_copy-zeropage-eexist-fix.patch add-testcases-for-memset16-32-64-fix.patch kernel-reboot-add-devm_register_reboot_notifier-fix.patch linux-next-git-rejects.patch linux-next-rejects.patch kernel-forkc-export-kernel_thread-to-modules.patch slab-leaks3-default-y.patch