diff --git a/patches.fixes/mm-sparse-do-not-swamp-log-with-huge-vmemmap-allocat-fix.patch b/patches.fixes/mm-sparse-do-not-swamp-log-with-huge-vmemmap-allocat-fix.patch new file mode 100644 index 0000000..4ce510a --- /dev/null +++ b/patches.fixes/mm-sparse-do-not-swamp-log-with-huge-vmemmap-allocat-fix.patch @@ -0,0 +1,30 @@ +From: Michal Hocko +Subject: [PATCH] mm, sparse: do not swamp log with huge vmemmap allocation +Patch-mainline: never, SLES specific +References: bnc#1082184, bnc#1087928 + +When backporting fcdaf842bd8f ("mm, sparse: do not swamp log with huge vmemmap +allocation failures") I haven't realized that the upstream code is subtly +different and it stopped zeroying allocated blocks by f7f99100d8d9 ("mm: stop +zeroing memory during allocation in vmemmap") which we do not have in our +kernels. Dropping __GFP_ZERO results in not fully initialized vmemmap page +tables and random crashes when trying to access them. Fix that by adding +__GFP_ZERO back. + +Signed-off-by: Michal Hocko + +--- + mm/sparse-vmemmap.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/mm/sparse-vmemmap.c ++++ b/mm/sparse-vmemmap.c +@@ -52,7 +52,7 @@ void * __meminit vmemmap_alloc_block(uns + { + /* If the main allocator is up use that, fallback to bootmem. */ + if (slab_is_available()) { +- gfp_t gfp_mask = GFP_KERNEL|__GFP_REPEAT |__GFP_NOWARN; ++ gfp_t gfp_mask = GFP_KERNEL|__GFP_REPEAT |__GFP_NOWARN|__GFP_ZERO; + int order = get_order(size); + static bool warned; + struct page *page; diff --git a/series.conf b/series.conf index 11dfcff..03b4acc 100644 --- a/series.conf +++ b/series.conf @@ -8070,6 +8070,7 @@ patches.fixes/mm-page_alloc-fix-potential-false-positive-in-_zone_watermark_ok.patch patches.fixes/mm-page_alloc.c-broken-deferred-calculation.patch patches.fixes/mm-sparse-do-not-swamp-log-with-huge-vmemmap-allocat.patch + patches.fixes/mm-sparse-do-not-swamp-log-with-huge-vmemmap-allocat-fix.patch patches.fixes/mm-do-not-rely-on-preempt_count-in-print_vma_addr.patch patches.fixes/mm-page_ext.c-check-if-page_ext-is-not-prepared.patch patches.drivers/media-cx231xx-cards-fix-NULL-deref-on-missing-associ