summaryrefslogtreecommitdiff
path: root/mm/mm_init.c
diff options
context:
space:
mode:
authorAndrew Morton <akpm@linux-foundation.org>2026-01-31 14:20:03 -0800
committerAndrew Morton <akpm@linux-foundation.org>2026-01-31 14:20:03 -0800
commitf84b65b045f186b8fbaa32e090688ef3282b56c3 (patch)
tree4c1e51b960d36e30b72b0c3c110ecee1a7821133 /mm/mm_init.c
parent6fe0e6d599a6bb4b65704285d40d4972423b7aaa (diff)
parentbd58782995a2e6a07fd07255f3cc319f40b131c9 (diff)
downloadlinux-next-f84b65b045f186b8fbaa32e090688ef3282b56c3.tar.gz
linux-next-f84b65b045f186b8fbaa32e090688ef3282b56c3.zip
Merge branch 'mm-hotfixes-stable' into mm-stable to pick up "mm/shmem,
swap: fix race of truncate and swap entry split", needed for merging "mm, swap: cleanup swap entry management workflow".
Diffstat (limited to 'mm/mm_init.c')
-rw-r--r--mm/mm_init.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/mm/mm_init.c b/mm/mm_init.c
index 0cfbdef91d72..1a29a719af58 100644
--- a/mm/mm_init.c
+++ b/mm/mm_init.c
@@ -2053,7 +2053,7 @@ static unsigned long __init deferred_init_pages(struct zone *zone,
*/
static unsigned long __init
deferred_init_memmap_chunk(unsigned long start_pfn, unsigned long end_pfn,
- struct zone *zone)
+ struct zone *zone, bool can_resched)
{
int nid = zone_to_nid(zone);
unsigned long nr_pages = 0;
@@ -2079,10 +2079,10 @@ deferred_init_memmap_chunk(unsigned long start_pfn, unsigned long end_pfn,
spfn = chunk_end;
- if (irqs_disabled())
- touch_nmi_watchdog();
- else
+ if (can_resched)
cond_resched();
+ else
+ touch_nmi_watchdog();
}
}
@@ -2095,7 +2095,7 @@ deferred_init_memmap_job(unsigned long start_pfn, unsigned long end_pfn,
{
struct zone *zone = arg;
- deferred_init_memmap_chunk(start_pfn, end_pfn, zone);
+ deferred_init_memmap_chunk(start_pfn, end_pfn, zone, true);
}
static unsigned int __init
@@ -2210,7 +2210,7 @@ bool __init deferred_grow_zone(struct zone *zone, unsigned int order)
for (spfn = first_deferred_pfn, epfn = SECTION_ALIGN_UP(spfn + 1);
nr_pages < nr_pages_needed && spfn < zone_end_pfn(zone);
spfn = epfn, epfn += PAGES_PER_SECTION) {
- nr_pages += deferred_init_memmap_chunk(spfn, epfn, zone);
+ nr_pages += deferred_init_memmap_chunk(spfn, epfn, zone, false);
}
/*