mm-swap-restore-swap_space-attr-aviod-krn-panic.patch removed from -mm tree
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.
---
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, svoid __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