From c1116211a7b329c26b0370565c36b084ceb08f71 Mon Sep 17 00:00:00 2001
From: ethan.zhao <ethan.kernel@gmail.com>
Date: Tue, 13 Nov 2012 22:21:12 -0800
Subject: [PATCH 642/642] To follow the ACPI spec 3,4&5 and keep the compatibility and latitude,only
 output mismatch warning when 64bit address and 32bit address of FACS/DSDT are all
 valid but not equal to each other.


Signed-off-by: ethan.zhao <ethan.kernel@gmail.com>
---
 drivers/acpi/acpica/tbfadt.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/acpi/acpica/tbfadt.c b/drivers/acpi/acpica/tbfadt.c
index 3906518..f23f512 100644
--- a/drivers/acpi/acpica/tbfadt.c
+++ b/drivers/acpi/acpica/tbfadt.c
@@ -512,7 +512,7 @@ static void acpi_tb_validate_fadt(void)
 	 * the 32-bit and 64-bit address fields (FIRMWARE_CTRL/X_FIRMWARE_CTRL and
 	 * DSDT/X_DSDT) would indicate the presence of two FACS or two DSDT tables.
 	 */
-	if (acpi_gbl_FADT.facs &&
+	if ((acpi_gbl_FADT.facs && acpi_gbl_FADT.Xfacs) &&
 	    (acpi_gbl_FADT.Xfacs != (u64)acpi_gbl_FADT.facs)) {
 		ACPI_BIOS_WARNING((AE_INFO,
 				   "32/64X FACS address mismatch in FADT - "
@@ -523,7 +523,7 @@ static void acpi_tb_validate_fadt(void)
 		acpi_gbl_FADT.Xfacs = (u64)acpi_gbl_FADT.facs;
 	}
 
-	if (acpi_gbl_FADT.dsdt &&
+	if ((acpi_gbl_FADT.dsdt && acpi_gbl_FADT.Xdsdt) &&
 	    (acpi_gbl_FADT.Xdsdt != (u64)acpi_gbl_FADT.dsdt)) {
 		ACPI_BIOS_WARNING((AE_INFO,
 				   "32/64X DSDT address mismatch in FADT - "
-- 
1.7.1

