Commit 0b34fd0f authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'mm-hotfixes-stable-2025-12-28-21-50' of...

Merge tag 'mm-hotfixes-stable-2025-12-28-21-50' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm

Pull misc fixes from Andrew Morton:
 "27 hotfixes.  12 are cc:stable, 18 are MM.

  There's a patch series from Jiayuan Chen which fixes some
  issues with KASAN and vmalloc. Apart from that it's the usual
  shower of singletons - please see the respective changelogs
  for details"

* tag 'mm-hotfixes-stable-2025-12-28-21-50' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm: (27 commits)
  mm/ksm: fix pte_unmap_unlock of wrong address in break_ksm_pmd_entry
  mm/page_owner: fix memory leak in page_owner_stack_fops->release()
  mm/memremap: fix spurious large folio warning for FS-DAX
  MAINTAINERS: notify the "Device Memory" community of memory hotplug changes
  sparse: update MAINTAINERS info
  mm/page_alloc: report 1 as zone_batchsize for !CONFIG_MMU
  mm: consider non-anon swap cache folios in folio_expected_ref_count()
  rust: maple_tree: rcu_read_lock() in destructor to silence lockdep
  mm: memcg: fix unit conversion for K() macro in OOM log
  mm: fixup pfnmap memory failure handling to use pgoff
  tools/mm/page_owner_sort: fix timestamp comparison for stable sorting
  selftests/mm: fix thread state check in uffd-unit-tests
  kernel/kexec: fix IMA when allocation happens in CMA area
  kernel/kexec: change the prototype of kimage_map_segment()
  MAINTAINERS: add ABI headers to KHO and LIVE UPDATE
  .mailmap: remove one of the entries for WangYuli
  mm/damon/vaddr: fix missing pte_unmap_unlock in damos_va_migrate_pmd_entry()
  MAINTAINERS: update one straggling entry for Bartosz Golaszewski
  mm/page_alloc: change all pageblocks migrate type on coalescing
  mm: leafops.h: correct kernel-doc function param. names
  ...
parents 78399324 d6b5a8d6
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -127,7 +127,8 @@ Barry Song <baohua@kernel.org> <Baohua.Song@csr.com>
Barry Song <baohua@kernel.org> <barry.song@analog.com>
Bart Van Assche <bvanassche@acm.org> <bart.vanassche@sandisk.com>
Bart Van Assche <bvanassche@acm.org> <bart.vanassche@wdc.com>
Bartosz Golaszewski <brgl@bgdev.pl> <bgolaszewski@baylibre.com>
Bartosz Golaszewski <brgl@kernel.org> <bartosz.golaszewski@linaro.org>
Bartosz Golaszewski <brgl@kernel.org> <bgolaszewski@baylibre.com>
Ben Dooks <ben-linux@fluff.org> <ben.dooks@simtec.co.uk>
Ben Dooks <ben-linux@fluff.org> <ben.dooks@sifive.com>
Ben Gardner <bgardner@wabtec.com>
@@ -857,7 +858,6 @@ Vladimir Davydov <vdavydov.dev@gmail.com> <vdavydov@parallels.com>
Vladimir Davydov <vdavydov.dev@gmail.com> <vdavydov@virtuozzo.com>
WangYuli <wangyuli@aosc.io> <wangyl5933@chinaunicom.cn>
WangYuli <wangyuli@aosc.io> <wangyuli@deepin.org>
WangYuli <wangyuli@aosc.io> <wangyuli@uniontech.com>
Weiwen Hu <huweiwen@linux.alibaba.com> <sehuww@mail.scut.edu.cn>
WeiXiong Liao <gmpy.liaowx@gmail.com> <liaoweixiong@allwinnertech.com>
Wen Gong <quic_wgong@quicinc.com> <wgong@codeaurora.org>
+6 −2
Original line number Diff line number Diff line
@@ -13959,6 +13959,7 @@ S: Maintained
F:	Documentation/admin-guide/mm/kho.rst
F:	Documentation/core-api/kho/*
F:	include/linux/kexec_handover.h
F:	include/linux/kho/
F:	kernel/liveupdate/kexec_handover*
F:	lib/test_kho.c
F:	tools/testing/selftests/kho/
@@ -14637,6 +14638,7 @@ S: Maintained
F:	Documentation/core-api/liveupdate.rst
F:	Documentation/mm/memfd_preservation.rst
F:	Documentation/userspace-api/liveupdate.rst
F:	include/linux/kho/abi/
F:	include/linux/liveupdate.h
F:	include/linux/liveupdate/
F:	include/uapi/linux/liveupdate.h
@@ -16426,6 +16428,7 @@ MEMORY HOT(UN)PLUG
M:	David Hildenbrand <david@kernel.org>
M:	Oscar Salvador <osalvador@suse.de>
L:	linux-mm@kvack.org
L:	linux-cxl@vger.kernel.org
S:	Maintained
F:	Documentation/admin-guide/mm/memory-hotplug.rst
F:	Documentation/core-api/memory-hotplug.rst
@@ -16751,6 +16754,7 @@ F: tools/testing/selftests/mm/transhuge-stress.c
MEMORY MANAGEMENT - USERFAULTFD
M:	Andrew Morton <akpm@linux-foundation.org>
M:	Mike Rapoport <rppt@kernel.org>
R:	Peter Xu <peterx@redhat.com>
L:	linux-mm@kvack.org
S:	Maintained
@@ -21345,7 +21349,7 @@ F: Documentation/devicetree/bindings/net/qcom,bam-dmux.yaml
F:	drivers/net/wwan/qcom_bam_dmux.c
QUALCOMM BLUETOOTH DRIVER
M:	Bartosz Golaszewski <brgl@bgdev.pl>
M:	Bartosz Golaszewski <brgl@kernel.org>
L:	linux-arm-msm@vger.kernel.org
S:	Maintained
F:	drivers/bluetooth/btqca.[ch]
@@ -24571,7 +24575,7 @@ F: drivers/tty/vcc.c
F:	include/linux/sunserialcore.h
SPARSE CHECKER
M:	"Luc Van Oostenryck" <luc.vanoostenryck@gmail.com>
M:	Chris Li <sparse@chrisli.org>
L:	linux-sparse@vger.kernel.org
S:	Maintained
W:	https://sparse.docs.kernel.org/
+1 −0
Original line number Diff line number Diff line
@@ -44,6 +44,7 @@ struct gen_pool;
 * @nr: The number of zeroed bits we're looking for
 * @data: optional additional data used by the callback
 * @pool: the pool being allocated from
 * @start_addr: start address of memory chunk
 */
typedef unsigned long (*genpool_algo_t)(unsigned long *map,
			unsigned long size,
+16 −0
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ typedef unsigned int __bitwise kasan_vmalloc_flags_t;
#define KASAN_VMALLOC_INIT		((__force kasan_vmalloc_flags_t)0x01u)
#define KASAN_VMALLOC_VM_ALLOC		((__force kasan_vmalloc_flags_t)0x02u)
#define KASAN_VMALLOC_PROT_NORMAL	((__force kasan_vmalloc_flags_t)0x04u)
#define KASAN_VMALLOC_KEEP_TAG		((__force kasan_vmalloc_flags_t)0x08u)

#define KASAN_VMALLOC_PAGE_RANGE 0x1 /* Apply exsiting page range */
#define KASAN_VMALLOC_TLB_FLUSH  0x2 /* TLB flush */
@@ -630,6 +631,16 @@ static __always_inline void kasan_poison_vmalloc(const void *start,
		__kasan_poison_vmalloc(start, size);
}

void __kasan_unpoison_vmap_areas(struct vm_struct **vms, int nr_vms,
				 kasan_vmalloc_flags_t flags);
static __always_inline void
kasan_unpoison_vmap_areas(struct vm_struct **vms, int nr_vms,
			  kasan_vmalloc_flags_t flags)
{
	if (kasan_enabled())
		__kasan_unpoison_vmap_areas(vms, nr_vms, flags);
}

#else /* CONFIG_KASAN_VMALLOC */

static inline void kasan_populate_early_vm_area_shadow(void *start,
@@ -654,6 +665,11 @@ static inline void *kasan_unpoison_vmalloc(const void *start,
static inline void kasan_poison_vmalloc(const void *start, unsigned long size)
{ }

static __always_inline void
kasan_unpoison_vmap_areas(struct vm_struct **vms, int nr_vms,
			  kasan_vmalloc_flags_t flags)
{ }

#endif /* CONFIG_KASAN_VMALLOC */

#if (defined(CONFIG_KASAN_GENERIC) || defined(CONFIG_KASAN_SW_TAGS)) && \
+2 −2
Original line number Diff line number Diff line
@@ -530,7 +530,7 @@ extern bool kexec_file_dbg_print;
#define kexec_dprintk(fmt, arg...) \
        do { if (kexec_file_dbg_print) pr_info(fmt, ##arg); } while (0)

extern void *kimage_map_segment(struct kimage *image, unsigned long addr, unsigned long size);
extern void *kimage_map_segment(struct kimage *image, int idx);
extern void kimage_unmap_segment(void *buffer);
#else /* !CONFIG_KEXEC_CORE */
struct pt_regs;
@@ -540,7 +540,7 @@ static inline void __crash_kexec(struct pt_regs *regs) { }
static inline void crash_kexec(struct pt_regs *regs) { }
static inline int kexec_should_crash(struct task_struct *p) { return 0; }
static inline int kexec_crash_loaded(void) { return 0; }
static inline void *kimage_map_segment(struct kimage *image, unsigned long addr, unsigned long size)
static inline void *kimage_map_segment(struct kimage *image, int idx)
{ return NULL; }
static inline void kimage_unmap_segment(void *buffer) { }
#define kexec_in_progress false
Loading