* + mm-slub-fix-conversion-of-freelist_corrupted.patch added to -mm tree
@ 2020-08-24 18:21 akpm
0 siblings, 0 replies; 2+ messages in thread
From: akpm @ 2020-08-24 18:21 UTC (permalink / raw)
To: cl, dongli.zhang, erosca, iamjoonsoo.kim, joe.jin, mm-commits,
penberg, rientjes, stable
The patch titled
Subject: mm: slub: fix conversion of freelist_corrupted()
has been added to the -mm tree. Its filename is
mm-slub-fix-conversion-of-freelist_corrupted.patch
This patch should soon appear at
https://ozlabs.org/~akpm/mmots/broken-out/mm-slub-fix-conversion-of-freelist_corrupted.patch
and later at
https://ozlabs.org/~akpm/mmotm/broken-out/mm-slub-fix-conversion-of-freelist_corrupted.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/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Eugeniu Rosca <erosca@de.adit-jv.com>
Subject: mm: slub: fix conversion of freelist_corrupted()
Commit 52f23478081ae0 ("mm/slub.c: fix corrupted freechain in
deactivate_slab()") suffered an update when picked up from LKML [1].
Specifically, relocating 'freelist = NULL' into 'freelist_corrupted()'
created a no-op statement. Fix it by sticking to the behavior intended in
the original patch [1]. In addition, make freelist_corrupted() immune to
passing NULL instead of &freelist.
The issue has been spotted via static analysis and code review.
[1] https://lore.kernel.org/linux-mm/20200331031450.12182-1-dongli.zhang@oracle.com/
Link: https://lkml.kernel.org/r/20200824130643.10291-1-erosca@de.adit-jv.com
Fixes: 52f23478081ae0 ("mm/slub.c: fix corrupted freechain in deactivate_slab()")
Signed-off-by: Eugeniu Rosca <erosca@de.adit-jv.com>
Cc: Dongli Zhang <dongli.zhang@oracle.com>
Cc: Joe Jin <joe.jin@oracle.com>
Cc: Christoph Lameter <cl@linux.com>
Cc: Pekka Enberg <penberg@kernel.org>
Cc: David Rientjes <rientjes@google.com>
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
mm/slub.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
--- a/mm/slub.c~mm-slub-fix-conversion-of-freelist_corrupted
+++ a/mm/slub.c
@@ -672,12 +672,12 @@ static void slab_fix(struct kmem_cache *
}
static bool freelist_corrupted(struct kmem_cache *s, struct page *page,
- void *freelist, void *nextfree)
+ void **freelist, void *nextfree)
{
if ((s->flags & SLAB_CONSISTENCY_CHECKS) &&
- !check_valid_pointer(s, page, nextfree)) {
- object_err(s, page, freelist, "Freechain corrupt");
- freelist = NULL;
+ !check_valid_pointer(s, page, nextfree) && freelist) {
+ object_err(s, page, *freelist, "Freechain corrupt");
+ *freelist = NULL;
slab_fix(s, "Isolate corrupted freechain");
return true;
}
@@ -1494,7 +1494,7 @@ static inline void dec_slabs_node(struct
int objects) {}
static bool freelist_corrupted(struct kmem_cache *s, struct page *page,
- void *freelist, void *nextfree)
+ void **freelist, void *nextfree)
{
return false;
}
@@ -2184,7 +2184,7 @@ static void deactivate_slab(struct kmem_
* 'freelist' is already corrupted. So isolate all objects
* starting at 'freelist'.
*/
- if (freelist_corrupted(s, page, freelist, nextfree))
+ if (freelist_corrupted(s, page, &freelist, nextfree))
break;
do {
_
Patches currently in -mm which might be from erosca@de.adit-jv.com are
mm-slub-fix-conversion-of-freelist_corrupted.patch
^ permalink raw reply [flat|nested] 2+ messages in thread
* incoming
@ 2020-08-07 6:16 Andrew Morton
2020-08-11 20:49 ` + mm-slub-fix-conversion-of-freelist_corrupted.patch added to -mm tree Andrew Morton
0 siblings, 1 reply; 2+ messages in thread
From: Andrew Morton @ 2020-08-07 6:16 UTC (permalink / raw)
To: Linus Torvalds; +Cc: mm-commits, linux-mm
- A few MM hotfixes
- kthread, tools, scripts, ntfs and ocfs2
- Some of MM
163 patches, based on d6efb3ac3e6c19ab722b28bdb9252bae0b9676b6.
Subsystems affected by this patch series:
mm/pagemap
mm/hofixes
mm/pagealloc
kthread
tools
scripts
ntfs
ocfs2
mm/slab-generic
mm/slab
mm/slub
mm/kcsan
mm/debug
mm/pagecache
mm/gup
mm/swap
mm/shmem
mm/memcg
mm/pagemap
mm/mremap
mm/mincore
mm/sparsemem
mm/vmalloc
mm/kasan
mm/pagealloc
mm/hugetlb
mm/vmscan
Subsystem: mm/pagemap
Yang Shi <yang.shi@linux.alibaba.com>:
mm/memory.c: avoid access flag update TLB flush for retried page fault
Subsystem: mm/hofixes
Ralph Campbell <rcampbell@nvidia.com>:
mm/migrate: fix migrate_pgmap_owner w/o CONFIG_MMU_NOTIFIER
Subsystem: mm/pagealloc
David Hildenbrand <david@redhat.com>:
mm/shuffle: don't move pages between zones and don't read garbage memmaps
Subsystem: kthread
Peter Zijlstra <peterz@infradead.org>:
mm: fix kthread_use_mm() vs TLB invalidate
Ilias Stamatis <stamatis.iliass@gmail.com>:
kthread: remove incorrect comment in kthread_create_on_cpu()
Subsystem: tools
"Alexander A. Klimov" <grandmaster@al2klimov.de>:
tools/: replace HTTP links with HTTPS ones
Gaurav Singh <gaurav1086@gmail.com>:
tools/testing/selftests/cgroup/cgroup_util.c: cg_read_strcmp: fix null pointer dereference
Subsystem: scripts
Jialu Xu <xujialu@vimux.org>:
scripts/tags.sh: collect compiled source precisely
Nikolay Borisov <nborisov@suse.com>:
scripts/bloat-o-meter: Support comparing library archives
Konstantin Khlebnikov <khlebnikov@yandex-team.ru>:
scripts/decode_stacktrace.sh: skip missing symbols
scripts/decode_stacktrace.sh: guess basepath if not specified
scripts/decode_stacktrace.sh: guess path to modules
scripts/decode_stacktrace.sh: guess path to vmlinux by release name
Joe Perches <joe@perches.com>:
const_structs.checkpatch: add regulator_ops
Colin Ian King <colin.king@canonical.com>:
scripts/spelling.txt: add more spellings to spelling.txt
Subsystem: ntfs
Luca Stefani <luca.stefani.ge1@gmail.com>:
ntfs: fix ntfs_test_inode and ntfs_init_locked_inode function type
Subsystem: ocfs2
Gang He <ghe@suse.com>:
ocfs2: fix remounting needed after setfacl command
Randy Dunlap <rdunlap@infradead.org>:
ocfs2: suballoc.h: delete a duplicated word
Junxiao Bi <junxiao.bi@oracle.com>:
ocfs2: change slot number type s16 to u16
"Alexander A. Klimov" <grandmaster@al2klimov.de>:
ocfs2: replace HTTP links with HTTPS ones
Pavel Machek <pavel@ucw.cz>:
ocfs2: fix unbalanced locking
Subsystem: mm/slab-generic
Waiman Long <longman@redhat.com>:
mm, treewide: rename kzfree() to kfree_sensitive()
William Kucharski <william.kucharski@oracle.com>:
mm: ksize() should silently accept a NULL pointer
Subsystem: mm/slab
Kees Cook <keescook@chromium.org>:
Patch series "mm: Expand CONFIG_SLAB_FREELIST_HARDENED to include SLAB":
mm/slab: expand CONFIG_SLAB_FREELIST_HARDENED to include SLAB
mm/slab: add naive detection of double free
Long Li <lonuxli.64@gmail.com>:
mm, slab: check GFP_SLAB_BUG_MASK before alloc_pages in kmalloc_order
Xiao Yang <yangx.jy@cn.fujitsu.com>:
mm/slab.c: update outdated kmem_list3 in a comment
Subsystem: mm/slub
Vlastimil Babka <vbabka@suse.cz>:
Patch series "slub_debug fixes and improvements":
mm, slub: extend slub_debug syntax for multiple blocks
mm, slub: make some slub_debug related attributes read-only
mm, slub: remove runtime allocation order changes
mm, slub: make remaining slub_debug related attributes read-only
mm, slub: make reclaim_account attribute read-only
mm, slub: introduce static key for slub_debug()
mm, slub: introduce kmem_cache_debug_flags()
mm, slub: extend checks guarded by slub_debug static key
mm, slab/slub: move and improve cache_from_obj()
mm, slab/slub: improve error reporting and overhead of cache_from_obj()
Sebastian Andrzej Siewior <bigeasy@linutronix.de>:
mm/slub.c: drop lockdep_assert_held() from put_map()
Subsystem: mm/kcsan
Marco Elver <elver@google.com>:
mm, kcsan: instrument SLAB/SLUB free with "ASSERT_EXCLUSIVE_ACCESS"
Subsystem: mm/debug
Anshuman Khandual <anshuman.khandual@arm.com>:
Patch series "mm/debug_vm_pgtable: Add some more tests", v5:
mm/debug_vm_pgtable: add tests validating arch helpers for core MM features
mm/debug_vm_pgtable: add tests validating advanced arch page table helpers
mm/debug_vm_pgtable: add debug prints for individual tests
Documentation/mm: add descriptions for arch page table helpers
"Matthew Wilcox (Oracle)" <willy@infradead.org>:
Patch series "Improvements for dump_page()", v2:
mm/debug: handle page->mapping better in dump_page
mm/debug: dump compound page information on a second line
mm/debug: print head flags in dump_page
mm/debug: switch dump_page to get_kernel_nofault
mm/debug: print the inode number in dump_page
mm/debug: print hashed address of struct page
John Hubbard <jhubbard@nvidia.com>:
mm, dump_page: do not crash with bad compound_mapcount()
Subsystem: mm/pagecache
Yang Shi <yang.shi@linux.alibaba.com>:
mm: filemap: clear idle flag for writes
mm: filemap: add missing FGP_ flags in kerneldoc comment for pagecache_get_page
Subsystem: mm/gup
Tang Yizhou <tangyizhou@huawei.com>:
mm/gup.c: fix the comment of return value for populate_vma_page_range()
Subsystem: mm/swap
Zhen Lei <thunder.leizhen@huawei.com>:
Patch series "clean up some functions in mm/swap_slots.c":
mm/swap_slots.c: simplify alloc_swap_slot_cache()
mm/swap_slots.c: simplify enable_swap_slots_cache()
mm/swap_slots.c: remove redundant check for swap_slot_cache_initialized
Krzysztof Kozlowski <krzk@kernel.org>:
mm: swap: fix kerneldoc of swap_vma_readahead()
Xianting Tian <xianting_tian@126.com>:
mm/page_io.c: use blk_io_schedule() for avoiding task hung in sync io
Subsystem: mm/shmem
Chris Down <chris@chrisdown.name>:
Patch series "tmpfs: inode: Reduce risk of inum overflow", v7:
tmpfs: per-superblock i_ino support
tmpfs: support 64-bit inums per-sb
Subsystem: mm/memcg
Roman Gushchin <guro@fb.com>:
mm: kmem: make memcg_kmem_enabled() irreversible
Patch series "The new cgroup slab memory controller", v7:
mm: memcg: factor out memcg- and lruvec-level changes out of __mod_lruvec_state()
mm: memcg: prepare for byte-sized vmstat items
mm: memcg: convert vmstat slab counters to bytes
mm: slub: implement SLUB version of obj_to_index()
Johannes Weiner <hannes@cmpxchg.org>:
mm: memcontrol: decouple reference counting from page accounting
Roman Gushchin <guro@fb.com>:
mm: memcg/slab: obj_cgroup API
mm: memcg/slab: allocate obj_cgroups for non-root slab pages
mm: memcg/slab: save obj_cgroup for non-root slab objects
mm: memcg/slab: charge individual slab objects instead of pages
mm: memcg/slab: deprecate memory.kmem.slabinfo
mm: memcg/slab: move memcg_kmem_bypass() to memcontrol.h
mm: memcg/slab: use a single set of kmem_caches for all accounted allocations
mm: memcg/slab: simplify memcg cache creation
mm: memcg/slab: remove memcg_kmem_get_cache()
mm: memcg/slab: deprecate slab_root_caches
mm: memcg/slab: remove redundant check in memcg_accumulate_slabinfo()
mm: memcg/slab: use a single set of kmem_caches for all allocations
kselftests: cgroup: add kernel memory accounting tests
tools/cgroup: add memcg_slabinfo.py tool
Shakeel Butt <shakeelb@google.com>:
mm: memcontrol: account kernel stack per node
Roman Gushchin <guro@fb.com>:
mm: memcg/slab: remove unused argument by charge_slab_page()
mm: slab: rename (un)charge_slab_page() to (un)account_slab_page()
mm: kmem: switch to static_branch_likely() in memcg_kmem_enabled()
mm: memcontrol: avoid workload stalls when lowering memory.high
Chris Down <chris@chrisdown.name>:
Patch series "mm, memcg: reclaim harder before high throttling", v2:
mm, memcg: reclaim more aggressively before high allocator throttling
mm, memcg: unify reclaim retry limits with page allocator
Yafang Shao <laoar.shao@gmail.com>:
Patch series "mm, memcg: memory.{low,min} reclaim fix & cleanup", v4:
mm, memcg: avoid stale protection values when cgroup is above protection
Chris Down <chris@chrisdown.name>:
mm, memcg: decouple e{low,min} state mutations from protection checks
Yafang Shao <laoar.shao@gmail.com>:
memcg, oom: check memcg margin for parallel oom
Johannes Weiner <hannes@cmpxchg.org>:
mm: memcontrol: restore proper dirty throttling when memory.high changes
mm: memcontrol: don't count limit-setting reclaim as memory pressure
Michal Koutný <mkoutny@suse.com>:
mm/page_counter.c: fix protection usage propagation
Subsystem: mm/pagemap
Ralph Campbell <rcampbell@nvidia.com>:
mm: remove redundant check non_swap_entry()
Alex Zhang <zhangalex@google.com>:
mm/memory.c: make remap_pfn_range() reject unaligned addr
Mike Rapoport <rppt@linux.ibm.com>:
Patch series "mm: cleanup usage of <asm/pgalloc.h>":
mm: remove unneeded includes of <asm/pgalloc.h>
opeinrisc: switch to generic version of pte allocation
xtensa: switch to generic version of pte allocation
asm-generic: pgalloc: provide generic pmd_alloc_one() and pmd_free_one()
asm-generic: pgalloc: provide generic pud_alloc_one() and pud_free_one()
asm-generic: pgalloc: provide generic pgd_free()
mm: move lib/ioremap.c to mm/
Joerg Roedel <jroedel@suse.de>:
mm: move p?d_alloc_track to separate header file
Zhen Lei <thunder.leizhen@huawei.com>:
mm/mmap: optimize a branch judgment in ksys_mmap_pgoff()
Feng Tang <feng.tang@intel.com>:
Patch series "make vm_committed_as_batch aware of vm overcommit policy", v6:
proc/meminfo: avoid open coded reading of vm_committed_as
mm/util.c: make vm_memory_committed() more accurate
percpu_counter: add percpu_counter_sync()
mm: adjust vm_committed_as_batch according to vm overcommit policy
Anshuman Khandual <anshuman.khandual@arm.com>:
Patch series "arm64: Enable vmemmap mapping from device memory", v4:
mm/sparsemem: enable vmem_altmap support in vmemmap_populate_basepages()
mm/sparsemem: enable vmem_altmap support in vmemmap_alloc_block_buf()
arm64/mm: enable vmem_altmap support for vmemmap mappings
Miaohe Lin <linmiaohe@huawei.com>:
mm: mmap: merge vma after call_mmap() if possible
Peter Collingbourne <pcc@google.com>:
mm: remove unnecessary wrapper function do_mmap_pgoff()
Subsystem: mm/mremap
Wei Yang <richard.weiyang@linux.alibaba.com>:
Patch series "mm/mremap: cleanup move_page_tables() a little", v5:
mm/mremap: it is sure to have enough space when extent meets requirement
mm/mremap: calculate extent in one place
mm/mremap: start addresses are properly aligned
Subsystem: mm/mincore
Ricardo Cañuelo <ricardo.canuelo@collabora.com>:
selftests: add mincore() tests
Subsystem: mm/sparsemem
Wei Yang <richard.weiyang@linux.alibaba.com>:
mm/sparse: never partially remove memmap for early section
mm/sparse: only sub-section aligned range would be populated
Mike Rapoport <rppt@linux.ibm.com>:
mm/sparse: cleanup the code surrounding memory_present()
Subsystem: mm/vmalloc
"Matthew Wilcox (Oracle)" <willy@infradead.org>:
vmalloc: convert to XArray
"Uladzislau Rezki (Sony)" <urezki@gmail.com>:
mm/vmalloc: simplify merge_or_add_vmap_area()
mm/vmalloc: simplify augment_tree_propagate_check()
mm/vmalloc: switch to "propagate()" callback
mm/vmalloc: update the header about KVA rework
Mike Rapoport <rppt@linux.ibm.com>:
mm: vmalloc: remove redundant assignment in unmap_kernel_range_noflush()
"Uladzislau Rezki (Sony)" <urezki@gmail.com>:
mm/vmalloc.c: remove BUG() from the find_va_links()
Subsystem: mm/kasan
Marco Elver <elver@google.com>:
kasan: improve and simplify Kconfig.kasan
kasan: update required compiler versions in documentation
Walter Wu <walter-zh.wu@mediatek.com>:
Patch series "kasan: memorize and print call_rcu stack", v8:
rcu: kasan: record and print call_rcu() call stack
kasan: record and print the free track
kasan: add tests for call_rcu stack recording
kasan: update documentation for generic kasan
Vincenzo Frascino <vincenzo.frascino@arm.com>:
kasan: remove kasan_unpoison_stack_above_sp_to()
Walter Wu <walter-zh.wu@mediatek.com>:
lib/test_kasan.c: fix KASAN unit tests for tag-based KASAN
Andrey Konovalov <andreyknvl@google.com>:
Patch series "kasan: support stack instrumentation for tag-based mode", v2:
kasan: don't tag stacks allocated with pagealloc
efi: provide empty efi_enter_virtual_mode implementation
kasan, arm64: don't instrument functions that enable kasan
kasan: allow enabling stack tagging for tag-based mode
kasan: adjust kasan_stack_oob for tag-based mode
Subsystem: mm/pagealloc
Vlastimil Babka <vbabka@suse.cz>:
mm, page_alloc: use unlikely() in task_capc()
Jaewon Kim <jaewon31.kim@samsung.com>:
page_alloc: consider highatomic reserve in watermark fast
Charan Teja Reddy <charante@codeaurora.org>:
mm, page_alloc: skip ->waternark_boost for atomic order-0 allocations
David Hildenbrand <david@redhat.com>:
mm: remove vm_total_pages
mm/page_alloc: remove nr_free_pagecache_pages()
mm/memory_hotplug: document why shuffle_zone() is relevant
mm/shuffle: remove dynamic reconfiguration
Wei Yang <richard.weiyang@linux.alibaba.com>:
mm/page_alloc.c: replace the definition of NR_MIGRATETYPE_BITS with PB_migratetype_bits
mm/page_alloc.c: extract the common part in pfn_to_bitidx()
mm/page_alloc.c: simplify pageblock bitmap access
mm/page_alloc.c: remove unnecessary end_bitidx for [set|get]_pfnblock_flags_mask()
Qian Cai <cai@lca.pw>:
mm/page_alloc: silence a KASAN false positive
Wei Yang <richard.weiyang@linux.alibaba.com>:
mm/page_alloc: fallbacks at most has 3 elements
Muchun Song <songmuchun@bytedance.com>:
mm/page_alloc.c: skip setting nodemask when we are in interrupt
Joonsoo Kim <iamjoonsoo.kim@lge.com>:
mm/page_alloc: fix memalloc_nocma_{save/restore} APIs
Subsystem: mm/hugetlb
"Alexander A. Klimov" <grandmaster@al2klimov.de>:
mm: thp: replace HTTP links with HTTPS ones
Peter Xu <peterx@redhat.com>:
mm/hugetlb: fix calculation of adjust_range_if_pmd_sharing_possible
Hugh Dickins <hughd@google.com>:
khugepaged: collapse_pte_mapped_thp() flush the right range
khugepaged: collapse_pte_mapped_thp() protect the pmd lock
khugepaged: retract_page_tables() remember to test exit
khugepaged: khugepaged_test_exit() check mmget_still_valid()
Subsystem: mm/vmscan
dylan-meiners <spacct.spacct@gmail.com>:
mm/vmscan.c: fix typo
Shakeel Butt <shakeelb@google.com>:
mm: vmscan: consistent update to pgrefill
Documentation/admin-guide/kernel-parameters.txt | 2
Documentation/dev-tools/kasan.rst | 10
Documentation/filesystems/dlmfs.rst | 2
Documentation/filesystems/ocfs2.rst | 2
Documentation/filesystems/tmpfs.rst | 18
Documentation/vm/arch_pgtable_helpers.rst | 258 +++++
Documentation/vm/memory-model.rst | 9
Documentation/vm/slub.rst | 51 -
arch/alpha/include/asm/pgalloc.h | 21
arch/alpha/include/asm/tlbflush.h | 1
arch/alpha/kernel/core_irongate.c | 1
arch/alpha/kernel/core_marvel.c | 1
arch/alpha/kernel/core_titan.c | 1
arch/alpha/kernel/machvec_impl.h | 2
arch/alpha/kernel/smp.c | 1
arch/alpha/mm/numa.c | 1
arch/arc/mm/fault.c | 1
arch/arc/mm/init.c | 1
arch/arm/include/asm/pgalloc.h | 12
arch/arm/include/asm/tlb.h | 1
arch/arm/kernel/machine_kexec.c | 1
arch/arm/kernel/smp.c | 1
arch/arm/kernel/suspend.c | 1
arch/arm/mach-omap2/omap-mpuss-lowpower.c | 1
arch/arm/mm/hugetlbpage.c | 1
arch/arm/mm/init.c | 9
arch/arm/mm/mmu.c | 1
arch/arm64/include/asm/pgalloc.h | 39
arch/arm64/kernel/setup.c | 2
arch/arm64/kernel/smp.c | 1
arch/arm64/mm/hugetlbpage.c | 1
arch/arm64/mm/init.c | 6
arch/arm64/mm/ioremap.c | 1
arch/arm64/mm/mmu.c | 63 -
arch/csky/include/asm/pgalloc.h | 7
arch/csky/kernel/smp.c | 1
arch/hexagon/include/asm/pgalloc.h | 7
arch/ia64/include/asm/pgalloc.h | 24
arch/ia64/include/asm/tlb.h | 1
arch/ia64/kernel/process.c | 1
arch/ia64/kernel/smp.c | 1
arch/ia64/kernel/smpboot.c | 1
arch/ia64/mm/contig.c | 1
arch/ia64/mm/discontig.c | 4
arch/ia64/mm/hugetlbpage.c | 1
arch/ia64/mm/tlb.c | 1
arch/m68k/include/asm/mmu_context.h | 2
arch/m68k/include/asm/sun3_pgalloc.h | 7
arch/m68k/kernel/dma.c | 2
arch/m68k/kernel/traps.c | 3
arch/m68k/mm/cache.c | 2
arch/m68k/mm/fault.c | 1
arch/m68k/mm/kmap.c | 2
arch/m68k/mm/mcfmmu.c | 1
arch/m68k/mm/memory.c | 1
arch/m68k/sun3x/dvma.c | 2
arch/microblaze/include/asm/pgalloc.h | 6
arch/microblaze/include/asm/tlbflush.h | 1
arch/microblaze/kernel/process.c | 1
arch/microblaze/kernel/signal.c | 1
arch/microblaze/mm/init.c | 3
arch/mips/include/asm/pgalloc.h | 19
arch/mips/kernel/setup.c | 8
arch/mips/loongson64/numa.c | 1
arch/mips/sgi-ip27/ip27-memory.c | 2
arch/mips/sgi-ip32/ip32-memory.c | 1
arch/nds32/mm/mm-nds32.c | 2
arch/nios2/include/asm/pgalloc.h | 7
arch/openrisc/include/asm/pgalloc.h | 33
arch/openrisc/include/asm/tlbflush.h | 1
arch/openrisc/kernel/or32_ksyms.c | 1
arch/parisc/include/asm/mmu_context.h | 1
arch/parisc/include/asm/pgalloc.h | 12
arch/parisc/kernel/cache.c | 1
arch/parisc/kernel/pci-dma.c | 1
arch/parisc/kernel/process.c | 1
arch/parisc/kernel/signal.c | 1
arch/parisc/kernel/smp.c | 1
arch/parisc/mm/hugetlbpage.c | 1
arch/parisc/mm/init.c | 5
arch/parisc/mm/ioremap.c | 2
arch/powerpc/include/asm/tlb.h | 1
arch/powerpc/mm/book3s64/hash_hugetlbpage.c | 1
arch/powerpc/mm/book3s64/hash_pgtable.c | 1
arch/powerpc/mm/book3s64/hash_tlb.c | 1
arch/powerpc/mm/book3s64/radix_hugetlbpage.c | 1
arch/powerpc/mm/init_32.c | 1
arch/powerpc/mm/init_64.c | 4
arch/powerpc/mm/kasan/8xx.c | 1
arch/powerpc/mm/kasan/book3s_32.c | 1
arch/powerpc/mm/mem.c | 3
arch/powerpc/mm/nohash/40x.c | 1
arch/powerpc/mm/nohash/8xx.c | 1
arch/powerpc/mm/nohash/fsl_booke.c | 1
arch/powerpc/mm/nohash/kaslr_booke.c | 1
arch/powerpc/mm/nohash/tlb.c | 1
arch/powerpc/mm/numa.c | 1
arch/powerpc/mm/pgtable.c | 1
arch/powerpc/mm/pgtable_64.c | 1
arch/powerpc/mm/ptdump/hashpagetable.c | 2
arch/powerpc/mm/ptdump/ptdump.c | 1
arch/powerpc/platforms/pseries/cmm.c | 1
arch/riscv/include/asm/pgalloc.h | 18
arch/riscv/mm/fault.c | 1
arch/riscv/mm/init.c | 3
arch/s390/crypto/prng.c | 4
arch/s390/include/asm/tlb.h | 1
arch/s390/include/asm/tlbflush.h | 1
arch/s390/kernel/machine_kexec.c | 1
arch/s390/kernel/ptrace.c | 1
arch/s390/kvm/diag.c | 1
arch/s390/kvm/priv.c | 1
arch/s390/kvm/pv.c | 1
arch/s390/mm/cmm.c | 1
arch/s390/mm/init.c | 1
arch/s390/mm/mmap.c | 1
arch/s390/mm/pgtable.c | 1
arch/sh/include/asm/pgalloc.h | 4
arch/sh/kernel/idle.c | 1
arch/sh/kernel/machine_kexec.c | 1
arch/sh/mm/cache-sh3.c | 1
arch/sh/mm/cache-sh7705.c | 1
arch/sh/mm/hugetlbpage.c | 1
arch/sh/mm/init.c | 7
arch/sh/mm/ioremap_fixed.c | 1
arch/sh/mm/numa.c | 3
arch/sh/mm/tlb-sh3.c | 1
arch/sparc/include/asm/ide.h | 1
arch/sparc/include/asm/tlb_64.h | 1
arch/sparc/kernel/leon_smp.c | 1
arch/sparc/kernel/process_32.c | 1
arch/sparc/kernel/signal_32.c | 1
arch/sparc/kernel/smp_32.c | 1
arch/sparc/kernel/smp_64.c | 1
arch/sparc/kernel/sun4m_irq.c | 1
arch/sparc/mm/highmem.c | 1
arch/sparc/mm/init_64.c | 1
arch/sparc/mm/io-unit.c | 1
arch/sparc/mm/iommu.c | 1
arch/sparc/mm/tlb.c | 1
arch/um/include/asm/pgalloc.h | 9
arch/um/include/asm/pgtable-3level.h | 3
arch/um/kernel/mem.c | 17
arch/x86/ia32/ia32_aout.c | 1
arch/x86/include/asm/mmu_context.h | 1
arch/x86/include/asm/pgalloc.h | 42
arch/x86/kernel/alternative.c | 1
arch/x86/kernel/apic/apic.c | 1
arch/x86/kernel/mpparse.c | 1
arch/x86/kernel/traps.c | 1
arch/x86/mm/fault.c | 1
arch/x86/mm/hugetlbpage.c | 1
arch/x86/mm/init_32.c | 2
arch/x86/mm/init_64.c | 12
arch/x86/mm/kaslr.c | 1
arch/x86/mm/pgtable_32.c | 1
arch/x86/mm/pti.c | 1
arch/x86/platform/uv/bios_uv.c | 1
arch/x86/power/hibernate.c | 2
arch/xtensa/include/asm/pgalloc.h | 46
arch/xtensa/kernel/xtensa_ksyms.c | 1
arch/xtensa/mm/cache.c | 1
arch/xtensa/mm/fault.c | 1
crypto/adiantum.c | 2
crypto/ahash.c | 4
crypto/api.c | 2
crypto/asymmetric_keys/verify_pefile.c | 4
crypto/deflate.c | 2
crypto/drbg.c | 10
crypto/ecc.c | 8
crypto/ecdh.c | 2
crypto/gcm.c | 2
crypto/gf128mul.c | 4
crypto/jitterentropy-kcapi.c | 2
crypto/rng.c | 2
crypto/rsa-pkcs1pad.c | 6
crypto/seqiv.c | 2
crypto/shash.c | 2
crypto/skcipher.c | 2
crypto/testmgr.c | 6
crypto/zstd.c | 2
drivers/base/node.c | 10
drivers/block/xen-blkback/common.h | 1
drivers/crypto/allwinner/sun8i-ce/sun8i-ce-cipher.c | 2
drivers/crypto/allwinner/sun8i-ss/sun8i-ss-cipher.c | 2
drivers/crypto/amlogic/amlogic-gxl-cipher.c | 4
drivers/crypto/atmel-ecc.c | 2
drivers/crypto/caam/caampkc.c | 28
drivers/crypto/cavium/cpt/cptvf_main.c | 6
drivers/crypto/cavium/cpt/cptvf_reqmanager.c | 12
drivers/crypto/cavium/nitrox/nitrox_lib.c | 4
drivers/crypto/cavium/zip/zip_crypto.c | 6
drivers/crypto/ccp/ccp-crypto-rsa.c | 6
drivers/crypto/ccree/cc_aead.c | 4
drivers/crypto/ccree/cc_buffer_mgr.c | 4
drivers/crypto/ccree/cc_cipher.c | 6
drivers/crypto/ccree/cc_hash.c | 8
drivers/crypto/ccree/cc_request_mgr.c | 2
drivers/crypto/marvell/cesa/hash.c | 2
drivers/crypto/marvell/octeontx/otx_cptvf_main.c | 6
drivers/crypto/marvell/octeontx/otx_cptvf_reqmgr.h | 2
drivers/crypto/nx/nx.c | 4
drivers/crypto/virtio/virtio_crypto_algs.c | 12
drivers/crypto/virtio/virtio_crypto_core.c | 2
drivers/iommu/ipmmu-vmsa.c | 1
drivers/md/dm-crypt.c | 32
drivers/md/dm-integrity.c | 6
drivers/misc/ibmvmc.c | 6
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c | 2
drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c | 6
drivers/net/ppp/ppp_mppe.c | 6
drivers/net/wireguard/noise.c | 4
drivers/net/wireguard/peer.c | 2
drivers/net/wireless/intel/iwlwifi/pcie/rx.c | 2
drivers/net/wireless/intel/iwlwifi/pcie/tx-gen2.c | 6
drivers/net/wireless/intel/iwlwifi/pcie/tx.c | 6
drivers/net/wireless/intersil/orinoco/wext.c | 4
drivers/s390/crypto/ap_bus.h | 4
drivers/staging/ks7010/ks_hostif.c | 2
drivers/staging/rtl8723bs/core/rtw_security.c | 2
drivers/staging/wlan-ng/p80211netdev.c | 2
drivers/target/iscsi/iscsi_target_auth.c | 2
drivers/xen/balloon.c | 1
drivers/xen/privcmd.c | 1
fs/Kconfig | 21
fs/aio.c | 6
fs/binfmt_elf_fdpic.c | 1
fs/cifs/cifsencrypt.c | 2
fs/cifs/connect.c | 10
fs/cifs/dfs_cache.c | 2
fs/cifs/misc.c | 8
fs/crypto/inline_crypt.c | 5
fs/crypto/keyring.c | 6
fs/crypto/keysetup_v1.c | 4
fs/ecryptfs/keystore.c | 4
fs/ecryptfs/messaging.c | 2
fs/hugetlbfs/inode.c | 2
fs/ntfs/dir.c | 2
fs/ntfs/inode.c | 27
fs/ntfs/inode.h | 4
fs/ntfs/mft.c | 4
fs/ocfs2/Kconfig | 6
fs/ocfs2/acl.c | 2
fs/ocfs2/blockcheck.c | 2
fs/ocfs2/dlmglue.c | 8
fs/ocfs2/ocfs2.h | 4
fs/ocfs2/suballoc.c | 4
fs/ocfs2/suballoc.h | 2
fs/ocfs2/super.c | 4
fs/proc/meminfo.c | 10
include/asm-generic/pgalloc.h | 80 +
include/asm-generic/tlb.h | 1
include/crypto/aead.h | 2
include/crypto/akcipher.h | 2
include/crypto/gf128mul.h | 2
include/crypto/hash.h | 2
include/crypto/internal/acompress.h | 2
include/crypto/kpp.h | 2
include/crypto/skcipher.h | 2
include/linux/efi.h | 4
include/linux/fs.h | 17
include/linux/huge_mm.h | 2
include/linux/kasan.h | 4
include/linux/memcontrol.h | 209 +++-
include/linux/mm.h | 86 -
include/linux/mm_types.h | 5
include/linux/mman.h | 4
include/linux/mmu_notifier.h | 13
include/linux/mmzone.h | 54 -
include/linux/pageblock-flags.h | 30
include/linux/percpu_counter.h | 4
include/linux/sched/mm.h | 8
include/linux/shmem_fs.h | 3
include/linux/slab.h | 11
include/linux/slab_def.h | 9
include/linux/slub_def.h | 31
include/linux/swap.h | 2
include/linux/vmstat.h | 14
init/Kconfig | 9
init/main.c | 2
ipc/shm.c | 2
kernel/fork.c | 54 -
kernel/kthread.c | 8
kernel/power/snapshot.c | 2
kernel/rcu/tree.c | 2
kernel/scs.c | 2
kernel/sysctl.c | 2
lib/Kconfig.kasan | 39
lib/Makefile | 1
lib/ioremap.c | 287 -----
lib/mpi/mpiutil.c | 6
lib/percpu_counter.c | 19
lib/test_kasan.c | 87 +
mm/Kconfig | 6
mm/Makefile | 2
mm/debug.c | 103 +-
mm/debug_vm_pgtable.c | 666 +++++++++++++
mm/filemap.c | 9
mm/gup.c | 3
mm/huge_memory.c | 14
mm/hugetlb.c | 25
mm/ioremap.c | 289 +++++
mm/kasan/common.c | 41
mm/kasan/generic.c | 43
mm/kasan/generic_report.c | 1
mm/kasan/kasan.h | 25
mm/kasan/quarantine.c | 1
mm/kasan/report.c | 54 -
mm/kasan/tags.c | 37
mm/khugepaged.c | 75 -
mm/memcontrol.c | 832 ++++++++++-------
mm/memory.c | 15
mm/memory_hotplug.c | 11
mm/migrate.c | 6
mm/mm_init.c | 20
mm/mmap.c | 45
mm/mremap.c | 19
mm/nommu.c | 6
mm/oom_kill.c | 2
mm/page-writeback.c | 6
mm/page_alloc.c | 226 ++--
mm/page_counter.c | 6
mm/page_io.c | 2
mm/pgalloc-track.h | 51 +
mm/shmem.c | 133 ++
mm/shuffle.c | 46
mm/shuffle.h | 17
mm/slab.c | 129 +-
mm/slab.h | 755 ++++++---------
mm/slab_common.c | 829 ++--------------
mm/slob.c | 12
mm/slub.c | 680 ++++---------
mm/sparse-vmemmap.c | 62 -
mm/sparse.c | 31
mm/swap_slots.c | 45
mm/swap_state.c | 2
mm/util.c | 52 +
mm/vmalloc.c | 176 +--
mm/vmscan.c | 39
mm/vmstat.c | 38
mm/workingset.c | 6
net/atm/mpoa_caches.c | 4
net/bluetooth/ecdh_helper.c | 6
net/bluetooth/smp.c | 24
net/core/sock.c | 2
net/ipv4/tcp_fastopen.c | 2
net/mac80211/aead_api.c | 4
net/mac80211/aes_gmac.c | 2
net/mac80211/key.c | 2
net/mac802154/llsec.c | 20
net/sctp/auth.c | 2
net/sunrpc/auth_gss/gss_krb5_crypto.c | 4
net/sunrpc/auth_gss/gss_krb5_keys.c | 6
net/sunrpc/auth_gss/gss_krb5_mech.c | 2
net/tipc/crypto.c | 10
net/wireless/core.c | 2
net/wireless/ibss.c | 4
net/wireless/lib80211_crypt_tkip.c | 2
net/wireless/lib80211_crypt_wep.c | 2
net/wireless/nl80211.c | 24
net/wireless/sme.c | 6
net/wireless/util.c | 2
net/wireless/wext-sme.c | 2
scripts/Makefile.kasan | 3
scripts/bloat-o-meter | 2
scripts/coccinelle/free/devm_free.cocci | 4
scripts/coccinelle/free/ifnullfree.cocci | 4
scripts/coccinelle/free/kfree.cocci | 6
scripts/coccinelle/free/kfreeaddr.cocci | 2
scripts/const_structs.checkpatch | 1
scripts/decode_stacktrace.sh | 85 +
scripts/spelling.txt | 19
scripts/tags.sh | 18
security/apparmor/domain.c | 4
security/apparmor/include/file.h | 2
security/apparmor/policy.c | 24
security/apparmor/policy_ns.c | 6
security/apparmor/policy_unpack.c | 14
security/keys/big_key.c | 6
security/keys/dh.c | 14
security/keys/encrypted-keys/encrypted.c | 14
security/keys/trusted-keys/trusted_tpm1.c | 34
security/keys/user_defined.c | 6
tools/cgroup/memcg_slabinfo.py | 226 ++++
tools/include/linux/jhash.h | 2
tools/lib/rbtree.c | 2
tools/lib/traceevent/event-parse.h | 2
tools/testing/ktest/examples/README | 2
tools/testing/ktest/examples/crosstests.conf | 2
tools/testing/selftests/Makefile | 1
tools/testing/selftests/cgroup/.gitignore | 1
tools/testing/selftests/cgroup/Makefile | 2
tools/testing/selftests/cgroup/cgroup_util.c | 2
tools/testing/selftests/cgroup/test_kmem.c | 382 +++++++
tools/testing/selftests/mincore/.gitignore | 2
tools/testing/selftests/mincore/Makefile | 6
tools/testing/selftests/mincore/mincore_selftest.c | 361 +++++++
397 files changed, 5547 insertions(+), 4072 deletions(-)
^ permalink raw reply [flat|nested] 2+ messages in thread
* + mm-slub-fix-conversion-of-freelist_corrupted.patch added to -mm tree
2020-08-07 6:16 incoming Andrew Morton
@ 2020-08-11 20:49 ` Andrew Morton
0 siblings, 0 replies; 2+ messages in thread
From: Andrew Morton @ 2020-08-11 20:49 UTC (permalink / raw)
To: cl, dongli.zhang, erosca, iamjoonsoo.kim, joe.jin, mm-commits,
penberg, rientjes, stable
The patch titled
Subject: mm: slub: fix conversion of freelist_corrupted()
has been added to the -mm tree. Its filename is
mm-slub-fix-conversion-of-freelist_corrupted.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/mm-slub-fix-conversion-of-freelist_corrupted.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/mm-slub-fix-conversion-of-freelist_corrupted.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/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Eugeniu Rosca <erosca@de.adit-jv.com>
Subject: mm: slub: fix conversion of freelist_corrupted()
Commit 52f23478081ae0 ("mm/slub.c: fix corrupted freechain in
deactivate_slab()") suffered an update when picked up from LKML [1].
Specifically, relocating 'freelist = NULL' into 'freelist_corrupted()'
created a no-op statement. Fix it by sticking to the behavior intended in
the original patch [1]. Prefer the lowest-line-count solution.
[1] https://lore.kernel.org/linux-mm/20200331031450.12182-1-dongli.zhang@oracle.com/
Link: http://lkml.kernel.org/r/20200811124656.10308-1-erosca@de.adit-jv.com
Fixes: 52f23478081ae0 ("mm/slub.c: fix corrupted freechain in deactivate_slab()")
Signed-off-by: Eugeniu Rosca <erosca@de.adit-jv.com>
Cc: Dongli Zhang <dongli.zhang@oracle.com>
Cc: Joe Jin <joe.jin@oracle.com>
Cc: Christoph Lameter <cl@linux.com>
Cc: Pekka Enberg <penberg@kernel.org>
Cc: David Rientjes <rientjes@google.com>
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
mm/slub.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
--- a/mm/slub.c~mm-slub-fix-conversion-of-freelist_corrupted
+++ a/mm/slub.c
@@ -677,7 +677,6 @@ static bool freelist_corrupted(struct km
if ((s->flags & SLAB_CONSISTENCY_CHECKS) &&
!check_valid_pointer(s, page, nextfree)) {
object_err(s, page, freelist, "Freechain corrupt");
- freelist = NULL;
slab_fix(s, "Isolate corrupted freechain");
return true;
}
@@ -2184,8 +2183,10 @@ static void deactivate_slab(struct kmem_
* 'freelist' is already corrupted. So isolate all objects
* starting at 'freelist'.
*/
- if (freelist_corrupted(s, page, freelist, nextfree))
+ if (freelist_corrupted(s, page, freelist, nextfree)) {
+ freelist = NULL;
break;
+ }
do {
prior = page->freelist;
_
Patches currently in -mm which might be from erosca@de.adit-jv.com are
mm-slub-fix-conversion-of-freelist_corrupted.patch
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2020-08-24 18:21 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-24 18:21 + mm-slub-fix-conversion-of-freelist_corrupted.patch added to -mm tree akpm
-- strict thread matches above, loose matches on Subject: below --
2020-08-07 6:16 incoming Andrew Morton
2020-08-11 20:49 ` + mm-slub-fix-conversion-of-freelist_corrupted.patch added to -mm tree Andrew Morton
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).