[PATCH v2 02/23] FADT: non-x86 machines need an FADT but x86 can survive without one

Al Stone al.stone at linaro.org
Fri Feb 19 23:39:38 UTC 2016


If there is no FADT, x86 machines can get by.  Others cannot (or at
least should not).  On non-x86 machines, cause the initialization to
fail instead of ignoring a zero-length FADT.

Signed-off-by: Al Stone <al.stone at linaro.org>
Acked-by: Colin Ian King <colin.king at canonical.com>
Acked-by: Ivan Hu <ivan.hu at canonical.com>
---
 src/acpi/fadt/fadt.c | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/src/acpi/fadt/fadt.c b/src/acpi/fadt/fadt.c
index 1a5560c..aacf317 100644
--- a/src/acpi/fadt/fadt.c
+++ b/src/acpi/fadt/fadt.c
@@ -56,10 +56,17 @@ static int fadt_init(fwts_framework *fw)
 	fadt = (const fwts_acpi_table_fadt*)table->data;
 	fadt_size = table->length;
 
-	/*  Not having a FADT is not a failure */
+	/*  Not having a FADT is not a failure on x86 */
 	if (fadt_size == 0) {
-		fwts_log_info(fw, "FADT does not exist, this is not necessarily a failure, skipping tests.");
-		return FWTS_SKIP;
+		if (fw->target_arch == FWTS_ARCH_X86) {
+			fwts_log_info(fw,
+				      "FADT does not exist, this is not "
+				      "necessarily a failure, skipping tests.");
+			return FWTS_SKIP;
+		} else {
+			fwts_log_error(fw, "ACPI table FACP has zero length!");
+			return FWTS_ERROR;
+		}
 	}
 
 	return FWTS_OK;
-- 
2.5.0




More information about the fwts-devel mailing list