Skip to content

Commit 13b2d15

Browse files
committed
Merge tag 'mm-hotfixes-stable-2026-01-15-08-03' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
Pull misc fixes from Andrew Morton: - kerneldoc fixes from Bagas Sanjaya - DAMON fixes from SeongJae - mremap VMA-related fixes from Lorenzo - various singletons - please see the changelogs for details * tag 'mm-hotfixes-stable-2026-01-15-08-03' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm: (30 commits) drivers/dax: add some missing kerneldoc comment fields for struct dev_dax mm: numa,memblock: include <asm/numa.h> for 'numa_nodes_parsed' mailmap: add entry for Daniel Thompson tools/testing/selftests: fix gup_longterm for unknown fs mm/page_alloc: prevent pcp corruption with SMP=n iommu/sva: include mmu_notifier.h header mm: kmsan: fix poisoning of high-order non-compound pages tools/testing/selftests: add forked (un)/faulted VMA merge tests mm/vma: enforce VMA fork limit on unfaulted,faulted mremap merge too tools/testing/selftests: add tests for !tgt, src mremap() merges mm/vma: fix anon_vma UAF on mremap() faulted, unfaulted merge mm/zswap: fix error pointer free in zswap_cpu_comp_prepare() mm/damon/sysfs-scheme: cleanup access_pattern subdirs on scheme dir setup failure mm/damon/sysfs-scheme: cleanup quotas subdirs on scheme dir setup failure mm/damon/sysfs: cleanup attrs subdirs on context dir setup failure mm/damon/sysfs: cleanup intervals subdirs on attrs dir setup failure mm/damon/core: remove call_control in inactive contexts powerpc/watchdog: add support for hardlockup_sys_info sysctl mips: fix HIGHMEM initialization mm/hugetlb: ignore hugepage kernel args if hugepages are unsupported ...
2 parents 9e995c5 + 3e8e590 commit 13b2d15

26 files changed

Lines changed: 674 additions & 128 deletions

File tree

.mailmap

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,7 @@ Daniel Borkmann <daniel@iogearbox.net> <daniel.borkmann@tik.ee.ethz.ch>
207207
Daniel Borkmann <daniel@iogearbox.net> <dborkmann@redhat.com>
208208
Daniel Borkmann <daniel@iogearbox.net> <dborkman@redhat.com>
209209
Daniel Borkmann <daniel@iogearbox.net> <dxchgb@gmail.com>
210+
Daniel Thompson <danielt@kernel.org> <daniel.thompson@linaro.org>
210211
Danilo Krummrich <dakr@kernel.org> <dakr@redhat.com>
211212
David Brownell <david-b@pacbell.net>
212213
David Collins <quic_collinsd@quicinc.com> <collinsd@codeaurora.org>
@@ -794,6 +795,7 @@ Sven Eckelmann <sven@narfation.org> <sven.eckelmann@open-mesh.com>
794795
Sven Eckelmann <sven@narfation.org> <sven.eckelmann@openmesh.com>
795796
Sven Eckelmann <sven@narfation.org> <sven@open-mesh.com>
796797
Sven Peter <sven@kernel.org> <sven@svenpeter.dev>
798+
Szymon Wilczek <swilczek.lx@gmail.com> <szymonwilczek@gmx.com>
797799
Takashi YOSHII <takashi.yoshii.zj@renesas.com>
798800
Tamizh Chelvam Raja <quic_tamizhr@quicinc.com> <tamizhr@codeaurora.org>
799801
Taniya Das <quic_tdas@quicinc.com> <tdas@codeaurora.org>

Documentation/admin-guide/kernel-parameters.txt

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2917,6 +2917,41 @@ Kernel parameters
29172917
for Movable pages. "nn[KMGTPE]", "nn%", and "mirror"
29182918
are exclusive, so you cannot specify multiple forms.
29192919

2920+
kfence.burst= [MM,KFENCE] The number of additional successive
2921+
allocations to be attempted through KFENCE for each
2922+
sample interval.
2923+
Format: <unsigned integer>
2924+
Default: 0
2925+
2926+
kfence.check_on_panic=
2927+
[MM,KFENCE] Whether to check all KFENCE-managed objects'
2928+
canaries on panic.
2929+
Format: <bool>
2930+
Default: false
2931+
2932+
kfence.deferrable=
2933+
[MM,KFENCE] Whether to use a deferrable timer to trigger
2934+
allocations. This avoids forcing CPU wake-ups if the
2935+
system is idle, at the risk of a less predictable
2936+
sample interval.
2937+
Format: <bool>
2938+
Default: CONFIG_KFENCE_DEFERRABLE
2939+
2940+
kfence.sample_interval=
2941+
[MM,KFENCE] KFENCE's sample interval in milliseconds.
2942+
Format: <unsigned integer>
2943+
0 - Disable KFENCE.
2944+
>0 - Enabled KFENCE with given sample interval.
2945+
Default: CONFIG_KFENCE_SAMPLE_INTERVAL
2946+
2947+
kfence.skip_covered_thresh=
2948+
[MM,KFENCE] If pool utilization reaches this threshold
2949+
(pool usage%), KFENCE limits currently covered
2950+
allocations of the same source from further filling
2951+
up the pool.
2952+
Format: <unsigned integer>
2953+
Default: 75
2954+
29202955
kgdbdbgp= [KGDB,HW,EARLY] kgdb over EHCI usb debug port.
29212956
Format: <Controller#>[,poll interval]
29222957
The controller # is the number of the ehci usb debug

arch/mips/mm/init.c

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -425,6 +425,28 @@ void __init paging_init(void)
425425
static struct kcore_list kcore_kseg0;
426426
#endif
427427

428+
static inline void __init highmem_init(void)
429+
{
430+
#ifdef CONFIG_HIGHMEM
431+
unsigned long tmp;
432+
433+
/*
434+
* If CPU cannot support HIGHMEM discard the memory above highstart_pfn
435+
*/
436+
if (cpu_has_dc_aliases) {
437+
memblock_remove(PFN_PHYS(highstart_pfn), -1);
438+
return;
439+
}
440+
441+
for (tmp = highstart_pfn; tmp < highend_pfn; tmp++) {
442+
struct page *page = pfn_to_page(tmp);
443+
444+
if (!memblock_is_memory(PFN_PHYS(tmp)))
445+
SetPageReserved(page);
446+
}
447+
#endif
448+
}
449+
428450
void __init arch_mm_preinit(void)
429451
{
430452
/*
@@ -435,6 +457,7 @@ void __init arch_mm_preinit(void)
435457

436458
maar_init();
437459
setup_zero_pages(); /* Setup zeroed pages. */
460+
highmem_init();
438461

439462
#ifdef CONFIG_64BIT
440463
if ((unsigned long) &_text > (unsigned long) CKSEG0)

arch/powerpc/kernel/watchdog.c

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
#include <linux/delay.h>
2727
#include <linux/processor.h>
2828
#include <linux/smp.h>
29+
#include <linux/sys_info.h>
2930

3031
#include <asm/interrupt.h>
3132
#include <asm/paca.h>
@@ -235,7 +236,11 @@ static void watchdog_smp_panic(int cpu)
235236
pr_emerg("CPU %d TB:%lld, last SMP heartbeat TB:%lld (%lldms ago)\n",
236237
cpu, tb, last_reset, tb_to_ns(tb - last_reset) / 1000000);
237238

238-
if (!sysctl_hardlockup_all_cpu_backtrace) {
239+
if (sysctl_hardlockup_all_cpu_backtrace ||
240+
(hardlockup_si_mask & SYS_INFO_ALL_BT)) {
241+
trigger_allbutcpu_cpu_backtrace(cpu);
242+
cpumask_clear(&wd_smp_cpus_ipi);
243+
} else {
239244
/*
240245
* Try to trigger the stuck CPUs, unless we are going to
241246
* get a backtrace on all of them anyway.
@@ -244,11 +249,9 @@ static void watchdog_smp_panic(int cpu)
244249
smp_send_nmi_ipi(c, wd_lockup_ipi, 1000000);
245250
__cpumask_clear_cpu(c, &wd_smp_cpus_ipi);
246251
}
247-
} else {
248-
trigger_allbutcpu_cpu_backtrace(cpu);
249-
cpumask_clear(&wd_smp_cpus_ipi);
250252
}
251253

254+
sys_info(hardlockup_si_mask & ~SYS_INFO_ALL_BT);
252255
if (hardlockup_panic)
253256
nmi_panic(NULL, "Hard LOCKUP");
254257

@@ -415,9 +418,11 @@ DEFINE_INTERRUPT_HANDLER_NMI(soft_nmi_interrupt)
415418

416419
xchg(&__wd_nmi_output, 1); // see wd_lockup_ipi
417420

418-
if (sysctl_hardlockup_all_cpu_backtrace)
421+
if (sysctl_hardlockup_all_cpu_backtrace ||
422+
(hardlockup_si_mask & SYS_INFO_ALL_BT))
419423
trigger_allbutcpu_cpu_backtrace(cpu);
420424

425+
sys_info(hardlockup_si_mask & ~SYS_INFO_ALL_BT);
421426
if (hardlockup_panic)
422427
nmi_panic(regs, "Hard LOCKUP");
423428

drivers/dax/dax-private.h

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,14 +67,16 @@ struct dev_dax_range {
6767
/**
6868
* struct dev_dax - instance data for a subdivision of a dax region, and
6969
* data while the device is activated in the driver.
70-
* @region - parent region
71-
* @dax_dev - core dax functionality
70+
* @region: parent region
71+
* @dax_dev: core dax functionality
72+
* @align: alignment of this instance
7273
* @target_node: effective numa node if dev_dax memory range is onlined
7374
* @dyn_id: is this a dynamic or statically created instance
7475
* @id: ida allocated id when the dax_region is not static
7576
* @ida: mapping id allocator
76-
* @dev - device core
77-
* @pgmap - pgmap for memmap setup / lifetime (driver owned)
77+
* @dev: device core
78+
* @pgmap: pgmap for memmap setup / lifetime (driver owned)
79+
* @memmap_on_memory: allow kmem to put the memmap in the memory
7880
* @nr_range: size of @ranges
7981
* @ranges: range tuples of memory used
8082
*/

drivers/iommu/iommu-sva.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
* Helpers for IOMMU drivers implementing SVA
44
*/
55
#include <linux/mmu_context.h>
6+
#include <linux/mmu_notifier.h>
67
#include <linux/mutex.h>
78
#include <linux/sched/mm.h>
89
#include <linux/iommu.h>

include/linux/kfence.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,7 @@ struct kmem_obj_info;
211211
* __kfence_obj_info() - fill kmem_obj_info struct
212212
* @kpp: kmem_obj_info to be filled
213213
* @object: the object
214+
* @slab: the slab
214215
*
215216
* Return:
216217
* * false - not a KFENCE object

include/linux/nmi.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ static inline void reset_hung_task_detector(void) { }
8383
#if defined(CONFIG_HARDLOCKUP_DETECTOR)
8484
extern void hardlockup_detector_disable(void);
8585
extern unsigned int hardlockup_panic;
86+
extern unsigned long hardlockup_si_mask;
8687
#else
8788
static inline void hardlockup_detector_disable(void) {}
8889
#endif

include/linux/sched/mm.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -325,6 +325,7 @@ static inline void might_alloc(gfp_t gfp_mask)
325325

326326
/**
327327
* memalloc_flags_save - Add a PF_* flag to current->flags, save old value
328+
* @flags: Flags to add.
328329
*
329330
* This allows PF_* flags to be conveniently added, irrespective of current
330331
* value, and then the old version restored with memalloc_flags_restore().

include/linux/textsearch.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ struct ts_state
3535
* @get_pattern: return head of pattern
3636
* @get_pattern_len: return length of pattern
3737
* @owner: module reference to algorithm
38+
* @list: list to search
3839
*/
3940
struct ts_ops
4041
{

0 commit comments

Comments
 (0)