The patch titled Subject: fix xarray has been added to the -mm tree. Its filename is xarray-add-xas_split-fix-3patch.patch This patch should soon appear at https://ozlabs.org/~akpm/mmots/broken-out/xarray-add-xas_split-fix-3patch.patch and later at https://ozlabs.org/~akpm/mmotm/broken-out/xarray-add-xas_split-fix-3patch.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: "Matthew Wilcox (Oracle)" <willy@xxxxxxxxxxxxx> Subject: fix xarray Testing today revealed a rather annoying bug where we can free an initialised node back to the slab cache without zeroing it first. That ends up creating a corrupted XArray ... whichever XArray happens to allocate that node next. Link: https://lkml.kernel.org/r/20201001233943.GW20115@xxxxxxxxxxxxxxxxxxxx Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- lib/xarray.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) --- a/lib/xarray.c~xarray-add-xas_split-fix-3patch +++ a/lib/xarray.c @@ -271,8 +271,7 @@ static void xas_destroy(struct xa_state while (node) { XA_NODE_BUG_ON(node, !list_empty(&node->private_list)); next = rcu_dereference_raw(node->parent); - /* XXX: need to free children */ - kmem_cache_free(radix_tree_node_cachep, node); + radix_tree_node_rcu_free(&node->rcu_head); xas->xa_alloc = node = next; } } _ Patches currently in -mm which might be from willy@xxxxxxxxxxxxx are mm-debug-do-not-dereference-i_ino-blindly.patch mm-factor-find_get_incore_page-out-of-mincore_page.patch mm-use-find_get_incore_page-in-memcontrol.patch mm-optimise-madvise-willneed.patch mm-optimise-madvise-willneed-fix.patch proc-optimise-smaps-for-shmem-entries.patch i915-use-find_lock_page-instead-of-find_lock_entry.patch mm-convert-find_get_entry-to-return-the-head-page.patch mm-convert-find_get_entry-to-return-the-head-page-fix.patch mm-shmem-return-head-page-from-find_lock_entry.patch mm-shmem-return-head-page-from-find_lock_entry-fix.patch mm-add-find_lock_head.patch mm-filemap-fix-filemap_map_pages-for-thp.patch mm-account-pmd-tables-like-pte-tables.patch mm-move-pagedoublemap-bit.patch mm-simplify-pagedoublemap-with-pf_second-policy.patch page_alloc-fix-freeing-non-compound-pages.patch xarray-add-xa_get_order.patch xarray-add-xas_split.patch xarray-add-xas_split-fix-2.patch xarray-add-xas_split-fix-3patch.patch mm-filemap-fix-storing-to-a-thp-shadow-entry.patch mm-filemap-fix-page-cache-removal-for-arbitrary-sized-thps.patch mm-memory-remove-page-fault-assumption-of-compound-page-size.patch mm-page_owner-change-split_page_owner-to-take-a-count.patch mm-huge_memory-fix-page_trans_huge_mapcount-assumption-of-thp-size.patch mm-huge_memory-fix-can_split_huge_page-assumption-of-thp-size.patch mm-rmap-fix-assumptions-of-thp-size.patch mm-truncate-fix-truncation-for-pages-of-arbitrary-size.patch mm-page-writeback-support-tail-pages-in-wait_for_stable_page.patch mm-vmscan-allow-arbitrary-sized-pages-to-be-paged-out.patch fs-add-a-filesystem-flag-for-thps.patch fs-do-not-update-nr_thps-for-mappings-which-support-thps.patch mm-readahead-add-define_readahead.patch mm-readahead-make-page_cache_ra_unbounded-take-a-readahead_control.patch mm-readahead-make-do_page_cache_ra-take-a-readahead_control.patch mm-readahead-add-page_cache_sync_ra-and-page_cache_async_ra.patch ramfs-fix-nommu-mmap-with-gaps-in-the-page-cache.patch harden-autofs-ioctl-table.patch mm-update-the-documentation-for-vfree.patch