diff mbox

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

Message ID 1455925199-8587-3-git-send-email-al.stone@linaro.org
State Accepted
Headers show

Commit Message

Al Stone Feb. 19, 2016, 11:39 p.m. UTC
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@linaro.org>
Acked-by: Colin Ian King <colin.king@canonical.com>
Acked-by: Ivan Hu <ivan.hu@canonical.com>
---
 src/acpi/fadt/fadt.c | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)
diff mbox

Patch

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;