7 hotfixes. 5 are cc:stable, 4 are against mm/.
All are singletons - please see the respective changelogs for details. -----BEGIN PGP SIGNATURE----- iHUEABYKAB0WIQTTMBEPP41GrTpTJgfdBJ7gKXxAjgUCaRoauQAKCRDdBJ7gKXxA jtNFAQDEMH0+zRGz/Larkf9cgmdKcDgij1DP2gP/3i8PWAoaGQD8C9evZxu1h9wC rFbaSkPDeSdDafo3RZfpo1gqE0LdEA4= =oew8 -----END PGP SIGNATURE----- Merge tag 'mm-hotfixes-stable-2025-11-16-10-40' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm Pull misc fixes from Andrew Morton: "7 hotfixes. 5 are cc:stable, 4 are against mm/ All are singletons - please see the respective changelogs for details" * tag 'mm-hotfixes-stable-2025-11-16-10-40' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm: mm, swap: fix potential UAF issue for VMA readahead selftests/user_events: fix type cast for write_index packed member in perf_test lib/test_kho: check if KHO is enabled mm/huge_memory: fix folio split check for anon folios in swapcache MAINTAINERS: update David Hildenbrand's email address crash: fix crashkernel resource shrink mm: fix MAX_FOLIO_ORDER on powerpc configs with hugetlbpull/1354/merge
commit
7ba45f1504
1
.mailmap
1
.mailmap
|
|
@ -206,6 +206,7 @@ Danilo Krummrich <dakr@kernel.org> <dakr@redhat.com>
|
|||
David Brownell <david-b@pacbell.net>
|
||||
David Collins <quic_collinsd@quicinc.com> <collinsd@codeaurora.org>
|
||||
David Heidelberg <david@ixit.cz> <d.okias@gmail.com>
|
||||
David Hildenbrand <david@kernel.org> <david@redhat.com>
|
||||
David Rheinsberg <david@readahead.eu> <dh.herrmann@gmail.com>
|
||||
David Rheinsberg <david@readahead.eu> <dh.herrmann@googlemail.com>
|
||||
David Rheinsberg <david@readahead.eu> <david.rheinsberg@gmail.com>
|
||||
|
|
|
|||
28
MAINTAINERS
28
MAINTAINERS
|
|
@ -11528,7 +11528,7 @@ F: include/linux/platform_data/huawei-gaokun-ec.h
|
|||
HUGETLB SUBSYSTEM
|
||||
M: Muchun Song <muchun.song@linux.dev>
|
||||
M: Oscar Salvador <osalvador@suse.de>
|
||||
R: David Hildenbrand <david@redhat.com>
|
||||
R: David Hildenbrand <david@kernel.org>
|
||||
L: linux-mm@kvack.org
|
||||
S: Maintained
|
||||
F: Documentation/ABI/testing/sysfs-kernel-mm-hugepages
|
||||
|
|
@ -13735,7 +13735,7 @@ KERNEL VIRTUAL MACHINE for s390 (KVM/s390)
|
|||
M: Christian Borntraeger <borntraeger@linux.ibm.com>
|
||||
M: Janosch Frank <frankja@linux.ibm.com>
|
||||
M: Claudio Imbrenda <imbrenda@linux.ibm.com>
|
||||
R: David Hildenbrand <david@redhat.com>
|
||||
R: David Hildenbrand <david@kernel.org>
|
||||
L: kvm@vger.kernel.org
|
||||
S: Supported
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux.git
|
||||
|
|
@ -16222,7 +16222,7 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/chanwoo/linux.git
|
|||
F: drivers/devfreq/tegra30-devfreq.c
|
||||
|
||||
MEMORY HOT(UN)PLUG
|
||||
M: David Hildenbrand <david@redhat.com>
|
||||
M: David Hildenbrand <david@kernel.org>
|
||||
M: Oscar Salvador <osalvador@suse.de>
|
||||
L: linux-mm@kvack.org
|
||||
S: Maintained
|
||||
|
|
@ -16247,7 +16247,7 @@ F: tools/mm/
|
|||
|
||||
MEMORY MANAGEMENT - CORE
|
||||
M: Andrew Morton <akpm@linux-foundation.org>
|
||||
M: David Hildenbrand <david@redhat.com>
|
||||
M: David Hildenbrand <david@kernel.org>
|
||||
R: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
|
||||
R: Liam R. Howlett <Liam.Howlett@oracle.com>
|
||||
R: Vlastimil Babka <vbabka@suse.cz>
|
||||
|
|
@ -16303,7 +16303,7 @@ F: mm/execmem.c
|
|||
|
||||
MEMORY MANAGEMENT - GUP (GET USER PAGES)
|
||||
M: Andrew Morton <akpm@linux-foundation.org>
|
||||
M: David Hildenbrand <david@redhat.com>
|
||||
M: David Hildenbrand <david@kernel.org>
|
||||
R: Jason Gunthorpe <jgg@nvidia.com>
|
||||
R: John Hubbard <jhubbard@nvidia.com>
|
||||
R: Peter Xu <peterx@redhat.com>
|
||||
|
|
@ -16319,7 +16319,7 @@ F: tools/testing/selftests/mm/gup_test.c
|
|||
|
||||
MEMORY MANAGEMENT - KSM (Kernel Samepage Merging)
|
||||
M: Andrew Morton <akpm@linux-foundation.org>
|
||||
M: David Hildenbrand <david@redhat.com>
|
||||
M: David Hildenbrand <david@kernel.org>
|
||||
R: Xu Xin <xu.xin16@zte.com.cn>
|
||||
R: Chengming Zhou <chengming.zhou@linux.dev>
|
||||
L: linux-mm@kvack.org
|
||||
|
|
@ -16335,7 +16335,7 @@ F: mm/mm_slot.h
|
|||
|
||||
MEMORY MANAGEMENT - MEMORY POLICY AND MIGRATION
|
||||
M: Andrew Morton <akpm@linux-foundation.org>
|
||||
M: David Hildenbrand <david@redhat.com>
|
||||
M: David Hildenbrand <david@kernel.org>
|
||||
R: Zi Yan <ziy@nvidia.com>
|
||||
R: Matthew Brost <matthew.brost@intel.com>
|
||||
R: Joshua Hahn <joshua.hahnjy@gmail.com>
|
||||
|
|
@ -16375,7 +16375,7 @@ F: mm/workingset.c
|
|||
|
||||
MEMORY MANAGEMENT - MISC
|
||||
M: Andrew Morton <akpm@linux-foundation.org>
|
||||
M: David Hildenbrand <david@redhat.com>
|
||||
M: David Hildenbrand <david@kernel.org>
|
||||
R: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
|
||||
R: Liam R. Howlett <Liam.Howlett@oracle.com>
|
||||
R: Vlastimil Babka <vbabka@suse.cz>
|
||||
|
|
@ -16463,7 +16463,7 @@ F: mm/shuffle.h
|
|||
MEMORY MANAGEMENT - RECLAIM
|
||||
M: Andrew Morton <akpm@linux-foundation.org>
|
||||
M: Johannes Weiner <hannes@cmpxchg.org>
|
||||
R: David Hildenbrand <david@redhat.com>
|
||||
R: David Hildenbrand <david@kernel.org>
|
||||
R: Michal Hocko <mhocko@kernel.org>
|
||||
R: Qi Zheng <zhengqi.arch@bytedance.com>
|
||||
R: Shakeel Butt <shakeel.butt@linux.dev>
|
||||
|
|
@ -16476,7 +16476,7 @@ F: mm/workingset.c
|
|||
|
||||
MEMORY MANAGEMENT - RMAP (REVERSE MAPPING)
|
||||
M: Andrew Morton <akpm@linux-foundation.org>
|
||||
M: David Hildenbrand <david@redhat.com>
|
||||
M: David Hildenbrand <david@kernel.org>
|
||||
M: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
|
||||
R: Rik van Riel <riel@surriel.com>
|
||||
R: Liam R. Howlett <Liam.Howlett@oracle.com>
|
||||
|
|
@ -16521,7 +16521,7 @@ F: mm/swapfile.c
|
|||
|
||||
MEMORY MANAGEMENT - THP (TRANSPARENT HUGE PAGE)
|
||||
M: Andrew Morton <akpm@linux-foundation.org>
|
||||
M: David Hildenbrand <david@redhat.com>
|
||||
M: David Hildenbrand <david@kernel.org>
|
||||
M: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
|
||||
R: Zi Yan <ziy@nvidia.com>
|
||||
R: Baolin Wang <baolin.wang@linux.alibaba.com>
|
||||
|
|
@ -16623,7 +16623,7 @@ MEMORY MAPPING - MADVISE (MEMORY ADVICE)
|
|||
M: Andrew Morton <akpm@linux-foundation.org>
|
||||
M: Liam R. Howlett <Liam.Howlett@oracle.com>
|
||||
M: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
|
||||
M: David Hildenbrand <david@redhat.com>
|
||||
M: David Hildenbrand <david@kernel.org>
|
||||
R: Vlastimil Babka <vbabka@suse.cz>
|
||||
R: Jann Horn <jannh@google.com>
|
||||
L: linux-mm@kvack.org
|
||||
|
|
@ -27090,7 +27090,7 @@ F: net/vmw_vsock/virtio_transport_common.c
|
|||
|
||||
VIRTIO BALLOON
|
||||
M: "Michael S. Tsirkin" <mst@redhat.com>
|
||||
M: David Hildenbrand <david@redhat.com>
|
||||
M: David Hildenbrand <david@kernel.org>
|
||||
L: virtualization@lists.linux.dev
|
||||
S: Maintained
|
||||
F: drivers/virtio/virtio_balloon.c
|
||||
|
|
@ -27245,7 +27245,7 @@ F: drivers/iommu/virtio-iommu.c
|
|||
F: include/uapi/linux/virtio_iommu.h
|
||||
|
||||
VIRTIO MEM DRIVER
|
||||
M: David Hildenbrand <david@redhat.com>
|
||||
M: David Hildenbrand <david@kernel.org>
|
||||
L: virtualization@lists.linux.dev
|
||||
S: Maintained
|
||||
W: https://virtio-mem.gitlab.io/
|
||||
|
|
|
|||
|
|
@ -137,6 +137,7 @@ config PPC
|
|||
select ARCH_HAS_DMA_OPS if PPC64
|
||||
select ARCH_HAS_FORTIFY_SOURCE
|
||||
select ARCH_HAS_GCOV_PROFILE_ALL
|
||||
select ARCH_HAS_GIGANTIC_PAGE if ARCH_SUPPORTS_HUGETLBFS
|
||||
select ARCH_HAS_KCOV
|
||||
select ARCH_HAS_KERNEL_FPU_SUPPORT if PPC64 && PPC_FPU
|
||||
select ARCH_HAS_MEMBARRIER_CALLBACKS
|
||||
|
|
|
|||
|
|
@ -423,7 +423,6 @@ config PPC_64S_HASH_MMU
|
|||
config PPC_RADIX_MMU
|
||||
bool "Radix MMU Support"
|
||||
depends on PPC_BOOK3S_64
|
||||
select ARCH_HAS_GIGANTIC_PAGE
|
||||
default y
|
||||
help
|
||||
Enable support for the Power ISA 3.0 Radix style MMU. Currently this
|
||||
|
|
|
|||
|
|
@ -2074,7 +2074,7 @@ static inline unsigned long folio_nr_pages(const struct folio *folio)
|
|||
return folio_large_nr_pages(folio);
|
||||
}
|
||||
|
||||
#if !defined(CONFIG_ARCH_HAS_GIGANTIC_PAGE)
|
||||
#if !defined(CONFIG_HAVE_GIGANTIC_FOLIOS)
|
||||
/*
|
||||
* We don't expect any folios that exceed buddy sizes (and consequently
|
||||
* memory sections).
|
||||
|
|
@ -2087,10 +2087,17 @@ static inline unsigned long folio_nr_pages(const struct folio *folio)
|
|||
* pages are guaranteed to be contiguous.
|
||||
*/
|
||||
#define MAX_FOLIO_ORDER PFN_SECTION_SHIFT
|
||||
#else
|
||||
#elif defined(CONFIG_HUGETLB_PAGE)
|
||||
/*
|
||||
* There is no real limit on the folio size. We limit them to the maximum we
|
||||
* currently expect (e.g., hugetlb, dax).
|
||||
* currently expect (see CONFIG_HAVE_GIGANTIC_FOLIOS): with hugetlb, we expect
|
||||
* no folios larger than 16 GiB on 64bit and 1 GiB on 32bit.
|
||||
*/
|
||||
#define MAX_FOLIO_ORDER get_order(IS_ENABLED(CONFIG_64BIT) ? SZ_16G : SZ_1G)
|
||||
#else
|
||||
/*
|
||||
* Without hugetlb, gigantic folios that are bigger than a single PUD are
|
||||
* currently impossible.
|
||||
*/
|
||||
#define MAX_FOLIO_ORDER PUD_ORDER
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -373,7 +373,7 @@ static int __crash_shrink_memory(struct resource *old_res,
|
|||
old_res->start = 0;
|
||||
old_res->end = 0;
|
||||
} else {
|
||||
crashk_res.end = ram_res->start - 1;
|
||||
old_res->end = ram_res->start - 1;
|
||||
}
|
||||
|
||||
crash_free_reserved_phys_range(ram_res->start, ram_res->end);
|
||||
|
|
|
|||
|
|
@ -301,6 +301,9 @@ static int __init kho_test_init(void)
|
|||
phys_addr_t fdt_phys;
|
||||
int err;
|
||||
|
||||
if (!kho_is_enabled())
|
||||
return 0;
|
||||
|
||||
err = kho_retrieve_subtree(KHO_TEST_FDT, &fdt_phys);
|
||||
if (!err)
|
||||
return kho_test_restore(fdt_phys);
|
||||
|
|
|
|||
|
|
@ -908,6 +908,13 @@ config PAGE_MAPCOUNT
|
|||
config PGTABLE_HAS_HUGE_LEAVES
|
||||
def_bool TRANSPARENT_HUGEPAGE || HUGETLB_PAGE
|
||||
|
||||
#
|
||||
# We can end up creating gigantic folio.
|
||||
#
|
||||
config HAVE_GIGANTIC_FOLIOS
|
||||
def_bool (HUGETLB_PAGE && ARCH_HAS_GIGANTIC_PAGE) || \
|
||||
(ZONE_DEVICE && HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD)
|
||||
|
||||
# TODO: Allow to be enabled without THP
|
||||
config ARCH_SUPPORTS_HUGE_PFNMAP
|
||||
def_bool n
|
||||
|
|
|
|||
|
|
@ -3522,7 +3522,8 @@ bool non_uniform_split_supported(struct folio *folio, unsigned int new_order,
|
|||
/* order-1 is not supported for anonymous THP. */
|
||||
VM_WARN_ONCE(warns && new_order == 1,
|
||||
"Cannot split to order-1 folio");
|
||||
return new_order != 1;
|
||||
if (new_order == 1)
|
||||
return false;
|
||||
} else if (IS_ENABLED(CONFIG_READ_ONLY_THP_FOR_FS) &&
|
||||
!mapping_large_folio_support(folio->mapping)) {
|
||||
/*
|
||||
|
|
@ -3553,7 +3554,8 @@ bool uniform_split_supported(struct folio *folio, unsigned int new_order,
|
|||
if (folio_test_anon(folio)) {
|
||||
VM_WARN_ONCE(warns && new_order == 1,
|
||||
"Cannot split to order-1 folio");
|
||||
return new_order != 1;
|
||||
if (new_order == 1)
|
||||
return false;
|
||||
} else if (new_order) {
|
||||
if (IS_ENABLED(CONFIG_READ_ONLY_THP_FOR_FS) &&
|
||||
!mapping_large_folio_support(folio->mapping)) {
|
||||
|
|
|
|||
|
|
@ -748,6 +748,8 @@ static struct folio *swap_vma_readahead(swp_entry_t targ_entry, gfp_t gfp_mask,
|
|||
|
||||
blk_start_plug(&plug);
|
||||
for (addr = start; addr < end; ilx++, addr += PAGE_SIZE) {
|
||||
struct swap_info_struct *si = NULL;
|
||||
|
||||
if (!pte++) {
|
||||
pte = pte_offset_map(vmf->pmd, addr);
|
||||
if (!pte)
|
||||
|
|
@ -761,8 +763,19 @@ static struct folio *swap_vma_readahead(swp_entry_t targ_entry, gfp_t gfp_mask,
|
|||
continue;
|
||||
pte_unmap(pte);
|
||||
pte = NULL;
|
||||
/*
|
||||
* Readahead entry may come from a device that we are not
|
||||
* holding a reference to, try to grab a reference, or skip.
|
||||
*/
|
||||
if (swp_type(entry) != swp_type(targ_entry)) {
|
||||
si = get_swap_device(entry);
|
||||
if (!si)
|
||||
continue;
|
||||
}
|
||||
folio = __read_swap_cache_async(entry, gfp_mask, mpol, ilx,
|
||||
&page_allocated, false);
|
||||
if (si)
|
||||
put_swap_device(si);
|
||||
if (!folio)
|
||||
continue;
|
||||
if (page_allocated) {
|
||||
|
|
|
|||
|
|
@ -236,7 +236,7 @@ TEST_F(user, perf_empty_events) {
|
|||
ASSERT_EQ(1 << reg.enable_bit, self->check);
|
||||
|
||||
/* Ensure write shows up at correct offset */
|
||||
ASSERT_NE(-1, write(self->data_fd, ®.write_index,
|
||||
ASSERT_NE(-1, write(self->data_fd, (void *)®.write_index,
|
||||
sizeof(reg.write_index)));
|
||||
val = (void *)(((char *)perf_page) + perf_page->data_offset);
|
||||
ASSERT_EQ(PERF_RECORD_SAMPLE, *val);
|
||||
|
|
|
|||
Loading…
Reference in New Issue