From c980eafc5b738f274b36fac634f06ff000a07038 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Wed, 29 Jul 2026 13:08:08 +0200 Subject: [PATCH] x86/mm: Use guard() in cpa_collapse_large_pages() Signed-off-by: Peter Zijlstra (Intel) Link: https://patch.msgid.link/20260729111119.375614011@infradead.org --- arch/x86/mm/pat/set_memory.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/arch/x86/mm/pat/set_memory.c b/arch/x86/mm/pat/set_memory.c index b1e780a465b5..fc6a1b28a701 100644 --- a/arch/x86/mm/pat/set_memory.c +++ b/arch/x86/mm/pat/set_memory.c @@ -417,7 +417,7 @@ static void cpa_collapse_large_pages(struct cpa_data *cpa) int collapsed = 0; int i; - spin_lock(&cpa_lock); + guard(spinlock)(&cpa_lock); if (cpa->flags & (CPA_PAGES_ARRAY | CPA_ARRAY)) { for (i = 0; i < cpa->numpages; i++) @@ -432,10 +432,8 @@ static void cpa_collapse_large_pages(struct cpa_data *cpa) collapsed += collapse_large_pages(addr, &pgtables); } - if (!collapsed) { - spin_unlock(&cpa_lock); + if (!collapsed) return; - } flush_tlb_all(); @@ -443,8 +441,6 @@ static void cpa_collapse_large_pages(struct cpa_data *cpa) list_del(&ptdesc->pt_list); pagetable_free(ptdesc); } - - spin_unlock(&cpa_lock); } static void cpa_flush(struct cpa_data *cpa, int cache)