Commit d3c82f61 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'mm-hotfixes-stable-2025-06-06-16-02' of...

Merge tag 'mm-hotfixes-stable-2025-06-06-16-02' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm

Pull misc fixes from Andrew Morton:
 "13 hotfixes.

  6 are cc:stable and the remainder address post-6.15 issues or aren't
  considered necessary for -stable kernels. 11 are for MM"

* tag 'mm-hotfixes-stable-2025-06-06-16-02' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm:
  kernel/rcu/tree_stall: add /sys/kernel/rcu_stall_count
  MAINTAINERS: add mm swap section
  kmsan: test: add module description
  MAINTAINERS: add tlb trace events to MMU GATHER AND TLB INVALIDATION
  mm/hugetlb: fix huge_pmd_unshare() vs GUP-fast race
  mm/hugetlb: unshare page tables during VMA split, not before
  MAINTAINERS: add Alistair as reviewer of mm memory policy
  iov_iter: use iov_offset for length calculation in iov_iter_aligned_bvec
  mm/mempolicy: fix incorrect freeing of wi_kobj
  alloc_tag: handle module codetag load errors as module load failures
  mm/madvise: handle madvise_lock() failure during race unwinding
  mm: fix vmstat after removing NR_BOUNCE
  KVM: s390: rename PROT_NONE to PROT_TYPE_DUMMY
parents 949ea6f3 2da20fd9
Loading
Loading
Loading
Loading
+21 −0
Original line number Diff line number Diff line
@@ -15818,6 +15818,7 @@ R: Rakie Kim <rakie.kim@sk.com>
R:	Byungchul Park <byungchul@sk.com>
R:	Gregory Price <gourry@gourry.net>
R:	Ying Huang <ying.huang@linux.alibaba.com>
R:	Alistair Popple <apopple@nvidia.com>
L:	linux-mm@kvack.org
S:	Maintained
W:	http://www.linux-mm.org
@@ -15889,6 +15890,25 @@ S: Maintained
F:	include/linux/secretmem.h
F:	mm/secretmem.c
MEMORY MANAGEMENT - SWAP
M:	Andrew Morton <akpm@linux-foundation.org>
R:	Kemeng Shi <shikemeng@huaweicloud.com>
R:	Kairui Song <kasong@tencent.com>
R:	Nhat Pham <nphamcs@gmail.com>
R:	Baoquan He <bhe@redhat.com>
R:	Barry Song <baohua@kernel.org>
R:	Chris Li <chrisl@kernel.org>
L:	linux-mm@kvack.org
S:	Maintained
F:	include/linux/swap.h
F:	include/linux/swapfile.h
F:	include/linux/swapops.h
F:	mm/page_io.c
F:	mm/swap.c
F:	mm/swap.h
F:	mm/swap_state.c
F:	mm/swapfile.c
MEMORY MANAGEMENT - THP (TRANSPARENT HUGE PAGE)
M:	Andrew Morton <akpm@linux-foundation.org>
M:	David Hildenbrand <david@redhat.com>
@@ -16727,6 +16747,7 @@ L: linux-mm@kvack.org
S:	Maintained
F:	arch/*/include/asm/tlb.h
F:	include/asm-generic/tlb.h
F:	include/trace/events/tlb.h
F:	mm/mmu_gather.c
MN88472 MEDIA DRIVER
+4 −4
Original line number Diff line number Diff line
@@ -319,7 +319,7 @@ enum prot_type {
	PROT_TYPE_DAT  = 3,
	PROT_TYPE_IEP  = 4,
	/* Dummy value for passing an initialized value when code != PGM_PROTECTION */
	PROT_NONE,
	PROT_TYPE_DUMMY,
};

static int trans_exc_ending(struct kvm_vcpu *vcpu, int code, unsigned long gva, u8 ar,
@@ -335,7 +335,7 @@ static int trans_exc_ending(struct kvm_vcpu *vcpu, int code, unsigned long gva,
	switch (code) {
	case PGM_PROTECTION:
		switch (prot) {
		case PROT_NONE:
		case PROT_TYPE_DUMMY:
			/* We should never get here, acts like termination */
			WARN_ON_ONCE(1);
			break;
@@ -805,7 +805,7 @@ static int guest_range_to_gpas(struct kvm_vcpu *vcpu, unsigned long ga, u8 ar,
			gpa = kvm_s390_real_to_abs(vcpu, ga);
			if (!kvm_is_gpa_in_memslot(vcpu->kvm, gpa)) {
				rc = PGM_ADDRESSING;
				prot = PROT_NONE;
				prot = PROT_TYPE_DUMMY;
			}
		}
		if (rc)
@@ -963,7 +963,7 @@ int access_guest_with_key(struct kvm_vcpu *vcpu, unsigned long ga, u8 ar,
		if (rc == PGM_PROTECTION)
			prot = PROT_TYPE_KEYC;
		else
			prot = PROT_NONE;
			prot = PROT_TYPE_DUMMY;
		rc = trans_exc_ending(vcpu, rc, ga, ar, mode, prot, terminate);
	}
out_unlock:
+4 −4
Original line number Diff line number Diff line
@@ -36,7 +36,7 @@ union codetag_ref {
struct codetag_type_desc {
	const char *section;
	size_t tag_size;
	void (*module_load)(struct module *mod,
	int (*module_load)(struct module *mod,
			   struct codetag *start, struct codetag *end);
	void (*module_unload)(struct module *mod,
			      struct codetag *start, struct codetag *end);
@@ -89,7 +89,7 @@ void *codetag_alloc_module_section(struct module *mod, const char *name,
				   unsigned long align);
void codetag_free_module_sections(struct module *mod);
void codetag_module_replaced(struct module *mod, struct module *new_mod);
void codetag_load_module(struct module *mod);
int codetag_load_module(struct module *mod);
void codetag_unload_module(struct module *mod);

#else /* defined(CONFIG_CODE_TAGGING) && defined(CONFIG_MODULES) */
@@ -103,7 +103,7 @@ codetag_alloc_module_section(struct module *mod, const char *name,
			     unsigned long align) { return NULL; }
static inline void codetag_free_module_sections(struct module *mod) {}
static inline void codetag_module_replaced(struct module *mod, struct module *new_mod) {}
static inline void codetag_load_module(struct module *mod) {}
static inline int codetag_load_module(struct module *mod) { return 0; }
static inline void codetag_unload_module(struct module *mod) {}

#endif /* defined(CONFIG_CODE_TAGGING) && defined(CONFIG_MODULES) */
+3 −0
Original line number Diff line number Diff line
@@ -279,6 +279,7 @@ bool is_hugetlb_entry_migration(pte_t pte);
bool is_hugetlb_entry_hwpoisoned(pte_t pte);
void hugetlb_unshare_all_pmds(struct vm_area_struct *vma);
void fixup_hugetlb_reservations(struct vm_area_struct *vma);
void hugetlb_split(struct vm_area_struct *vma, unsigned long addr);

#else /* !CONFIG_HUGETLB_PAGE */

@@ -476,6 +477,8 @@ static inline void fixup_hugetlb_reservations(struct vm_area_struct *vma)
{
}

static inline void hugetlb_split(struct vm_area_struct *vma, unsigned long addr) {}

#endif /* !CONFIG_HUGETLB_PAGE */

#ifndef pgd_write
+3 −2
Original line number Diff line number Diff line
@@ -3386,11 +3386,12 @@ static int load_module(struct load_info *info, const char __user *uargs,
			goto sysfs_cleanup;
	}

	if (codetag_load_module(mod))
		goto sysfs_cleanup;

	/* Get rid of temporary copy. */
	free_copy(info, flags);

	codetag_load_module(mod);

	/* Done! */
	trace_module_load(mod);

Loading