[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20231123003513.24292-4-ankita@nvidia.com>
Date: Thu, 23 Nov 2023 06:05:11 +0530
From: <ankita@...dia.com>
To: <ankita@...dia.com>, <jgg@...dia.com>,
<alex.williamson@...hat.com>, <naoya.horiguchi@....com>,
<akpm@...ux-foundation.org>, <tony.luck@...el.com>, <bp@...en8.de>,
<linmiaohe@...wei.com>, <rafael@...nel.org>, <lenb@...nel.org>,
<james.morse@....com>, <shiju.jose@...wei.com>,
<bhelgaas@...gle.com>, <pabeni@...hat.com>, <yishaih@...dia.com>,
<shameerali.kolothum.thodi@...wei.com>, <kevin.tian@...el.com>
CC: <aniketa@...dia.com>, <cjia@...dia.com>, <kwankhede@...dia.com>,
<targupta@...dia.com>, <vsethi@...dia.com>, <acurrid@...dia.com>,
<apopple@...dia.com>, <anuaggarwal@...dia.com>,
<jhubbard@...dia.com>, <danw@...dia.com>, <mochs@...dia.com>,
<kvm@...r.kernel.org>, <linux-kernel@...r.kernel.org>,
<linux-arm-kernel@...ts.infradead.org>, <linux-mm@...ck.org>,
<linux-edac@...r.kernel.org>, <linux-acpi@...r.kernel.org>
Subject: [PATCH v2 3/4] mm: Change ghes code to allow poison of non-struct pfn
From: Ankit Agrawal <ankita@...dia.com>
The GHES code allows calling of memory_failure() on the PFNs that pass the
pfn_valid() check. This contract is broken for the remapped PFNs which
fails the check and ghes_do_memory_failure() returns without triggering
memory_failure().
Update code to allow memory_failure() call on PFNs failing pfn_valid().
Signed-off-by: Ankit Agrawal <ankita@...dia.com>
---
drivers/acpi/apei/ghes.c | 12 +-----------
1 file changed, 1 insertion(+), 11 deletions(-)
diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c
index 63ad0541db38..0ca6ab9fccbe 100644
--- a/drivers/acpi/apei/ghes.c
+++ b/drivers/acpi/apei/ghes.c
@@ -471,20 +471,10 @@ static void ghes_kick_task_work(struct callback_head *head)
static bool ghes_do_memory_failure(u64 physical_addr, int flags)
{
- unsigned long pfn;
-
if (!IS_ENABLED(CONFIG_ACPI_APEI_MEMORY_FAILURE))
return false;
- pfn = PHYS_PFN(physical_addr);
- if (!pfn_valid(pfn) && !arch_is_platform_page(physical_addr)) {
- pr_warn_ratelimited(FW_WARN GHES_PFX
- "Invalid address in generic error data: %#llx\n",
- physical_addr);
- return false;
- }
-
- memory_failure_queue(pfn, flags);
+ memory_failure_queue(PHYS_PFN(physical_addr), flags);
return true;
}
--
2.17.1
Powered by blists - more mailing lists