Use zone_lock_irqsave lock guard in __offline_isolated_pages() to replace the explicit lock/unlock pattern with automatic scope-based cleanup. Suggested-by: Steven Rostedt Signed-off-by: Dmitry Ilvokhin --- mm/page_alloc.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 2759e02340fa..6f7420e4431f 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -7380,7 +7380,7 @@ void zone_pcp_reset(struct zone *zone) unsigned long __offline_isolated_pages(unsigned long start_pfn, unsigned long end_pfn) { - unsigned long already_offline = 0, flags; + unsigned long already_offline = 0; unsigned long pfn = start_pfn; struct page *page; struct zone *zone; @@ -7388,7 +7388,7 @@ unsigned long __offline_isolated_pages(unsigned long start_pfn, offline_mem_sections(pfn, end_pfn); zone = page_zone(pfn_to_page(pfn)); - zone_lock_irqsave(zone, flags); + guard(zone_lock_irqsave)(zone); while (pfn < end_pfn) { page = pfn_to_page(pfn); /* @@ -7418,7 +7418,6 @@ unsigned long __offline_isolated_pages(unsigned long start_pfn, del_page_from_free_list(page, zone, order, MIGRATE_ISOLATE); pfn += (1 << order); } - zone_unlock_irqrestore(zone, flags); return end_pfn - start_pfn - already_offline; } -- 2.47.3