| From cd5250cc229abc5eaa58cede03ab3e4697d5842c Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Wed, 30 Sep 2020 22:05:45 +0800 |
| Subject: ACPI: HMAT: Fix handling of changes from ACPI 6.2 to ACPI 6.3 |
| |
| From: Jonathan Cameron <Jonathan.Cameron@huawei.com> |
| |
| [ Upstream commit 2c5b9bde95c96942f2873cea6ef383c02800e4a8 ] |
| |
| In ACPI 6.3, the Memory Proximity Domain Attributes Structure |
| changed substantially. One of those changes was that the flag |
| for "Memory Proximity Domain field is valid" was deprecated. |
| |
| This was because the field "Proximity Domain for the Memory" |
| became a required field and hence having a validity flag makes |
| no sense. |
| |
| So the correct logic is to always assume the field is there. |
| Current code assumes it never is. |
| |
| Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> |
| Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/acpi/numa/hmat.c | 3 ++- |
| 1 file changed, 2 insertions(+), 1 deletion(-) |
| |
| diff --git a/drivers/acpi/numa/hmat.c b/drivers/acpi/numa/hmat.c |
| index 2c32cfb723701..6a91a55229aee 100644 |
| --- a/drivers/acpi/numa/hmat.c |
| +++ b/drivers/acpi/numa/hmat.c |
| @@ -424,7 +424,8 @@ static int __init hmat_parse_proximity_domain(union acpi_subtable_headers *heade |
| pr_info("HMAT: Memory Flags:%04x Processor Domain:%u Memory Domain:%u\n", |
| p->flags, p->processor_PD, p->memory_PD); |
| |
| - if (p->flags & ACPI_HMAT_MEMORY_PD_VALID && hmat_revision == 1) { |
| + if ((hmat_revision == 1 && p->flags & ACPI_HMAT_MEMORY_PD_VALID) || |
| + hmat_revision > 1) { |
| target = find_mem_target(p->memory_PD); |
| if (!target) { |
| pr_debug("HMAT: Memory Domain missing from SRAT\n"); |
| -- |
| 2.27.0 |
| |