Received: by 2002:a05:6358:4e97:b0:b3:742d:4702 with SMTP id ce23csp404353rwb; Thu, 18 Aug 2022 06:04:24 -0700 (PDT) X-Google-Smtp-Source: AA6agR6+V/t4bdZtwViWopAWM3qAm0ZMWutbgZS9LoiYkHP0k1UQsiPmcI6fN5HnIY1qNTJyve+O X-Received: by 2002:a17:902:b704:b0:16e:f05d:411e with SMTP id d4-20020a170902b70400b0016ef05d411emr2570254pls.38.1660827864006; Thu, 18 Aug 2022 06:04:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1660827864; cv=none; d=google.com; s=arc-20160816; b=nwGB3TkoXO31rGzH4O5RR1PRFsZm/aRixR9Y7a0/vRbHzNhFeSEw/ZU+h1YhGZopim eIoxm8jnps2kbovFbP7nUiLX8vNumkRtGXMgPP++R0oKBvdV1MtMGXOW0j3o5Gb7Lw8X wTzGlwraVek2nXfhubOL3eNzDJzUSBkM+DG0VvdMPm0w3N0n27vCZ36DNdnW/DYb/vXw aevd8yQ0xwCmbXeEWyGdcPciheblWQbkRB7P4ONC7Ywn08GZv60fwE1BLrTOLSrvVPyY NnjsJfWJQHWR8KPkVWybMHXR148GEfl6+WprBH7jnRzj67TpEETNuzQq5zd9Zcc/IF6L VQsw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=h8JOndS46/RcjgxrDpgN7LFg53DbMpjkcyMzE5PQBUg=; b=LsgqnPR0zsil5iZM+KVsVC+L11pRoBdu3y6+420A8u2q6A2sSXEgE1mQIhIGMNUDLE JY60iSJbjPWPsJJAmMzi8CCh5IGTLgIJSs3LA6SVbYVP+CdEetazYiEoD2xIv73utjgz og67P+Ft6SzjqbNH/TD53Nq99wvN+Zo4IxK/oY/a/hhjSGw8xZYgC2N8Ds9OTc15FeqY 3yX1NIz410hgJIzMNVvJ8pQOhf5GOXtaC80fXGNkB2BW8TFS+32Lu6P+xWCovYTLCBSo HjtlOB2vUCnBjMD1/sT9obZpqsePBLcdpY5V9ovGHWEmjp6zqaaEc3ocxiMaHjShj32U YgcA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id k7-20020a170902c40700b0016d09df65d8si1375425plk.411.2022.08.18.06.04.10; Thu, 18 Aug 2022 06:04:23 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S244876AbiHRNBL (ORCPT + 99 others); Thu, 18 Aug 2022 09:01:11 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51194 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S244860AbiHRNAt (ORCPT ); Thu, 18 Aug 2022 09:00:49 -0400 Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2F17F6B16B for ; Thu, 18 Aug 2022 06:00:48 -0700 (PDT) Received: from canpemm500002.china.huawei.com (unknown [172.30.72.56]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4M7lLZ5N68znTYd; Thu, 18 Aug 2022 20:58:30 +0800 (CST) Received: from huawei.com (10.175.124.27) by canpemm500002.china.huawei.com (7.192.104.244) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.24; Thu, 18 Aug 2022 21:00:43 +0800 From: Miaohe Lin To: , CC: , , Subject: [PATCH 6/6] mm, hwpoison: avoid trying to unpoison reserved page Date: Thu, 18 Aug 2022 21:00:16 +0800 Message-ID: <20220818130016.45313-7-linmiaohe@huawei.com> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20220818130016.45313-1-linmiaohe@huawei.com> References: <20220818130016.45313-1-linmiaohe@huawei.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7BIT Content-Type: text/plain; charset=US-ASCII X-Originating-IP: [10.175.124.27] X-ClientProxiedBy: dggems705-chm.china.huawei.com (10.3.19.182) To canpemm500002.china.huawei.com (7.192.104.244) X-CFilter-Loop: Reflected X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org For reserved pages, HWPoison flag will be set without increasing the page refcnt. So we shouldn't even try to unpoison these pages and thus decrease the page refcnt unexpectly. Add a PageReserved() check to filter this case out and remove the below unneeded zero page (zero page is reserved) check. Signed-off-by: Miaohe Lin --- mm/memory-failure.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mm/memory-failure.c b/mm/memory-failure.c index 5f9615a86296..c831c41bb092 100644 --- a/mm/memory-failure.c +++ b/mm/memory-failure.c @@ -2355,7 +2355,7 @@ int unpoison_memory(unsigned long pfn) goto unlock_mutex; } - if (PageSlab(page) || PageTable(page)) + if (PageSlab(page) || PageTable(page) || PageReserved(page)) goto unlock_mutex; ret = get_hwpoison_page(p, MF_UNPOISON); @@ -2386,7 +2386,7 @@ int unpoison_memory(unsigned long pfn) freeit = !!TestClearPageHWPoison(p); put_page(page); - if (freeit && !(pfn == my_zero_pfn(0) && page_count(p) == 1)) { + if (freeit) { put_page(page); ret = 0; } -- 2.23.0