Received: by 2002:a25:e74b:0:0:0:0:0 with SMTP id e72csp1183718ybh; Thu, 16 Jul 2020 05:39:39 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz1aogfORNgR5kDi2TYJ4iDHOZK3Or8EDoazbbSnbxCS16IOode1R+5RsNFfYpo/oWfooGk X-Received: by 2002:a17:906:40d7:: with SMTP id a23mr3406395ejk.421.1594903178778; Thu, 16 Jul 2020 05:39:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1594903178; cv=none; d=google.com; s=arc-20160816; b=deRLcft9ZBeq1ICxhy8APg4ODQCg1fxToEnfh/CpwLzZtu8FMcJ5dFN6d8syyDyynT zAq4GDIy+/G3qcmTrxbQU52IjI8tsDE+535HSiCHKTh0LhuD0tPxPWsetrUY2DSO9GvX ZwO0wOnCkUre9DmmHj+TnUyLhpVv/LrSHJ5/KzjazDKEb9pBuzSwvQ0s3/6Ihl6Eb/r3 9HoAY5rIAKs97f5CWN4jlv3PxxltQMRUcpQnqkQV6/0D0kiOMrmtIVRFlp3vCrL+IbEn G8MXlZUrttzdYK1DNQaPZ18bMNBQQ4vO4ZG4lLfC/NDot+wZyHzC6N6WveJXoaMDPsIc 0C5w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from; bh=WNThkybIVE+nyuZlJ5yLYiLfesODRYUX5GmQzRBJQBg=; b=dkKGJtbpnZG68q2NcFOMRu7fk88FNX30hM/TaaxlMIDkc9nEoaL5MzyJGLXp5M/M35 wSwXmdmy6Vg3jcvxPbkhYsRRiexkg53rXhY3SyOrCpLPTp3I7i3LLYJvJK7mZkON09Gn DoELpSz0AfTOYCwhXvdZn1FfoUwdUM0xS3rGVTHxzIv2wCMF2YEtfvMzKlOEXMzNRmPS QPQcqIlUBvPCQwubMFy3DG8zrKIjZwjRAooSzu4WelaouoNjbrnRt07OhGKypf3NxA7d qcy5dX5Ne6cK9Dm0mMISuUvc0d6n2EoJZ1urhqH+dB20uak+GpkP2T2q4zOl4HSay4bZ gDFQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id bl25si2834188ejb.731.2020.07.16.05.39.15; Thu, 16 Jul 2020 05:39:38 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728820AbgGPMii (ORCPT + 99 others); Thu, 16 Jul 2020 08:38:38 -0400 Received: from mx2.suse.de ([195.135.220.15]:35944 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728776AbgGPMic (ORCPT ); Thu, 16 Jul 2020 08:38:32 -0400 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id DB88EB976; Thu, 16 Jul 2020 12:38:34 +0000 (UTC) From: Oscar Salvador To: akpm@linux-foundation.org Cc: mhocko@suse.com, linux-mm@kvack.org, mike.kravetz@oracle.com, david@redhat.com, aneesh.kumar@linux.vnet.ibm.com, naoya.horiguchi@nec.com, linux-kernel@vger.kernel.org, Naoya Horiguchi , Oscar Salvador Subject: [PATCH v4 05/15] mm,hwpoison-inject: don't pin for hwpoison_filter Date: Thu, 16 Jul 2020 14:37:59 +0200 Message-Id: <20200716123810.25292-6-osalvador@suse.de> X-Mailer: git-send-email 2.13.7 In-Reply-To: <20200716123810.25292-1-osalvador@suse.de> References: <20200716123810.25292-1-osalvador@suse.de> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Naoya Horiguchi Another memory error injection interface debugfs:hwpoison/corrupt-pfn also takes bogus refcount for hwpoison_filter(). It's justified because this does a coarse filter, expecting that memory_failure() redoes the check for sure. Signed-off-by: Naoya Horiguchi Signed-off-by: Oscar Salvador --- mm/hwpoison-inject.c | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/mm/hwpoison-inject.c b/mm/hwpoison-inject.c index e488876b168a..1ae1ebc2b9b1 100644 --- a/mm/hwpoison-inject.c +++ b/mm/hwpoison-inject.c @@ -26,11 +26,6 @@ static int hwpoison_inject(void *data, u64 val) p = pfn_to_page(pfn); hpage = compound_head(p); - /* - * This implies unable to support free buddy pages. - */ - if (!get_hwpoison_page(p)) - return 0; if (!hwpoison_filter_enable) goto inject; @@ -40,23 +35,20 @@ static int hwpoison_inject(void *data, u64 val) * This implies unable to support non-LRU pages. */ if (!PageLRU(hpage) && !PageHuge(p)) - goto put_out; + return 0; /* - * do a racy check with elevated page count, to make sure PG_hwpoison - * will only be set for the targeted owner (or on a free page). + * do a racy check to make sure PG_hwpoison will only be set for + * the targeted owner (or on a free page). * memory_failure() will redo the check reliably inside page lock. */ err = hwpoison_filter(hpage); if (err) - goto put_out; + return 0; inject: pr_info("Injecting memory failure at pfn %#lx\n", pfn); - return memory_failure(pfn, MF_COUNT_INCREASED); -put_out: - put_hwpoison_page(p); - return 0; + return memory_failure(pfn, 0); } static int hwpoison_unpoison(void *data, u64 val) -- 2.26.2