From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 88875ECAAD8 for ; Fri, 16 Sep 2022 20:06:54 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230046AbiIPUGw (ORCPT ); Fri, 16 Sep 2022 16:06:52 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35074 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230238AbiIPUGs (ORCPT ); Fri, 16 Sep 2022 16:06:48 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8720BB9411 for ; Fri, 16 Sep 2022 13:06:46 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id E8A8662D7C for ; Fri, 16 Sep 2022 20:06:45 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4A44EC433D7; Fri, 16 Sep 2022 20:06:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1663358805; bh=paHz7nKPNEaTV3fo7gmyK8A/GgJZk76yG+mkETskwrs=; h=Date:To:From:Subject:From; b=m6A38AaJtMVQ+bEBeLZGBNRJtl575HnUkz7gftYUPovHZiGKhuiS6j00dP8X6aaPG MEvbjYeh91VdQ4J2H3oDRjWgbH/DIGn2CNuy2vGpPSwpO1/CIbiCSTLToo5qSYNVFp I9e9zss3CQEz4vaZ49MwdbDektlJ3UIpBClUvEHE= Date: Fri, 16 Sep 2022 13:06:44 -0700 To: mm-commits@vger.kernel.org, willy@infradead.org, osalvador@suse.de, david@redhat.com, anshuman.khandual@arm.com, linmiaohe@huawei.com, akpm@linux-foundation.org From: Andrew Morton Subject: + mm-page_alloc-fix-freeing-static-percpu-memory.patch added to mm-unstable branch Message-Id: <20220916200645.4A44EC433D7@smtp.kernel.org> Precedence: bulk Reply-To: linux-kernel@vger.kernel.org List-ID: X-Mailing-List: mm-commits@vger.kernel.org The patch titled Subject: mm/page_alloc: fix freeing static percpu memory has been added to the -mm mm-unstable branch. Its filename is mm-page_alloc-fix-freeing-static-percpu-memory.patch This patch will shortly appear at https://git.kernel.org/pub/scm/linux/kernel/git/akpm/25-new.git/tree/patches/mm-page_alloc-fix-freeing-static-percpu-memory.patch This patch will later appear in the mm-unstable branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next via the mm-everything branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm and is updated there every 2-3 working days ------------------------------------------------------ From: Miaohe Lin Subject: mm/page_alloc: fix freeing static percpu memory Date: Fri, 16 Sep 2022 15:22:47 +0800 The size of struct per_cpu_zonestat can be 0 on !SMP && !NUMA. In that case, zone->per_cpu_zonestats will always equal to boot_zonestats. But in zone_pcp_reset(), zone->per_cpu_zonestats is freed via free_percpu() directly without checking against boot_zonestats first. boot_zonestats will be released by free_percpu() unexpectedly. Link: https://lkml.kernel.org/r/20220916072257.9639-7-linmiaohe@huawei.com Fixes: 28f836b6777b ("mm/page_alloc: split per cpu page lists and zone stats") Signed-off-by: Miaohe Lin Reviewed-by: David Hildenbrand Reviewed-by: Oscar Salvador Cc: Anshuman Khandual Cc: Matthew Wilcox Signed-off-by: Andrew Morton --- mm/page_alloc.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) --- a/mm/page_alloc.c~mm-page_alloc-fix-freeing-static-percpu-memory +++ a/mm/page_alloc.c @@ -9505,9 +9505,11 @@ void zone_pcp_reset(struct zone *zone) drain_zonestat(zone, pzstats); } free_percpu(zone->per_cpu_pageset); - free_percpu(zone->per_cpu_zonestats); zone->per_cpu_pageset = &boot_pageset; - zone->per_cpu_zonestats = &boot_zonestats; + if (zone->per_cpu_zonestats != &boot_zonestats) { + free_percpu(zone->per_cpu_zonestats); + zone->per_cpu_zonestats = &boot_zonestats; + } } } _ Patches currently in -mm which might be from linmiaohe@huawei.com are mm-hwpoison-use-clearpagehwpoison-in-memory_failure.patch mm-hwpoison-use-__pagemovable-to-detect-non-lru-movable-pages.patch mm-hwpoison-use-num_poisoned_pages_sub-to-decrease-num_poisoned_pages.patch mm-hwpoison-avoid-unneeded-page_mapped_in_vma-overhead-in-collect_procs_anon.patch mm-hwpoison-check-pagetable-explicitly-in-hwpoison_user_mappings.patch mm-hwpoison-cleanup-some-obsolete-comments.patch writeback-remove-unused-macro-dirty_full_scope.patch mm-page_alloc-ensure-kswapd-doesnt-accidentally-go-to-sleep.patch mm-page_alloc-make-zone_pcp_update-static.patch mm-remove-obsolete-macro-nr_pcp_order_mask-and-nr_pcp_order_width.patch mm-page_alloc-remove-obsolete-comment-in-zone_statistics.patch mm-page_alloc-add-__init-annotations-to-init_mem_debugging_and_hardening.patch mm-page_alloc-fix-freeing-static-percpu-memory.patch mm-remove-obsolete-pgdat_is_empty.patch mm-page_alloc-add-missing-is_migrate_isolate-check-in-set_page_guard.patch mm-page_alloc-use-local-variable-zone_idx-directly.patch mm-memory_hotplug-remove-obsolete-generic_free_nodedata.patch mm-page_alloc-make-boot_nodestats-static.patch mm-page_alloc-use-helper-macro-sz_1km.patch mm-page_alloc-init-local-variable-buddy_pfn.patch mm-page_alloc-use-costly_order-in-warn_on_once_gfp.patch mm-page_alloc-remove-obsolete-gfpflags_normal_context.patch mm-page_alloc-fix-obsolete-comment-in-deferred_pfn_valid.patch