Skip to contentSkip to conversation

mm-swap-restore-swap_space-attr-aviod-krn-panic.patch removed from -mm tree

merged mm-hotfixes-stable Andrew Morton 1 participant 1 message Jan 27 Stable branch

lore
Share & tools
lore

Andrew Morton

author tree notice Applied
#0 lore raw

The quilt patch titled
Subject: mm, swap: restore swap_space attr aviod kernel panic
has been removed from the -mm tree. Its filename was
mm-swap-restore-swap_space-attr-aviod-krn-panic.patch

This patch was dropped because it was merged into the mm-hotfixes-stable branch of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm

------------------------------------------------------
From: "robin.kuo" <[email protected]>
Subject: mm, swap: restore swap_space attr aviod kernel panic
Date: Fri, 16 Jan 2026 14:25:00 +0800

commit 8b47299a411a ("mm, swap: mark swap address space ro and add context debug check") made the swap address space read-only. It may lead to kernel panic if arch_prepare_to_swap returns a failure under heavy memory pressure as follows,

el1_abort+0x40/0x64
el1h_64_sync_handler+0x48/0xcc
el1h_64_sync+0x84/0x88
errseq_set+0x4c/0xb8 (P)
__filemap_set_wb_err+0x20/0xd0
shrink_folio_list+0xc20/0x11cc
evict_folios+0x1520/0x1be4
try_to_shrink_lruvec+0x27c/0x3dc
shrink_one+0x9c/0x228
shrink_node+0xb3c/0xeac
do_try_to_free_pages+0x170/0x4f0
try_to_free_pages+0x334/0x534
__alloc_pages_direct_reclaim+0x90/0x158
__alloc_pages_slowpath+0x334/0x588
__alloc_frozen_pages_noprof+0x224/0x2fc
__folio_alloc_noprof+0x14/0x64
vma_alloc_zeroed_movable_folio+0x34/0x44
do_pte_missing+0xad4/0x1040
handle_mm_fault+0x4a4/0x790
do_page_fault+0x288/0x5f8
do_translation_fault+0x38/0x54
do_mem_abort+0x54/0xa8

Restore swap address space as not ro to avoid the panic.

Fixes 8b47299a411a ("mm, swap: mark swap address space ro and add context debug check")
Cc andrew.yang <[email protected]>
Cc AngeloGiaocchino Del Regno <[email protected]>
Cc Baoquan He <[email protected]>
Cc Barry Song <[email protected]>
Cc Chinwen Chang <[email protected]>
Cc Chris Li <[email protected]>
Cc Kairui Song <[email protected]>
Cc Kairui Song <[email protected]>
Cc Kemeng Shi <[email protected]>
Cc Mathias Brugger <[email protected]>
Cc Nhat Pham <[email protected]>
Cc Qun-wei Lin <[email protected]>

---

 mm/swap.h       |    2 +-
 mm/swap_state.c |    3 +--
 2 files changed, 2 insertions(+), 3 deletions(-)
mm/swap.h renamed from mm/swap.h~mm-swap-restore-swap_space-attr-aviod-krn-panic +1 -1
@@ -198,7 +198,7 @@ int swap_writeout(struct folio *folio, s
 void __swap_writepage(struct folio *folio, struct swap_iocb **swap_plug);
 
 /* linux/mm/swap_state.c */
-extern struct address_space swap_space __ro_after_init;
+extern struct address_space swap_space __read_mostly;
 static inline struct address_space *swap_address_space(swp_entry_t entry)
 {
 	return &swap_space;
mm/swap_state.c renamed from mm/swap_state.c~mm-swap-restore-swap_space-attr-aviod-krn-panic +1 -2
@@ -37,8 +37,7 @@ static const struct address_space_operat
 #endif
 };
 
-/* Set swap_space as read only as swap cache is handled by swap table */
-struct address_space swap_space __ro_after_init = {
+struct address_space swap_space __read_mostly = {
 	.a_ops = &swap_aops,
 };
 

_

Patches currently in -mm which might be from [email protected] are