@@ -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;
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> --- src/acpi/fadt/fadt.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) -- 2.5.0