From 3d9294b0a1fec1b97ae35aa2f293c70f97c9f87a Mon Sep 17 00:00:00 2001 From: Andrew Turner Date: Wed, 28 Feb 2018 15:18:31 +0000 Subject: [PATCH] Only check the ProducerConsumer flag on extended memory. As per the ACPI 6.0 spec 6.4.3.5 bit 0 is ignored on QWord, DWord, and Word Address Space Descriptors, but not Extended Address Space Descriptors. Reviewed by: jhb Sponsored by: DARPA, AFRL Sponsored by: Cavium (Hardware) Differential Revision: https://reviews.freebsd.org/D14516 --- sys/dev/acpica/acpi_resource.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sys/dev/acpica/acpi_resource.c b/sys/dev/acpica/acpi_resource.c index 0a1b69ac93b5..051f4f279776 100644 --- a/sys/dev/acpica/acpi_resource.c +++ b/sys/dev/acpica/acpi_resource.c @@ -342,7 +342,8 @@ acpi_parse_resource(ACPI_RESOURCE *res, void *context) } if (length <= 0) break; - if (res->Data.Address.ProducerConsumer != ACPI_CONSUMER) { + if (res->Type == ACPI_RESOURCE_TYPE_EXTENDED_ADDRESS64 && + res->Data.Address.ProducerConsumer != ACPI_CONSUMER) { ACPI_DEBUG_PRINT((ACPI_DB_RESOURCES, "ignored %s %s producer\n", name, acpi_address_range_name(res->Data.Address.ResourceType)));