ACK: [PATCH 1/3] fwts: remove launchpad tagging from fwts
IvanHu
ivan.hu at canonical.com
Mon Dec 23 07:02:31 UTC 2013
On 12/17/2013 10:21 PM, Colin King wrote:
> From: Colin Ian King <colin.king at canonical.com>
>
> fwts launchpad tags have never been used and are an overhead
> that is effectivelty redundant. So, rather than keep on maintaining
> this, remove the tagging from the fwts lib and the fwts tests.
>
> Signed-off-by: Colin Ian King <colin.king at canonical.com>
> ---
> src/acpi/apicinstance/apicinstance.c | 1 -
> src/acpi/checksum/checksum.c | 2 -
> src/acpi/dmar/dmar.c | 1 -
> src/acpi/fadt/fadt.c | 13 +--
> src/acpi/lid/lid.c | 16 ++-
> src/acpi/mcfg/mcfg.c | 6 --
> src/acpi/method/method.c | 90 ++--------------
> src/acpi/powerbutton/powerbutton.c | 5 +-
> src/acpi/s3/s3.c | 4 -
> src/acpi/s3power/s3power.c | 7 +-
> src/acpi/s4/s4.c | 8 --
> src/acpi/wakealarm/wakealarm.c | 5 -
> src/apic/apicedge/apicedge.c | 12 +--
> src/bios/bios32/bios32.c | 24 ++---
> src/bios/ebda_region/ebda_region.c | 4 +-
> src/bios/mtrr/mtrr.c | 12 +--
> src/bios/os2gap/os2gap.c | 1 -
> src/bios/pciirq/pciirq.c | 4 +-
> src/bios/pnp/pnp.c | 4 +-
> src/lib/include/fwts.h | 1 -
> src/lib/include/fwts_framework.h | 7 +-
> src/lib/include/fwts_klog.h | 1 -
> src/lib/include/fwts_log.h | 3 -
> src/lib/include/fwts_tag.h | 83 --------------
> src/lib/src/Makefile.am | 1 -
> src/lib/src/fwts_framework.c | 57 +++-------
> src/lib/src/fwts_klog.c | 5 -
> src/lib/src/fwts_log.c | 5 -
> src/lib/src/fwts_tag.c | 202 -----------------------------------
> src/pci/crs/crs.c | 7 --
> src/pci/maxreadreq/maxreadreq.c | 1 -
> 31 files changed, 53 insertions(+), 539 deletions(-)
> delete mode 100644 src/lib/include/fwts_tag.h
> delete mode 100644 src/lib/src/fwts_tag.c
>
> diff --git a/src/acpi/apicinstance/apicinstance.c b/src/acpi/apicinstance/apicinstance.c
> index 1c262b4..5949879 100644
> --- a/src/acpi/apicinstance/apicinstance.c
> +++ b/src/acpi/apicinstance/apicinstance.c
> @@ -61,7 +61,6 @@ static int apicinstance_test1(fwts_framework *fw)
> fwts_failed(fw, LOG_LEVEL_HIGH, "MultipleAPICMADT",
> "Found %d APIC/MADT tables, the kernel expects just one.",
> count);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_INVALID_TABLE);
> snprintf(buffer, sizeof(buffer), " (or up to %d)", count);
> fwts_log_advice(fw,
> "If you find any APIC issues, perhaps try using "
> diff --git a/src/acpi/checksum/checksum.c b/src/acpi/checksum/checksum.c
> index 3eb3f74..0138430 100644
> --- a/src/acpi/checksum/checksum.c
> +++ b/src/acpi/checksum/checksum.c
> @@ -133,8 +133,6 @@ static int checksum_scan_tables(fwts_framework *fw)
> "error and still load it. This is not a "
> "critical issue, but should be fixed if "
> "possible to avoid the warning messages.");
> -
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_TABLE_CHECKSUM);
> }
> }
> return FWTS_OK;
> diff --git a/src/acpi/dmar/dmar.c b/src/acpi/dmar/dmar.c
> index 880ba88..d6a6d28 100644
> --- a/src/acpi/dmar/dmar.c
> +++ b/src/acpi/dmar/dmar.c
> @@ -264,7 +264,6 @@ static int dmar_acpi_table_check(fwts_framework *fw)
> if (table->length <= DMAR_HEADER_SIZE) {
> fwts_failed(fw, LOG_LEVEL_MEDIUM, "InvalidDMAR",
> "Invalid DMAR ACPI table.");
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_INVALID_TABLE);
> return FWTS_ERROR;
> }
>
> diff --git a/src/acpi/fadt/fadt.c b/src/acpi/fadt/fadt.c
> index 9807d56..70ec5e9 100644
> --- a/src/acpi/fadt/fadt.c
> +++ b/src/acpi/fadt/fadt.c
> @@ -75,20 +75,16 @@ static int fadt_test1(fwts_framework *fw)
> if ((fadt->header.revision > 1) || (fadt->header.length >= 244)) {
> /* Sanity check sizes with extended address variants */
> fwts_log_info(fw, "FADT is greater than ACPI version 1.0");
> - if ((uint64_t)port != fadt->x_pm1a_cnt_blk.address) {
> + if ((uint64_t)port != fadt->x_pm1a_cnt_blk.address)
> fwts_failed(fw, LOG_LEVEL_MEDIUM,
> "FADTPM1CNTAddrMismatch",
> "32 and 64 bit versions of FADT pm1_cnt address do not match (0x%8.8x vs 0x%16.16" PRIx64 ").",
> port, fadt->x_pm1a_cnt_blk.address);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_BAD_ADDRESS);
> - }
> - if (width != fadt->x_pm1a_cnt_blk.register_bit_width) {
> + if (width != fadt->x_pm1a_cnt_blk.register_bit_width)
> fwts_failed(fw, LOG_LEVEL_MEDIUM,
> "FADTPM1CNTSizeMismatch",
> "32 and 64 bit versions of FADT pm1_cnt size do not match (0x%x vs 0x%x).",
> width, fadt->x_pm1a_cnt_blk.register_bit_width);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_BAD_ADDRESS);
> - }
>
> port = fadt->x_pm1a_cnt_blk.address;
> width = fadt->x_pm1a_cnt_blk.register_bit_width;
> @@ -129,7 +125,6 @@ static int fadt_test1(fwts_framework *fw)
> fwts_failed(fw, LOG_LEVEL_HIGH, "FADTPM1AInvalidWidth",
> "FADT pm1a register has invalid bit width of %d.",
> width);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_BAD_LENGTH);
> return FWTS_OK;
> }
>
> @@ -140,11 +135,9 @@ static int fadt_test1(fwts_framework *fw)
>
> if (val32 & 0x01)
> fwts_passed(fw, "SCI_EN bit in PM1a Control Register Block is enabled.");
> - else {
> + else
> fwts_failed(fw, LOG_LEVEL_HIGH, "SCI_ENNotEnabled",
> "SCI_EN bit in PM1a Control Register Block is not enabled.");
> - fwts_tag_failed(fw, FWTS_TAG_POWER_MANAGEMENT);
> - }
>
> return FWTS_OK;
> }
> diff --git a/src/acpi/lid/lid.c b/src/acpi/lid/lid.c
> index 65fdc8a..6948f41 100644
> --- a/src/acpi/lid/lid.c
> +++ b/src/acpi/lid/lid.c
> @@ -70,11 +70,10 @@ static int lid_test1(fwts_framework *fw)
>
> lid_check_field_poll(fw, FWTS_BUTTON_LID_OPENED, &matching, ¬_matching);
>
> - if ((matching == 0) || (not_matching > 0)) {
> + if ((matching == 0) || (not_matching > 0))
> fwts_failed(fw, LOG_LEVEL_HIGH, "LidNotOpen",
> "Detected a closed LID state.");
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_LID);
> - } else
> + else
> fwts_passed(fw, "Detected open LID state.");
>
> return FWTS_OK;
> @@ -141,18 +140,15 @@ static int lid_test_state(fwts_framework *fw, int button)
> fwts_gpe_free(gpes_start, gpe_count);
> fwts_gpe_free(gpes_end, gpe_count);
>
> - if (events == 0) {
> + if (events == 0)
> fwts_failed(fw, LOG_LEVEL_HIGH, "NoLidEvents",
> "Did not detect any ACPI LID events while waiting for to LID %s.", state);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_LID);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_EVENT);
> - } else {
> + else {
> fwts_passed(fw, "Detected ACPI LID events while waiting for LID to %s.", state);
> - if ((matching == 0) || (not_matching > 0)) {
> + if ((matching == 0) || (not_matching > 0))
> fwts_failed(fw, LOG_LEVEL_HIGH, "NoLidState",
> "Could not detect lid %s state.", state);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_LID);
> - } else
> + else
> fwts_passed(fw, "Detected lid %s state.", state);
> }
>
> diff --git a/src/acpi/mcfg/mcfg.c b/src/acpi/mcfg/mcfg.c
> index a4d22a6..85d0bb8 100644
> --- a/src/acpi/mcfg/mcfg.c
> +++ b/src/acpi/mcfg/mcfg.c
> @@ -151,7 +151,6 @@ static int mcfg_test1(fwts_framework *fw)
> fwts_failed(fw, LOG_LEVEL_HIGH, "MCFGInvalidSize",
> "Invalid MCFG ACPI table size: got %zd bytes expecting more",
> mcfg_size + sizeof(fwts_acpi_table_mcfg));
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_INVALID_TABLE);
> fwts_advice(fw,
> "MCFG table must be least %zd bytes (header size) with "
> "multiples of %zd bytes for each MCFG entry.",
> @@ -170,7 +169,6 @@ static int mcfg_test1(fwts_framework *fw)
> if (mcfg_size != (ssize_t)(nr * sizeof(fwts_acpi_mcfg_configuration))) {
> fwts_failed(fw, LOG_LEVEL_HIGH, "MCFGInvalidSize2",
> "MCFG table is not a multiple of record size");
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_INVALID_TABLE);
> return FWTS_ERROR;
> }
>
> @@ -181,7 +179,6 @@ static int mcfg_test1(fwts_framework *fw)
> if (mcfg == NULL) {
> fwts_failed(fw, LOG_LEVEL_HIGH, "MCFGInvalidTable",
> "Invalid MCFG ACPI table");
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_INVALID_TABLE);
> return FWTS_ERROR;
> }
>
> @@ -204,8 +201,6 @@ static int mcfg_test1(fwts_framework *fw)
> "MCFG MMIO config space at 0x%" PRIx64
> " is not reserved in the memory map table",
> config->base_address);
> - fwts_tag_failed(fw, FWTS_TAG_BIOS);
> -
> fwts_advice(fw,
> "The PCI Express specification states that the "
> "PCI Express configuration space should "
> @@ -238,7 +233,6 @@ static int mcfg_test2(fwts_framework *fw)
> if (mcfg == NULL) {
> fwts_failed(fw, LOG_LEVEL_HIGH, "MCFGInvalidTable",
> "Invalid MCFG ACPI table");
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_INVALID_TABLE);
> return FWTS_ERROR;
> }
>
> diff --git a/src/acpi/method/method.c b/src/acpi/method/method.c
> index e6d925d..a7e81ef 100644
> --- a/src/acpi/method/method.c
> +++ b/src/acpi/method/method.c
> @@ -333,7 +333,6 @@ static int method_package_count_min(
> " element%s, got %" PRIu32 " element%s instead.",
> name, min, min == 1 ? "" : "s",
> obj->Package.Count, obj->Package.Count == 1 ? "" : "s");
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> return FWTS_ERROR;
> }
> return FWTS_OK;
> @@ -359,7 +358,6 @@ static int method_package_count_equal(
> " element%s, got %" PRIu32 " element%s instead.",
> name, count, count == 1 ? "" : "s",
> obj->Package.Count, obj->Package.Count == 1 ? "" : "s");
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> return FWTS_ERROR;
> }
> return FWTS_OK;
> @@ -448,7 +446,6 @@ static void method_evaluate_found_method(
> fwts_failed(fw, LOG_LEVEL_MEDIUM, "AMLLocksAcquired",
> "%s left %d locks in an acquired state.",
> name, sem_acquired - sem_released);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_MUTEX);
> fwts_advice(fw,
> "Locks left in an acquired state generally indicates "
> "that the AML code is not releasing a lock. This can "
> @@ -559,7 +556,6 @@ static int method_name_check(fwts_framework *fw)
> "be corrected.",
> fwts_list_data(char *, item),
> *ptr);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD);
> failed = true;
> break;
> }
> @@ -685,7 +681,6 @@ static void method_test_NULL_return(
>
> if (buf && buf->Length && buf->Pointer) {
> fwts_failed(fw, LOG_LEVEL_MEDIUM, "MethodShouldReturnNothing", "%s returned values, but was expected to return nothing.", name);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> fwts_log_info(fw, "Object returned:");
> fwts_acpi_object_dump(fw, obj);
> fwts_advice(fw,
> @@ -718,7 +713,6 @@ static void method_test_passed_failed_return(
> "MethodReturnZeroOrOne",
> "%s returned 0x%8.8" PRIx32 ", should return 1 "
> "(success) or 0 (failed).", method, val);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> fwts_advice(fw,
> "Method %s should be returning the correct "
> "1/0 success/failed return values. "
> @@ -754,7 +748,6 @@ static void method_test_polling_return(
> "%s returned a value %f seconds > (1 hour) "
> "which is probably incorrect.",
> method, (float)obj->Integer.Value / 10.0);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> fwts_advice(fw,
> "The method is returning a polling interval "
> "which is very long and hence most probably "
> @@ -817,7 +810,6 @@ static int method_package_elements_all_type(
> name, i,
> method_type_name(type),
> method_type_name(obj->Package.Elements[i].Type));
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> failed = true;
> }
> }
> @@ -859,7 +851,6 @@ static int method_package_elements_type(
> name, i, info[i].name,
> method_type_name(info[i].type),
> method_type_name(obj->Package.Elements[i].Type));
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> failed = true;
> }
> }
> @@ -991,7 +982,6 @@ static void method_test_HID_return(
> fwts_failed(fw, LOG_LEVEL_MEDIUM,
> "Method_HIDNullString",
> "%s returned a NULL string.", name);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> }
> break;
> case ACPI_TYPE_INTEGER:
> @@ -1011,7 +1001,6 @@ static void method_test_HID_return(
> default:
> fwts_failed(fw, LOG_LEVEL_MEDIUM, "Method_HIDBadReturnType",
> "%s did not return a string or an integer.", name);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> break;
> }
> }
> @@ -1098,12 +1087,10 @@ static void method_test_SUB_return(
> fwts_failed(fw, LOG_LEVEL_MEDIUM,
> "Method_SUBNullString",
> "%s returned a NULL string.", name);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> }
> else {
> fwts_failed(fw, LOG_LEVEL_MEDIUM, "Method_UIDBadReturnType",
> "Method _SUB did not return a string or an integer.");
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> }
> }
>
> @@ -1141,12 +1128,10 @@ static void method_test_UID_return(
> fwts_passed(fw,
> "%s returned a string '%s' as expected.",
> name, obj->String.Pointer);
> - else {
> + else
> fwts_failed(fw, LOG_LEVEL_MEDIUM,
> "Method_UIDNullString",
> "%s returned a NULL string.", name);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> - }
> break;
> case ACPI_TYPE_INTEGER:
> method_passed_sane_uint64(fw, name, obj->Integer.Value);
> @@ -1154,7 +1139,6 @@ static void method_test_UID_return(
> default:
> fwts_failed(fw, LOG_LEVEL_MEDIUM, "Method_UIDBadReturnType",
> "Method %s did not return a string or an integer.", name);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> break;
> }
> }
> @@ -1841,8 +1825,6 @@ static void method_test_CRS_return(
>
> if (passed)
> fwts_passed(fw, "%s (%s) looks sane.", name, tag);
> - else
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> }
>
> static int method_test_CRS(fwts_framework *fw)
> @@ -2122,7 +2104,6 @@ static void method_test_SEG_return(
> "upper 16 reserved bits are set when they "
> "should in fact be zero.",
> name, obj->Integer.Value);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> } else
> method_passed_sane_uint64(fw, name, obj->Integer.Value);
> }
> @@ -2308,7 +2289,6 @@ static void method_test_Sx__return(
> "integers, and %s only returned %" PRIu32
> " elements in the package.",
> name, obj->Package.Count);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> return;
> }
>
> @@ -2328,7 +2308,6 @@ static void method_test_Sx__return(
> "expect. So, while this is conforming to the ACPI "
> "specification it will in fact not work in the "
> "Linux kernel.", name);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> return;
> }
>
> @@ -2339,7 +2318,6 @@ static void method_test_Sx__return(
> "Method_SxElementType",
> "%s returned a package that did not contain "
> "an integer.", name);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> return;
> }
>
> @@ -2348,7 +2326,6 @@ static void method_test_Sx__return(
> "Method_SxElementValue",
> "%s package element 0 had upper 24 bits "
> "of bits that were non-zero.", name);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> failed = true;
> }
>
> @@ -2357,7 +2334,6 @@ static void method_test_Sx__return(
> "Method_SxElementValue",
> "%s package element 1 had upper 24 bits "
> "of bits that were non-zero.", name);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> failed = true;
> }
>
> @@ -2483,7 +2459,6 @@ static void method_test_CSD_return(
> "%s sub-package %" PRIu32 " was expected to "
> "have 5 elements, got %" PRIu32 " elements instead.",
> name, i, pkg->Package.Count);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> failed = true;
> continue;
> }
> @@ -2496,7 +2471,6 @@ static void method_test_CSD_return(
> " element %" PRIu32 " is not "
> "an integer.",
> name, i, j);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> elements_ok = false;
> }
> }
> @@ -2514,7 +2488,6 @@ static void method_test_CSD_return(
> "was expected to have value 0x%" PRIx64 ".",
> name, i,
> pkg->Package.Elements[0].Integer.Value);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> failed = true;
> }
> /* Element 1 should contain zero */
> @@ -2526,7 +2499,6 @@ static void method_test_CSD_return(
> "was 0x%" PRIx64 ".",
> name, i,
> pkg->Package.Elements[1].Integer.Value);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> failed = true;
> }
> /* Element 3 should contain 0xfc..0xfe */
> @@ -2541,7 +2513,6 @@ static void method_test_CSD_return(
> "was 0x%" PRIx64 ".",
> name, i,
> pkg->Package.Elements[3].Integer.Value);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> failed = true;
> }
> /* Element 4 number of processors, skip check */
> @@ -2599,7 +2570,6 @@ static void method_test_CST_return(
> fwts_failed(fw, LOG_LEVEL_MEDIUM, "Method_CSTElement0NotInteger",
> "%s should return package with element zero being an integer "
> "count of the number of C state sub-packages.", name);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> return;
> }
>
> @@ -2611,7 +2581,6 @@ static void method_test_CST_return(
> "reports it has %" PRIu64 " C states.",
> name, obj->Package.Count - 1,
> obj->Package.Elements[0].Integer.Value);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> return;
> }
>
> @@ -2631,7 +2600,6 @@ static void method_test_CST_return(
> "Method_CSTElementType",
> "%s package element %" PRIu32 " was not a package.",
> name, i);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> cst_elements_ok[i] = false;
> failed = true;
> continue; /* Skip processing sub-package */
> @@ -2795,7 +2763,6 @@ static void method_test_PSS_return(
> "Method_PSSElementType",
> "%s package element %" PRIu32
> " was not a package.", name, i);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> failed = true;
> continue; /* Skip processing sub-package */
> }
> @@ -2808,7 +2775,6 @@ static void method_test_PSS_return(
> " was expected to "
> "have 6 elements, got %" PRIu32 " elements instead.",
> name, i, obj->Package.Count);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> failed = true;
> continue; /* Skip processing sub-package */
> }
> @@ -2988,7 +2954,6 @@ static void method_test_TSD_return(
> "Method_TSDElementType",
> "%s package element %" PRIu32
> " was not a package.", name, i);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> failed = true;
> continue; /* Skip processing sub-package */
> }
> @@ -3003,7 +2968,6 @@ static void method_test_TSD_return(
> "%s sub-package %" PRIu32 " was expected to "
> "have 5 elements, got %" PRIu32 " elements instead.",
> name, i, pkg->Package.Count);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> failed = true;
> continue;
> }
> @@ -3015,7 +2979,6 @@ static void method_test_TSD_return(
> "%s sub-package %" PRIu32
> " element %" PRIu32 " is not "
> "an integer.", name, i, j);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> elements_ok = false;
> }
> }
> @@ -3034,7 +2997,6 @@ static void method_test_TSD_return(
> "was expected to have value 0x%" PRIx64 ".",
> name, i,
> pkg->Package.Elements[0].Integer.Value);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> failed = true;
> }
> /* Element 1 should contain zero */
> @@ -3047,7 +3009,6 @@ static void method_test_TSD_return(
> "was 0x%" PRIx64 ".",
> name, i,
> pkg->Package.Elements[1].Integer.Value);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> failed = true;
> }
> /* Element 3 should contain 0xfc..0xfe */
> @@ -3063,7 +3024,6 @@ static void method_test_TSD_return(
> "was 0x%" PRIx64 ".",
> name, i,
> pkg->Package.Elements[3].Integer.Value);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> failed = true;
> }
> /* Element 4 number of processors, skip check */
> @@ -3118,7 +3078,6 @@ static void method_test_TSS_return(
> "Method_TSSElementType",
> "%s package element %" PRIu32
> " was not a package.", name, i);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> tss_elements_ok[i] = false;
> failed = true;
> continue; /* Skip processing sub-package */
> @@ -3135,7 +3094,6 @@ static void method_test_TSS_return(
> " was expected to have 5 elements, "
> "got %" PRIu32" elements instead.",
> name, i, pkg->Package.Count);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> tss_elements_ok[i] = false;
> failed = true;
> continue; /* Skip processing sub-package */
> @@ -3148,7 +3106,6 @@ static void method_test_TSS_return(
> "%s sub-package %" PRIu32
> " element %" PRIu32 " is not "
> "an integer.", name, i, j);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> tss_elements_ok[i] = false;
> }
> }
> @@ -3170,7 +3127,6 @@ static void method_test_TSS_return(
> "was %" PRIu64 ".",
> name, i,
> pkg->Package.Elements[0].Integer.Value);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> failed = true;
> }
> /* Skip checking elements 1..4 */
> @@ -3296,15 +3252,14 @@ static void method_test_GCP_return(
> if (method_check_type(fw, name, buf, ACPI_TYPE_INTEGER) != FWTS_OK)
> return;
>
> - if (obj->Integer.Value & ~0xf) {
> + if (obj->Integer.Value & ~0xf)
> fwts_failed(fw, LOG_LEVEL_MEDIUM,
> "Method_GCPReturn",
> "%s returned %" PRId64 ", should be between 0 and 15, "
> "one or more of the reserved bits 4..31 seem "
> "to be set.",
> name, obj->Integer.Value);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> - } else
> + else
> method_passed_sane_uint64(fw, name, obj->Integer.Value);
> }
>
> @@ -3332,7 +3287,6 @@ static void method_test_GRT_return(
> "%s should return a buffer of 16 bytes, but "
> "instead just returned %" PRIu32,
> name, obj->Buffer.Length);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> return;
> }
>
> @@ -3361,15 +3315,14 @@ static void method_test_GWS_return(
> if (method_check_type(fw, name, buf, ACPI_TYPE_INTEGER) != FWTS_OK)
> return;
>
> - if (obj->Integer.Value & ~0x3) {
> + if (obj->Integer.Value & ~0x3)
> fwts_failed(fw, LOG_LEVEL_MEDIUM,
> "Method_GWSReturn",
> "%s returned %" PRIu64 ", should be between 0 and 3, "
> "one or more of the reserved bits 2..31 seem "
> "to be set.",
> name, obj->Integer.Value);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> - } else
> + else
> method_passed_sane_uint64(fw, name, obj->Integer.Value);
> }
>
> @@ -3466,7 +3419,6 @@ static void method_test_SBS_return(
> fwts_failed(fw, LOG_LEVEL_MEDIUM, "Method_SBSReturn",
> "%s returned %" PRIu64 ", should be between 0 and 4.",
> name, obj->Integer.Value);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> fwts_advice(fw,
> "Smart Battery %s is incorrectly informing "
> "the OS about the smart battery "
> @@ -3545,7 +3497,6 @@ static void method_test_BIF_return(
> "%s: Expected Power Unit (Element 0) to be "
> "0 (mWh) or 1 (mAh), got 0x%8.8" PRIx64 ".",
> name, obj->Package.Elements[0].Integer.Value);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> failed = true;
> }
> #ifdef FWTS_METHOD_PEDANDTIC
> @@ -3560,7 +3511,6 @@ static void method_test_BIF_return(
> "%s: Design Capacity (Element 1) is "
> "unknown: 0x%8.8" PRIx64 ".",
> name, obj->Package.Elements[1].Integer.Value);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> failed = true;
> }
> /* Last Full Charge Capacity */
> @@ -3570,7 +3520,6 @@ static void method_test_BIF_return(
> "%s: Last Full Charge Capacity (Element 2) "
> "is unknown: 0x%8.8" PRIx64 ".",
> name, obj->Package.Elements[2].Integer.Value);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> failed = true;
> }
> #endif
> @@ -3582,7 +3531,6 @@ static void method_test_BIF_return(
> "(Element 3) to be 0 (Primary) or 1 "
> "(Secondary), got 0x%8.8" PRIx64 ".",
> name, obj->Package.Elements[3].Integer.Value);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> failed = true;
> }
> #ifdef FWTS_METHOD_PEDANDTIC
> @@ -3597,7 +3545,6 @@ static void method_test_BIF_return(
> "%s: Design Voltage (Element 4) is "
> "unknown: 0x%8.8" PRIx64 ".",
> name, obj->Package.Elements[4].Integer.Value);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> failed = true;
> }
> /* Design capacity warning */
> @@ -3607,7 +3554,6 @@ static void method_test_BIF_return(
> "%s: Design Capacity Warning (Element 5) "
> "is unknown: 0x%8.8" PRIx64 ".",
> name, obj->Package.Elements[5].Integer.Value);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> failed = true;
> }
> /* Design capacity low */
> @@ -3617,7 +3563,6 @@ static void method_test_BIF_return(
> "%s: Design Capacity Warning (Element 6) "
> "is unknown: 0x%8.8" PRIx64 ".",
> name, obj->Package.Elements[6].Integer.Value);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> failed = true;
> }
> #endif
> @@ -3690,7 +3635,6 @@ static void method_test_BIX_return(
> "0 (mWh) or 1 (mAh), got 0x%8.8" PRIx64 ".",
> name, elements[1].name,
> obj->Package.Elements[1].Integer.Value);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> failed = true;
> }
> #ifdef FWTS_METHOD_PEDANDTIC
> @@ -3706,7 +3650,6 @@ static void method_test_BIX_return(
> "unknown: 0x%8.8" PRIx64 ".",
> name, elements[2].name,
> obj->Package.Elements[2].Integer.Value);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> failed = true;
> }
> /* Last Full Charge Capacity */
> @@ -3717,7 +3660,6 @@ static void method_test_BIX_return(
> "is unknown: 0x%8.8" PRIx64 ".",
> name, elements[3].name,
> obj->Package.Elements[3].Integer.Value);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> failed = true;
> }
> #endif
> @@ -3730,7 +3672,6 @@ static void method_test_BIX_return(
> "(Secondary), got 0x%8.8" PRIx64 ".",
> name, elements[4].name,
> obj->Package.Elements[4].Integer.Value);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> failed = true;
> }
> #ifdef FWTS_METHOD_PEDANDTIC
> @@ -3746,7 +3687,6 @@ static void method_test_BIX_return(
> "0x%8.8" PRIx64 ".",
> name, elements[5].name,
> obj->Package.Elements[5].Integer.Value);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> failed = true;
> }
> /* Design capacity warning */
> @@ -3757,7 +3697,6 @@ static void method_test_BIX_return(
> "is unknown: 0x%8.8" PRIx64 ".",
> name, elements[6].name,
> obj->Package.Elements[6].Integer.Value);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> failed = true;
> }
> /* Design capacity low */
> @@ -3768,7 +3707,6 @@ static void method_test_BIX_return(
> "is unknown: 0x%8.8" PRIx64 ".",
> name, elements[7].name,
> obj->Package.Elements[7].Integer.Value);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> failed = true;
> }
> /* Cycle Count */
> @@ -3777,7 +3715,6 @@ static void method_test_BIX_return(
> "%s: %s (Element 8) is unknown: "
> "0x%8.8" PRIx64 ".", Elements[8].name,
> name, obj->Package.Elements[8].Integer.Value);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> failed = true;
> }
> #endif
> @@ -3846,7 +3783,6 @@ static void method_test_BST_return(
> "%s: Expected Battery State (Element 0) to "
> "be 0..7, got 0x%8.8" PRIx64 ".",
> name, obj->Package.Elements[0].Integer.Value);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> failed = true;
> }
> /* Ensure bits 0 (discharging) and 1 (charging) are not both set, see 10.2.2.6 */
> @@ -3857,7 +3793,6 @@ static void method_test_BST_return(
> "indicating both charging and discharginng "
> "which is not allowed. Got value 0x%8.8" PRIx64 ".",
> name, obj->Package.Elements[0].Integer.Value);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> failed = true;
> }
> /* Battery Present Rate - cannot check, pulled from EC */
> @@ -4003,7 +3938,6 @@ static void method_test_PSR_return(
> "%s returned 0x%8.8" PRIx64 ", expected 0 "
> "(offline) or 1 (online)",
> name, obj->Integer.Value);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> } else
> method_passed_sane_uint64(fw, name, obj->Integer.Value);
> }
> @@ -4202,7 +4136,6 @@ static void method_test_THERM_return(
> method,
> obj->Integer.Value,
> (float)((uint64_t)obj->Integer.Value) / 10.0);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> fwts_advice(fw,
> "The value returned was probably a "
> "hard-coded thermal value which is "
> @@ -4562,13 +4495,12 @@ static void method_test_DOD_return(
> }
> }
>
> - if (failed) {
> + if (failed)
> fwts_failed(fw, LOG_LEVEL_MEDIUM,
> "Method_DODNoPackage",
> "Method _DOD did not return a package of "
> "%" PRIu32 " integers.", obj->Package.Count);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> - } else
> + else
> method_passed_sane(fw, name, "package");
> }
>
> @@ -4672,7 +4604,6 @@ static void method_test_BCL_return(
> "battery power (%" PRIu64 ").",
> obj->Package.Elements[0].Integer.Value,
> obj->Package.Elements[1].Integer.Value);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> failed = true;
> }
>
> @@ -4698,7 +4629,6 @@ static void method_test_BCL_return(
> "level are not in ascending "
> "order which should be fixed "
> "in the firmware.");
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> failed = true;
> }
>
> @@ -4781,14 +4711,13 @@ static void method_test_DDC_return(
>
> switch (obj->Type) {
> case ACPI_TYPE_BUFFER:
> - if (requested != obj->Buffer.Length) {
> + if (requested != obj->Buffer.Length)
> fwts_failed(fw, LOG_LEVEL_MEDIUM,
> "Method_DDCElementCount",
> "%s returned a buffer of %" PRIu32 " items, "
> "expected %" PRIu32 ".",
> name, obj->Buffer.Length, requested);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> - } else
> + else
> fwts_passed(fw,
> "Method %s returned a buffer of %d items "
> "as expected.",
> @@ -4804,7 +4733,6 @@ static void method_test_DDC_return(
> default:
> fwts_failed(fw, LOG_LEVEL_MEDIUM, "Method_DDCBadReturnType",
> "%s did not return a buffer or an integer.", name);
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
> break;
> }
> }
> diff --git a/src/acpi/powerbutton/powerbutton.c b/src/acpi/powerbutton/powerbutton.c
> index 7820f65..5a12614 100644
> --- a/src/acpi/powerbutton/powerbutton.c
> +++ b/src/acpi/powerbutton/powerbutton.c
> @@ -56,11 +56,10 @@ static int power_button_test1(fwts_framework *fw)
> }
> fwts_printf(fw, "Waiting %2.2d/20\r", 20-i);
> }
> - if (matching == 0) {
> + if (matching == 0)
> fwts_failed(fw, LOG_LEVEL_HIGH, "NoPowerButtonEvents",
> "Did not detect any ACPI power buttons events while waiting for power button to be pressed.");
> - fwts_tag_failed(fw, FWTS_TAG_ACPI_EVENT);
> - } else {
> + else {
> char button[4096];
> memset(button, 0, sizeof(button));
> sscanf(buffer, "%*s %s", button);
> diff --git a/src/acpi/s3/s3.c b/src/acpi/s3/s3.c
> index 45f62f7..27a5af0 100644
> --- a/src/acpi/s3/s3.c
> +++ b/src/acpi/s3/s3.c
> @@ -147,7 +147,6 @@ static int s3_do_suspend_resume(fwts_framework *fw,
> (*pm_errors)++;
> fwts_failed(fw, LOG_LEVEL_MEDIUM, "ShortSuspend",
> "Unexpected: S3 slept for %d seconds, less than the expected %d seconds.", duration, delay);
> - fwts_tag_failed(fw, FWTS_TAG_POWER_MANAGEMENT);
> }
> fwts_progress_message(fw, percent, "(Checking for errors)");
> if (duration > (delay*2)) {
> @@ -174,19 +173,16 @@ static int s3_do_suspend_resume(fwts_framework *fw,
> fwts_failed(fw, LOG_LEVEL_HIGH, "PMActionFailedPreS3",
> "pm-action failed before trying to put the system "
> "in the requested power saving state.");
> - fwts_tag_failed(fw, FWTS_TAG_POWER_MANAGEMENT);
> } else if (status == 128) {
> (*pm_errors)++;
> fwts_failed(fw, LOG_LEVEL_HIGH, "PMActionPowerStateS3",
> "pm-action tried to put the machine in the requested "
> "power state but failed.");
> - fwts_tag_failed(fw, FWTS_TAG_POWER_MANAGEMENT);
> } else if (status > 128) {
> (*pm_errors)++;
> fwts_failed(fw, LOG_LEVEL_HIGH, "PMActionFailedS3",
> "pm-action encountered an error and also failed to "
> "enter the requested power saving state.");
> - fwts_tag_failed(fw, FWTS_TAG_POWER_MANAGEMENT);
> }
>
> return FWTS_OK;
> diff --git a/src/acpi/s3power/s3power.c b/src/acpi/s3power/s3power.c
> index 6c6213a..75d660d 100644
> --- a/src/acpi/s3power/s3power.c
> +++ b/src/acpi/s3power/s3power.c
> @@ -203,12 +203,10 @@ static int s3power_test(fwts_framework *fw)
> duration = (int)(t_end - t_start);
> fwts_log_info(fw, "pm-suspend returned %d after %d seconds.", status, duration);
>
> - if (duration < s3power_sleep_delay) {
> + if (duration < s3power_sleep_delay)
> fwts_failed(fw, LOG_LEVEL_MEDIUM, "ShortSuspend",
> "Unexpected: S3 slept for %d seconds, less than the expected %d seconds.",
> duration, s3power_sleep_delay);
> - fwts_tag_failed(fw, FWTS_TAG_POWER_MANAGEMENT);
> - }
> if (duration > (s3power_sleep_delay*2))
> fwts_failed(fw, LOG_LEVEL_HIGH, "LongSuspend",
> "Unexpected: S3 much longer than expected (%d seconds).", duration);
> @@ -218,17 +216,14 @@ static int s3power_test(fwts_framework *fw)
> fwts_failed(fw, LOG_LEVEL_MEDIUM, "PMActionFailedPreS3",
> "pm-action failed before trying to put the system "
> "in the requested power saving state.");
> - fwts_tag_failed(fw, FWTS_TAG_POWER_MANAGEMENT);
> } else if (status == 128) {
> fwts_failed(fw, LOG_LEVEL_MEDIUM, "PMActionPowerStateS3",
> "pm-action tried to put the machine in the requested "
> "power state but failed.");
> - fwts_tag_failed(fw, FWTS_TAG_POWER_MANAGEMENT);
> } else if (status > 128) {
> fwts_failed(fw, LOG_LEVEL_MEDIUM, "PMActionFailedS3",
> "pm-action encountered an error and also failed to "
> "enter the requested power saving state.");
> - fwts_tag_failed(fw, FWTS_TAG_POWER_MANAGEMENT);
> }
>
> return FWTS_OK;
> diff --git a/src/acpi/s4/s4.c b/src/acpi/s4/s4.c
> index 9f07bcf..d9ddd6b 100644
> --- a/src/acpi/s4/s4.c
> +++ b/src/acpi/s4/s4.c
> @@ -180,33 +180,28 @@ static int s4_hibernate(fwts_framework *fw,
> fwts_failed(fw, LOG_LEVEL_HIGH, "PMActionFailedPreS4",
> "pm-action failed before trying to put the system "
> "in the requested power saving state.");
> - fwts_tag_failed(fw, FWTS_TAG_POWER_MANAGEMENT);
> (*pm_errors)++;
> } else if (status == 128) {
> fwts_failed(fw, LOG_LEVEL_HIGH, "PMActionPowerStateS4",
> "pm-action tried to put the machine in the requested "
> "power state but failed.");
> - fwts_tag_failed(fw, FWTS_TAG_POWER_MANAGEMENT);
> (*pm_errors)++;
> } else if (status > 128) {
> fwts_failed(fw, LOG_LEVEL_HIGH, "PMActionFailedS4",
> "pm-action encountered an error and also failed to "
> "enter the requested power saving state.");
> - fwts_tag_failed(fw, FWTS_TAG_POWER_MANAGEMENT);
> (*pm_errors)++;
> }
>
> if (fwts_klog_regex_find(fw, klog, "Freezing user space processes.*done") < 1) {
> fwts_failed(fw, LOG_LEVEL_HIGH, "UserSpaceTaskFreeze",
> "Failed to freeze user space processes.");
> - fwts_tag_failed(fw, FWTS_TAG_POWER_MANAGEMENT);
> (*pm_errors)++;
> }
>
> if (fwts_klog_regex_find(fw, klog, "Freezing remaining freezable tasks.*done") < 1) {
> fwts_failed(fw, LOG_LEVEL_HIGH, "KernelTaskFreeze",
> "Failed to freeze remaining non-user space processes.");
> - fwts_tag_failed(fw, FWTS_TAG_POWER_MANAGEMENT);
> (*pm_errors)++;
> }
>
> @@ -214,14 +209,12 @@ static int s4_hibernate(fwts_framework *fw,
> (fwts_klog_regex_find(fw, klog, "PM: late freeze of devices complete") < 1)) {
> fwts_failed(fw, LOG_LEVEL_HIGH, "DeviceFreeze",
> "Failed to freeze devices.");
> - fwts_tag_failed(fw, FWTS_TAG_POWER_MANAGEMENT);
> (*pm_errors)++;
> }
>
> if (fwts_klog_regex_find(fw, klog, "PM: Allocated.*kbytes") < 1) {
> fwts_failed(fw, LOG_LEVEL_HIGH, "HibernateImageAlloc",
> "Failed to allocate memory for hibernate image.");
> - fwts_tag_failed(fw, FWTS_TAG_POWER_MANAGEMENT);
> *failed_alloc_image = 1;
> (*pm_errors)++;
> }
> @@ -229,7 +222,6 @@ static int s4_hibernate(fwts_framework *fw,
> if (fwts_klog_regex_find(fw, klog, "PM: Image restored successfully") < 1) {
> fwts_failed(fw, LOG_LEVEL_HIGH, "HibernateImageRestore",
> "Failed to restore hibernate image.");
> - fwts_tag_failed(fw, FWTS_TAG_POWER_MANAGEMENT);
> (*pm_errors)++;
> }
>
> diff --git a/src/acpi/wakealarm/wakealarm.c b/src/acpi/wakealarm/wakealarm.c
> index dd92861..0243a5e 100644
> --- a/src/acpi/wakealarm/wakealarm.c
> +++ b/src/acpi/wakealarm/wakealarm.c
> @@ -56,7 +56,6 @@ static int wakealarm_test2(fwts_framework *fw)
> if (fwts_wakealarm_trigger(fw, 1)) {
> fwts_failed(fw, LOG_LEVEL_MEDIUM, "WakeAlarmNotTriggeredTest2",
> "RTC wakealarm did not trigger.");
> - fwts_tag_failed(fw, FWTS_TAG_BIOS);
> return FWTS_OK;
> }
>
> @@ -75,7 +74,6 @@ static int wakealarm_test3(fwts_framework *fw)
> if (ret < 0) {
> fwts_failed(fw, LOG_LEVEL_MEDIUM, "WakeAlarmNotTriggeredTest3",
> "Failed to trigger and fire wakealarm.");
> - fwts_tag_failed(fw, FWTS_TAG_BIOS);
> return FWTS_ERROR; /* Really went wrong */
> }
> if (ret == 0)
> @@ -83,7 +81,6 @@ static int wakealarm_test3(fwts_framework *fw)
> else {
> fwts_failed(fw, LOG_LEVEL_MEDIUM, "WakeAlarmNotFiredTest3",
> "RTC wakealarm was triggered but did not fire.");
> - fwts_tag_failed(fw, FWTS_TAG_BIOS);
> }
>
> return FWTS_OK;
> @@ -101,14 +98,12 @@ static int wakealarm_test4(fwts_framework *fw)
> fwts_failed(fw, LOG_LEVEL_MEDIUM,
> "WakeAlarmNotTriggeredTest4",
> "Failed to trigger and fire wakealarm.");
> - fwts_tag_failed(fw, FWTS_TAG_BIOS);
> return FWTS_ERROR; /* Really went wrong */
> }
> if (ret != 0) {
> fwts_failed(fw, LOG_LEVEL_MEDIUM,
> "WakeAlarmNotFiredTest4",
> "RTC wakealarm was triggered but did not fire.");
> - fwts_tag_failed(fw, FWTS_TAG_BIOS);
> failed++;
> }
> fwts_progress(fw, 25 * i);
> diff --git a/src/apic/apicedge/apicedge.c b/src/apic/apicedge/apicedge.c
> index c679959..de2ca8b 100644
> --- a/src/apic/apicedge/apicedge.c
> +++ b/src/apic/apicedge/apicedge.c
> @@ -76,26 +76,20 @@ static int apicedge_test1(fwts_framework *fw)
> edge = 0;
>
> if (strstr(line,"acpi")) {
> - if (edge == 1) {
> + if (edge == 1)
> fwts_failed(fw, LOG_LEVEL_MEDIUM,
> "ACPIIRQEdgeTrig",
> "ACPI Interrupt is incorrectly edge triggered.");
> - fwts_tag_failed(fw, FWTS_TAG_BIOS_IRQ);
> - }
> continue;
> }
> - if ((irq < 15) && (edge == 0)) {
> + if ((irq < 15) && (edge == 0))
> fwts_failed(fw, LOG_LEVEL_MEDIUM,
> "LegacyIRQLevelTrig",
> "Legacy interrupt %i is incorrectly level triggered.", irq);
> - fwts_tag_failed(fw, FWTS_TAG_BIOS_IRQ);
> - }
> - if ((irq < 15) && (edge == -1)) {
> + if ((irq < 15) && (edge == -1))
> fwts_failed(fw, LOG_LEVEL_MEDIUM,
> "NonLegacyIRQLevelTrig",
> "Non-Legacy interrupt %i is incorrectly level triggered.", irq);
> - fwts_tag_failed(fw, FWTS_TAG_BIOS_IRQ);
> - }
> }
> fclose(file);
>
> diff --git a/src/bios/bios32/bios32.c b/src/bios/bios32/bios32.c
> index aedac87..57d219f 100644
> --- a/src/bios/bios32/bios32.c
> +++ b/src/bios/bios32/bios32.c
> @@ -87,51 +87,47 @@ static int bios32_test1(fwts_framework *fw)
> bios32->checksum);
> fwts_log_nl(fw);
>
> - if (bios32->entry_point >= 0x100000) {
> + if (bios32->entry_point >= 0x100000)
> fwts_failed(fw, LOG_LEVEL_HIGH,
> "BIOS32SrvDirEntryPointHighMem",
> "Service Directory Entry Point 0x%8.8" PRIx32
> " is in high memory and cannot be used "
> "by the kernel.",
> bios32->entry_point);
> - fwts_tag_failed(fw, FWTS_TAG_BIOS);
> - } else
> + else
> fwts_passed(fw, "Service Directory Entry Point "
> "0x%8.8x is not in high memory.",
> bios32->entry_point);
>
> - if (bios32->length != 1) {
> + if (bios32->length != 1)
> fwts_failed(fw, LOG_LEVEL_HIGH,
> "BIOS32SrvDirEntryLength",
> "Service Directory Length is 0x%8.8" PRIx8
> ", expected 1 (1 x 16 bytes).",
> bios32->length);
> - fwts_tag_failed(fw, FWTS_TAG_BIOS);
> - } else
> + else
> fwts_passed(fw,
> "Service Directory Length is 1 "
> "(1 x 16 bytes) as expected.");
>
> - if (bios32->revision_level != 0) {
> + if (bios32->revision_level != 0)
> fwts_failed(fw, LOG_LEVEL_HIGH,
> "BIOS32SrvDirRevision",
> "Service Directory Revision is 0x%2.2" PRIx8
> ", only version 0 is supported by the "
> "kernel.",
> bios32->revision_level);
> - fwts_tag_failed(fw, FWTS_TAG_BIOS);
> - } else
> + else
> fwts_passed(fw,
> "Service Directory Revision is 0x%2.2" PRIx8
> " and is supported by the kernel.",
> bios32->revision_level);
>
> - if (fwts_checksum(mem + i, 16) != 0) {
> + if (fwts_checksum(mem + i, 16) != 0)
> fwts_failed(fw, LOG_LEVEL_HIGH,
> "BIOS32SrvDirCheckSum",
> "Service Directory checksum failed.");
> - fwts_tag_failed(fw, FWTS_TAG_BIOS);
> - } else
> + else
> fwts_passed(fw,
> "Service Directory checksum passed.");
> found++;
> @@ -140,13 +136,11 @@ static int bios32_test1(fwts_framework *fw)
>
> if (found == 0)
> fwts_log_info(fw, "Could not find BIOS32 Service Directory.");
> - else if (found > 1) {
> + else if (found > 1)
> fwts_failed(fw, LOG_LEVEL_HIGH,
> "BIOS32MultipleSrvDirInstances",
> "Found %d instances of BIOS32 Service Directory, "
> "there should only be 1.", found);
> - fwts_tag_failed(fw, FWTS_TAG_BIOS);
> - }
>
> (void)fwts_munmap(mem, BIOS32_SD_REGION_SIZE);
>
> diff --git a/src/bios/ebda_region/ebda_region.c b/src/bios/ebda_region/ebda_region.c
> index af8a0e6..f82333e 100644
> --- a/src/bios/ebda_region/ebda_region.c
> +++ b/src/bios/ebda_region/ebda_region.c
> @@ -90,13 +90,11 @@ static int ebda_test1(fwts_framework *fw)
> memory_map_name,
> entry->start_address,
> entry->end_address);
> - } else {
> + } else
> fwts_failed(fw, LOG_LEVEL_MEDIUM,
> "EBDAMappedNotReserved",
> "EBDA region mapped at 0x%lx but not reserved in the %s table.",
> ebda_addr, memory_map_name);
> - fwts_tag_failed(fw, FWTS_TAG_BIOS);
> - }
>
> return FWTS_OK;
> }
> diff --git a/src/bios/mtrr/mtrr.c b/src/bios/mtrr/mtrr.c
> index 4bcdf3a..b604950 100644
> --- a/src/bios/mtrr/mtrr.c
> +++ b/src/bios/mtrr/mtrr.c
> @@ -384,7 +384,6 @@ static int validate_iomem(fwts_framework *fw)
> "has incorrect attribute%s.",
> start, end,
> c2, cache_to_string(type & type_mustnot));
> - fwts_tag_failed(fw, FWTS_TAG_BIOS);
> if (type_must == UNCACHED)
> skiperror = true;
> }
> @@ -402,7 +401,6 @@ static int validate_iomem(fwts_framework *fw)
> start, end,
> c2,
> cache_to_string( (type & type_must) ^ type_must));
> - fwts_tag_failed(fw, FWTS_TAG_BIOS);
> }
>
> }
> @@ -487,17 +485,14 @@ static int mtrr_test2(fwts_framework *fw)
>
> if (fwts_klog_regex_find(fw, klog, "mtrr: your CPUs had inconsistent fixed MTRR settings") > 0) {
> fwts_log_info(fw, "Detected CPUs with inconsistent fixed MTRR settings which the kernel fixed.");
> - fwts_tag_failed(fw, FWTS_TAG_BIOS);
> failed = true;
> }
> if (fwts_klog_regex_find(fw, klog, "mtrr: your CPUs had inconsistent variable MTRR settings") > 0) {
> fwts_log_info(fw, "Detected CPUs with inconsistent variable MTRR settings which the kernel fixed.");
> - fwts_tag_failed(fw, FWTS_TAG_BIOS);
> failed = true;
> }
> if (fwts_klog_regex_find(fw, klog, "mtrr: your CPUs had inconsistent MTRRdefType") > 0) {
> fwts_log_info(fw, "Detected CPUs with inconsistent variable MTRR settings which the kernel fixed.");
> - fwts_tag_failed(fw, FWTS_TAG_BIOS);
> failed = true;
> }
>
> @@ -519,7 +514,7 @@ static int mtrr_test3(fwts_framework *fw)
> {
> if (strstr(fwts_cpuinfo->vendor_id, "AMD")) {
> if (klog != NULL) {
> - if (fwts_klog_regex_find(fw, klog, "SYSCFG[MtrrFixDramModEn] not cleared by BIOS, clearing this bit") > 0) {
> + if (fwts_klog_regex_find(fw, klog, "SYSCFG[MtrrFixDramModEn] not cleared by BIOS, clearing this bit") > 0)
> fwts_failed(fw, LOG_LEVEL_MEDIUM,
> "MTRRFixDramModEnBit",
> "The BIOS is expected to clear MtrrFixDramModEn bit, see for example "
> @@ -528,11 +523,8 @@ static int mtrr_test3(fwts_framework *fw)
> "\"13.2.1.2 SYSCFG Register\": \"The MtrrFixDramModEn bit should be set "
> "to 1 during BIOS initialization of the fixed MTRRs, then cleared to "
> "0 for operation.\"");
> - fwts_tag_failed(fw, FWTS_TAG_BIOS);
> - }
> - else {
> + else
> fwts_passed(fw, "No MtrrFixDramModEn error detected.");
> - }
> }
> } else
> fwts_skipped(fw, "CPU is not an AMD, cannot test.");
> diff --git a/src/bios/os2gap/os2gap.c b/src/bios/os2gap/os2gap.c
> index 40773f1..de16bf3 100644
> --- a/src/bios/os2gap/os2gap.c
> +++ b/src/bios/os2gap/os2gap.c
> @@ -57,7 +57,6 @@ static int os2gap_test1(fwts_framework *fw)
> OS2_GAP_SIZE / 1024,
> (void*)OS2_GAP_ADDRESS,
> (void*)(OS2_GAP_ADDRESS + OS2_GAP_SIZE));
> - fwts_tag_failed(fw, FWTS_TAG_BIOS);
> fwts_log_nl(fw);
> fwts_memory_map_table_dump(fw, os2gap_memory_map_info);
> } else
> diff --git a/src/bios/pciirq/pciirq.c b/src/bios/pciirq/pciirq.c
> index 5df0e37..b00214f 100644
> --- a/src/bios/pciirq/pciirq.c
> +++ b/src/bios/pciirq/pciirq.c
> @@ -230,12 +230,10 @@ static int pciirq_test1(fwts_framework *fw)
> "Could not find PCI IRQ Routing Table. Since this table "
> "is for legacy BIOS systems which don't have ACPI support "
> "this is generally not a problem.");
> - } else if (found > 1) {
> + } else if (found > 1)
> fwts_failed(fw, LOG_LEVEL_HIGH,
> "PCIIRQMultipleTables",
> "Found %d instances of PCI Routing Tables, there should only be 1.", found);
> - fwts_tag_failed(fw, FWTS_TAG_BIOS);
> - }
>
> (void)fwts_munmap(mem, PCIIRQ_REGION_SIZE);
>
> diff --git a/src/bios/pnp/pnp.c b/src/bios/pnp/pnp.c
> index 65a16d1..34a0a34 100644
> --- a/src/bios/pnp/pnp.c
> +++ b/src/bios/pnp/pnp.c
> @@ -167,12 +167,10 @@ static int pnp_test1(fwts_framework *fw)
> fwts_log_info(fw,
> "Could not find PnP BIOS Support Installation Check structure. "
> "This is not necessarily a failure.");
> - else if (found > 1) {
> + else if (found > 1)
> fwts_failed(fw, LOG_LEVEL_HIGH,
> "PNPMultipleTables",
> "Found %d instances of PCI Routing Tables, there should only be 1.", found);
> - fwts_tag_failed(fw, FWTS_TAG_BIOS);
> - }
>
> (void)fwts_munmap(mem, PNP_REGION_SIZE);
>
> diff --git a/src/lib/include/fwts.h b/src/lib/include/fwts.h
> index c29e7f2..d27d2dc 100644
> --- a/src/lib/include/fwts.h
> +++ b/src/lib/include/fwts.h
> @@ -30,7 +30,6 @@
>
> #include "fwts_version.h"
> #include "fwts_types.h"
> -#include "fwts_tag.h"
> #include "fwts_binpaths.h"
> #include "fwts_framework.h"
> #include "fwts_log.h"
> diff --git a/src/lib/include/fwts_framework.h b/src/lib/include/fwts_framework.h
> index 1e5171c..5278dfb 100644
> --- a/src/lib/include/fwts_framework.h
> +++ b/src/lib/include/fwts_framework.h
> @@ -50,9 +50,7 @@ typedef enum {
> FWTS_FLAG_TEST_ACPI = 0x04000000,
> FWTS_FLAG_UTILS = 0x08000000,
> FWTS_FLAG_QUIET = 0x10000000,
> - FWTS_FLAG_LP_TAGS = 0x20000000,
> - FWTS_FLAG_LP_TAGS_LOG = 0x40000000,
> - FWTS_FLAG_SHOW_TESTS_FULL = 0x80000000,
> + FWTS_FLAG_SHOW_TESTS_FULL = 0x20000000,
> } fwts_framework_flags;
>
> #define FWTS_FLAG_TEST_MASK \
> @@ -132,9 +130,6 @@ typedef struct {
> bool print_summary; /* Print summary of results at end of test runs */
> fwts_log_level failed_level; /* Bit mask of failed levels in test run */
>
> - fwts_list test_taglist; /* List of tags found when running all minor tests */
> - fwts_list total_taglist; /* List of tags found when running all tests */
> -
> int firmware_type; /* Type of firmware */
> bool show_progress; /* Show progress while running current test */
>
> diff --git a/src/lib/include/fwts_klog.h b/src/lib/include/fwts_klog.h
> index ef23750..fe8f520 100644
> --- a/src/lib/include/fwts_klog.h
> +++ b/src/lib/include/fwts_klog.h
> @@ -40,7 +40,6 @@ typedef enum {
> typedef struct {
> fwts_compare_mode compare_mode;
> fwts_log_level level;
> - fwts_tag tag;
> const char *pattern;
> const char *advice;
> char *label;
> diff --git a/src/lib/include/fwts_log.h b/src/lib/include/fwts_log.h
> index e760efa..b9f378a 100644
> --- a/src/lib/include/fwts_log.h
> +++ b/src/lib/include/fwts_log.h
> @@ -184,9 +184,6 @@ static inline int fwts_log_type_count(fwts_log_type type)
> #define fwts_log_heading(fw, fmt, args...) \
> fwts_log_printf(fw->results, LOG_HEADING, LOG_LEVEL_NONE, "", "", "", fmt, ## args)
>
> -#define fwts_log_tag(fw, fmt, args...) \
> - fwts_log_printf(fw->results, LOG_TAG | LOG_VERBATUM, LOG_LEVEL_NONE, "", "", "", fmt, ## args)
> -
> #define fwts_log_nl(fw) \
> fwts_log_printf(fw->results, LOG_NEWLINE, LOG_LEVEL_NONE, "", "", "", "%s", "")
>
> diff --git a/src/lib/include/fwts_tag.h b/src/lib/include/fwts_tag.h
> deleted file mode 100644
> index b7d00a4..0000000
> --- a/src/lib/include/fwts_tag.h
> +++ /dev/null
> @@ -1,83 +0,0 @@
> -/*
> - * Copyright (C) 2010-2013 Canonical
> - *
> - * This program is free software; you can redistribute it and/or
> - * modify it under the terms of the GNU General Public License
> - * as published by the Free Software Foundation; either version 2
> - * of the License, or (at your option) any later version.
> - *
> - * This program is distributed in the hope that it will be useful,
> - * but WITHOUT ANY WARRANTY; without even the implied warranty of
> - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> - * GNU General Public License for more details.
> - *
> - * You should have received a copy of the GNU General Public License
> - * along with this program; if not, write to the Free Software
> - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
> - *
> - */
> -
> -#ifndef __FWTS_TAG__
> -#define __FWTS_TAG__
> -
> -#include "fwts_list.h"
> -#include "fwts_framework.h"
> -
> -typedef enum {
> - FWTS_TAG_NONE = 1,
> - FWTS_TAG_ERROR_CRITICAL,
> - FWTS_TAG_ERROR_HIGH,
> - FWTS_TAG_ERROR_MEDIUM,
> - FWTS_TAG_ERROR_LOW,
> - FWTS_TAG_BIOS,
> - FWTS_TAG_BIOS_THERMAL,
> - FWTS_TAG_BIOS_IRQ,
> - FWTS_TAG_BIOS_AMD_POWERNOW,
> - FWTS_TAG_BIOS_MMCONFIG,
> - FWTS_TAG_BIOS_DMI,
> - FWTS_TAG_ACPI,
> - FWTS_TAG_ACPI_IO_PORT,
> - FWTS_TAG_ACPI_INVALID_TABLE,
> - FWTS_TAG_ACPI_BUFFER_OVERFLOW,
> - FWTS_TAG_ACPI_AML_OPCODE,
> - FWTS_TAG_ACPI_NAMESPACE_LOOKUP,
> - FWTS_TAG_ACPI_PCI_EXPRESS,
> - FWTS_TAG_ACPI_BAD_RESULT,
> - FWTS_TAG_ACPI_NO_HANDLER,
> - FWTS_TAG_ACPI_PACKAGE_LIST,
> - FWTS_TAG_ACPI_PARSE_EXEC_FAIL,
> - FWTS_TAG_ACPI_EVAL,
> - FWTS_TAG_ACPI_BAD_LENGTH,
> - FWTS_TAG_ACPI_BAD_ADDRESS,
> - FWTS_TAG_ACPI_METHOD_RETURN,
> - FWTS_TAG_ACPI_BRIGHTNESS,
> - FWTS_TAG_ACPI_BUTTON,
> - FWTS_TAG_ACPI_EVENT,
> - FWTS_TAG_ACPI_PARAMETER,
> - FWTS_TAG_ACPI_THROTTLING,
> - FWTS_TAG_ACPI_EXCEPTION,
> - FWTS_TAG_ACPI_PACKAGE,
> - FWTS_TAG_ACPI_APIC,
> - FWTS_TAG_ACPI_DISPLAY,
> - FWTS_TAG_ACPI_MULTIPLE_FACS,
> - FWTS_TAG_ACPI_POINTER_MISMATCH,
> - FWTS_TAG_ACPI_TABLE_CHECKSUM,
> - FWTS_TAG_ACPI_HOTPLUG,
> - FWTS_TAG_ACPI_RSDP,
> - FWTS_TAG_ACPI_MUTEX,
> - FWTS_TAG_ACPI_THERMAL,
> - FWTS_TAG_ACPI_LID,
> - FWTS_TAG_ACPI_METHOD,
> - FWTS_TAG_EMBEDDED_CONTROLLER,
> - FWTS_TAG_POWER_MANAGEMENT,
> - FWTS_TAG_WMI,
> -} fwts_tag;
> -
> -fwts_tag fwts_tag_id_str_to_tag(const char *tag);
> -const char *fwts_tag_to_str(const fwts_tag tag);
> -void fwts_tag_add(fwts_list *taglist, const char *tag);
> -char *fwts_tag_list_to_str(fwts_list *taglist);
> -void fwts_tag_report(fwts_framework *fw, const fwts_log_field field, fwts_list *taglist);
> -void fwts_tag_failed(fwts_framework *fw, const fwts_tag tag);
> -
> -#endif
> diff --git a/src/lib/src/Makefile.am b/src/lib/src/Makefile.am
> index 4760a6f..d708f34 100644
> --- a/src/lib/src/Makefile.am
> +++ b/src/lib/src/Makefile.am
> @@ -65,7 +65,6 @@ libfwts_la_SOURCES = \
> fwts_smbios.c \
> fwts_stringextras.c \
> fwts_summary.c \
> - fwts_tag.c \
> fwts_text_list.c \
> fwts_tty.c \
> fwts_uefi.c \
> diff --git a/src/lib/src/fwts_framework.c b/src/lib/src/fwts_framework.c
> index 92aa74d..0cf0f2c 100644
> --- a/src/lib/src/fwts_framework.c
> +++ b/src/lib/src/fwts_framework.c
> @@ -70,11 +70,9 @@ static fwts_option fwts_framework_options[] = {
> { "skip-test", "S:", 1, "Skip listed tests, e.g. --skip-test=s3,nx,method" },
> { "quiet", "q", 0, "Run quietly." },
> { "dumpfile", "", 1, "Load ACPI tables using file generated by acpidump, e.g. --dumpfile=acpidump.dat" },
> - { "lp-tags", "", 0, "Output just LaunchPad bug tags." },
> { "show-tests-full", "", 0, "Show available tests including all minor tests." },
> { "utils", "u", 0, "Run Utility 'tests'." },
> { "json-data-path", "j:", 1, "Specify path to fwts json data files - default is /usr/share/fwts." },
> - { "lp-tags-log", "", 0, "Output LaunchPad bug tags in results log." },
> { "disassemble-aml", "", 0, "Disassemble AML from DSDT and SSDT tables." },
> { "log-type", "", 1, "Specify log type (plaintext, json, html or xml)." },
> { "unsafe", "U", 0, "Unsafe tests (tests that can potentially cause kernel oopses)." },
> @@ -452,8 +450,7 @@ static int fwts_framework_test_summary(fwts_framework *fw)
> printf("%s\n", fwts_log_field_to_str_upper(LOG_PASSED));
> }
>
> - if (!(fw->flags & FWTS_FLAG_LP_TAGS))
> - fwts_log_newline(fw->results);
> + fwts_log_newline(fw->results);
>
> return FWTS_OK;
> }
> @@ -475,7 +472,6 @@ static int fwts_framework_run_test(fwts_framework *fw, fwts_framework_test *test
>
> fw->current_major_test = test;
> fw->current_minor_test_name = "";
> - fwts_list_init(&fw->test_taglist);
>
> test->was_run = true;
> fw->total_run++;
> @@ -597,15 +593,7 @@ static int fwts_framework_run_test(fwts_framework *fw, fwts_framework_test *test
> if (test->ops->deinit)
> test->ops->deinit(fw);
>
> - if (fw->flags & FWTS_FLAG_LP_TAGS_LOG) {
> - fwts_log_section_begin(fw->results, "tags");
> - fwts_tag_report(fw, LOG_TAG, &fw->test_taglist);
> - fwts_log_section_end(fw->results);
> - }
> -
> done:
> - fwts_list_free_items(&fw->test_taglist, free);
> -
> if (!(test->flags & FWTS_FLAG_UTILS)) {
> fwts_log_section_begin(fw->results, "results");
> fwts_framework_test_summary(fw);
> @@ -872,8 +860,7 @@ static void fwts_framework_heading_info(
>
> fwts_log_info(fw, "Running tests: %s.",
> fwts_list_len(tests_to_run) == 0 ? "None" : tests);
> - if (!(fw->flags & FWTS_FLAG_LP_TAGS))
> - fwts_log_newline(fw->results);
> + fwts_log_newline(fw->results);
> free(tests);
> }
> }
> @@ -1094,52 +1081,44 @@ int fwts_framework_options_handler(fwts_framework *fw, int argc, char * const ar
> case 25: /* --dumpfile */
> fwts_framework_strdup(&fw->acpi_table_acpidump_file, optarg);
> break;
> - case 26: /* --lp-tags */
> - fw->flags |= FWTS_FLAG_LP_TAGS;
> - fwts_log_filter_unset_field(~0);
> - fwts_log_filter_set_field(LOG_TAG);
> - break;
> - case 27: /* --show-tests-full */
> + case 26: /* --show-tests-full */
> fw->flags |= FWTS_FLAG_SHOW_TESTS_FULL;
> break;
> - case 28: /* --utils */
> + case 27: /* --utils */
> fw->flags |= FWTS_FLAG_UTILS;
> break;
> - case 29: /* --json-data-path */
> + case 28: /* --json-data-path */
> fwts_framework_strdup(&fw->json_data_path, optarg);
> break;
> - case 30: /* --lp-tags-log */
> - fw->flags |= FWTS_FLAG_LP_TAGS_LOG;
> - break;
> - case 31: /* --disassemble-aml */
> + case 29: /* --disassemble-aml */
> fwts_iasl_disassemble_all_to_file(fw);
> return FWTS_COMPLETE;
> - case 32: /* --log-type */
> + case 30: /* --log-type */
> if (fwts_framework_log_type_parse(fw, optarg) != FWTS_OK)
> return FWTS_ERROR;
> break;
> - case 33: /* --unsafe */
> + case 31: /* --unsafe */
> fw->flags |= FWTS_FLAG_UNSAFE;
> break;
> - case 34: /* --filter-error-discard */
> + case 32: /* --filter-error-discard */
> if (fwts_framework_filter_error_parse(optarg, &fw->errors_filter_discard) != FWTS_OK)
> return FWTS_ERROR;
> break;
> - case 35: /* --filter-error-keep */
> + case 33: /* --filter-error-keep */
> if (fwts_framework_filter_error_parse(optarg, &fw->errors_filter_keep) != FWTS_OK)
> return FWTS_ERROR;
> break;
> - case 36: /* --acpica-debug */
> + case 34: /* --acpica-debug */
> fw->flags |= FWTS_FLAG_ACPICA_DEBUG;
> break;
> - case 37: /* --acpica */
> + case 35: /* --acpica */
> if (fwts_framework_acpica_parse(fw, optarg) != FWTS_OK)
> return FWTS_ERROR;
> break;
> - case 38: /* --uefi */
> + case 36: /* --uefi */
> fw->flags |= FWTS_FLAG_TEST_UEFI;
> break;
> - case 39: /* --rsdp */
> + case 37: /* --rsdp */
> fw->rsdp = (void *)strtoul(optarg, NULL, 0);
> break;
> }
> @@ -1176,7 +1155,6 @@ int fwts_framework_options_handler(fwts_framework *fw, int argc, char * const ar
> fwts_framework_strdup(&fw->klog, optarg);
> break;
> case 'l': /* --lp-flags */
> - fw->flags |= FWTS_FLAG_LP_TAGS;
> break;
> case 'p': /* --show-progress */
> fw->flags = (fw->flags &
> @@ -1252,7 +1230,6 @@ int fwts_framework_args(const int argc, char **argv)
> FWTS_FLAG_SHOW_PROGRESS;
> fw->log_type = LOG_TYPE_PLAINTEXT;
>
> - fwts_list_init(&fw->total_taglist);
> fwts_list_init(&fw->errors_filter_keep);
> fwts_list_init(&fw->errors_filter_discard);
>
> @@ -1383,17 +1360,12 @@ int fwts_framework_args(const int argc, char **argv)
> fwts_log_section_begin(fw->results, "summary");
> fwts_log_set_owner(fw->results, "summary");
> fwts_log_nl(fw);
> - if (fw->flags & FWTS_FLAG_LP_TAGS_LOG)
> - fwts_tag_report(fw, LOG_SUMMARY, &fw->total_taglist);
> fwts_framework_total_summary(fw);
> fwts_log_nl(fw);
> fwts_summary_report(fw, &fwts_framework_test_list);
> fwts_log_section_end(fw->results);
> }
>
> - if (fw->flags & FWTS_FLAG_LP_TAGS)
> - fwts_tag_report(fw, LOG_TAG | LOG_NO_FIELDS, &fw->total_taglist);
> -
> tidy:
> fwts_list_free_items(&tests_to_skip, NULL);
> fwts_list_free_items(&tests_to_run, NULL);
> @@ -1410,7 +1382,6 @@ tidy_close:
>
> fwts_list_free_items(&fw->errors_filter_discard, NULL);
> fwts_list_free_items(&fw->errors_filter_keep, NULL);
> - fwts_list_free_items(&fw->total_taglist, free);
> fwts_list_free_items(&fwts_framework_test_list, free);
>
> /* Failed tests flagged an error */
> diff --git a/src/lib/src/fwts_klog.c b/src/lib/src/fwts_klog.c
> index 8d3d874..9ae93d6 100644
> --- a/src/lib/src/fwts_klog.c
> +++ b/src/lib/src/fwts_klog.c
> @@ -252,7 +252,6 @@ void fwts_klog_scan_patterns(fwts_framework *fw,
> if (pattern->level == LOG_LEVEL_INFO)
> fwts_log_info(fw, "Kernel message: %s", line);
> else {
> - fwts_tag_failed(fw, pattern->tag);
> fwts_failed(fw, pattern->level, pattern->label,
> "%s Kernel message: %s", fwts_log_level_to_str(pattern->level), line);
> fwts_error_inc(fw, pattern->label, errors);
> @@ -376,10 +375,6 @@ static int fwts_klog_check(fwts_framework *fw,
> goto fail;
> patterns[i].level = fwts_log_str_to_level(str);
>
> - if ((str = fwts_json_str(fw, table, i, obj, "tag", true)) == NULL)
> - goto fail;
> - patterns[i].tag = fwts_tag_id_str_to_tag(str);
> -
> if ((patterns[i].pattern = fwts_json_str(fw, table, i, obj, "pattern", true)) == NULL)
> goto fail;
>
> diff --git a/src/lib/src/fwts_log.c b/src/lib/src/fwts_log.c
> index 693b943..54e8215 100644
> --- a/src/lib/src/fwts_log.c
> +++ b/src/lib/src/fwts_log.c
> @@ -75,8 +75,6 @@ char *fwts_log_field_to_str(const fwts_log_field field)
> return "ADV";
> case LOG_HEADING:
> return "HED";
> - case LOG_TAG:
> - return "TAG";
> case LOG_PASSED:
> return "PAS";
> case LOG_FAILED:
> @@ -119,8 +117,6 @@ char *fwts_log_field_to_str_full(const fwts_log_field field)
> return "Advice";
> case LOG_HEADING:
> return "Heading";
> - case LOG_TAG:
> - return "Tag";
> case LOG_PASSED:
> return "Passed";
> case LOG_FAILED:
> @@ -239,7 +235,6 @@ fwts_log_field fwts_log_str_to_field(const char *text)
> { "SEP", LOG_SEPARATOR },
> { "ADV", LOG_ADVICE },
> { "HED", LOG_HEADING },
> - { "TAG", LOG_TAG },
> { "ALL", ~0 },
> { NULL, 0 }
> };
> diff --git a/src/lib/src/fwts_tag.c b/src/lib/src/fwts_tag.c
> deleted file mode 100644
> index 958a3c2..0000000
> --- a/src/lib/src/fwts_tag.c
> +++ /dev/null
> @@ -1,202 +0,0 @@
> -/*
> - * Copyright (C) 2010-2013 Canonical
> - *
> - * This program is free software; you can redistribute it and/or
> - * modify it under the terms of the GNU General Public License
> - * as published by the Free Software Foundation; either version 2
> - * of the License, or (at your option) any later version.
> - *
> - * This program is distributed in the hope that it will be useful,
> - * but WITHOUT ANY WARRANTY; without even the implied warranty of
> - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> - * GNU General Public License for more details.
> - *
> - * You should have received a copy of the GNU General Public License
> - * along with this program; if not, write to the Free Software
> - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
> - *
> - */
> -
> -#include <stdlib.h>
> -#include <string.h>
> -
> -#include "fwts.h"
> -
> -typedef struct {
> - const fwts_tag tag;
> - const char *tag_id;
> - const char *tag_str;
> -} fwts_tag_info;
> -
> -#define FWTS_TAG(tag, str) \
> - { tag, #tag, str }
> -
> -static fwts_tag_info fwts_tags[] = {
> - FWTS_TAG(FWTS_TAG_NONE, ""),
> - FWTS_TAG(FWTS_TAG_ERROR_CRITICAL, "error-critical"),
> - FWTS_TAG(FWTS_TAG_ERROR_HIGH, "error-high"),
> - FWTS_TAG(FWTS_TAG_ERROR_MEDIUM, "error-medium"),
> - FWTS_TAG(FWTS_TAG_ERROR_LOW, "error-low"),
> - FWTS_TAG(FWTS_TAG_BIOS, "bios"),
> - FWTS_TAG(FWTS_TAG_BIOS_THERMAL, "bios-thermal"),
> - FWTS_TAG(FWTS_TAG_BIOS_IRQ, "bios-irq"),
> - FWTS_TAG(FWTS_TAG_BIOS_AMD_POWERNOW, "bios-amd-powernow"),
> - FWTS_TAG(FWTS_TAG_BIOS_MMCONFIG, "bios-mmconfig"),
> - FWTS_TAG(FWTS_TAG_BIOS_DMI, "bios-dmi"),
> - FWTS_TAG(FWTS_TAG_ACPI, "acpi"),
> - FWTS_TAG(FWTS_TAG_ACPI_IO_PORT, "acpi-io-port"),
> - FWTS_TAG(FWTS_TAG_ACPI_INVALID_TABLE, "acpi-invalid-table"),
> - FWTS_TAG(FWTS_TAG_ACPI_BUFFER_OVERFLOW, "acpi-buffer-overflow"),
> - FWTS_TAG(FWTS_TAG_ACPI_AML_OPCODE, "acpi-aml-opcode"),
> - FWTS_TAG(FWTS_TAG_ACPI_NAMESPACE_LOOKUP,"acpi-namespace-lookup"),
> - FWTS_TAG(FWTS_TAG_ACPI_PCI_EXPRESS, "acpi-pci-express"),
> - FWTS_TAG(FWTS_TAG_ACPI_BAD_RESULT, "acpi-bad-result"),
> - FWTS_TAG(FWTS_TAG_ACPI_NO_HANDLER, "acpi-no-handler"),
> - FWTS_TAG(FWTS_TAG_ACPI_PACKAGE_LIST, "acpi-package-list"),
> - FWTS_TAG(FWTS_TAG_ACPI_PARSE_EXEC_FAIL, "acpi-parse-exec-fail"),
> - FWTS_TAG(FWTS_TAG_ACPI_EVAL, "acpi-eval"),
> - FWTS_TAG(FWTS_TAG_ACPI_BAD_LENGTH, "acpi-bad-length"),
> - FWTS_TAG(FWTS_TAG_ACPI_BAD_ADDRESS, "acpi-bad-address"),
> - FWTS_TAG(FWTS_TAG_ACPI_METHOD_RETURN, "acpi-method-return"),
> - FWTS_TAG(FWTS_TAG_ACPI_BRIGHTNESS, "acpi-brightness"),
> - FWTS_TAG(FWTS_TAG_ACPI_BUTTON, "acpi-button"),
> - FWTS_TAG(FWTS_TAG_ACPI_EVENT, "acpi-event"),
> - FWTS_TAG(FWTS_TAG_ACPI_PARAMETER, "acpi-parameter"),
> - FWTS_TAG(FWTS_TAG_ACPI_THROTTLING, "acpi-throttling"),
> - FWTS_TAG(FWTS_TAG_ACPI_EXCEPTION, "acpi-exception"),
> - FWTS_TAG(FWTS_TAG_ACPI_PACKAGE, "acpi-package"),
> - FWTS_TAG(FWTS_TAG_ACPI_APIC, "acpi-apic"),
> - FWTS_TAG(FWTS_TAG_ACPI_DISPLAY, "acpi-display"),
> - FWTS_TAG(FWTS_TAG_ACPI_MULTIPLE_FACS, "acpi-multiple-facs"),
> - FWTS_TAG(FWTS_TAG_ACPI_POINTER_MISMATCH,"acpi-pointer-mismatch"),
> - FWTS_TAG(FWTS_TAG_ACPI_TABLE_CHECKSUM, "acpi-table-checksum"),
> - FWTS_TAG(FWTS_TAG_ACPI_HOTPLUG, "acpi-hotplug"),
> - FWTS_TAG(FWTS_TAG_ACPI_RSDP, "acpi-rsdp"),
> - FWTS_TAG(FWTS_TAG_ACPI_MUTEX, "acpi-mutex"),
> - FWTS_TAG(FWTS_TAG_ACPI_THERMAL, "acpi-thermal"),
> - FWTS_TAG(FWTS_TAG_ACPI_LID, "acpi-lid"),
> - FWTS_TAG(FWTS_TAG_ACPI_METHOD, "acpi-method"),
> - FWTS_TAG(FWTS_TAG_EMBEDDED_CONTROLLER, "embedded-controller"),
> - FWTS_TAG(FWTS_TAG_POWER_MANAGEMENT, "power-management"),
> - FWTS_TAG(FWTS_TAG_WMI, "wmi"),
> - { 0, NULL, NULL }
> -};
> -
> -/*
> - * fwts_tag_id_str_to_tag()
> - * given a tag string, return the tag
> - */
> -fwts_tag fwts_tag_id_str_to_tag(const char *tag)
> -{
> - int i;
> -
> - for (i=0; fwts_tags[i].tag_id != NULL; i++)
> - if (strcmp(tag, fwts_tags[i].tag_id) == 0)
> - return fwts_tags[i].tag;
> - return FWTS_TAG_NONE;
> -}
> -
> -/*
> - * fwts_tag_to_str()
> - * given a tag, return the human readable tag name
> - */
> -const char *fwts_tag_to_str(const fwts_tag tag)
> -{
> - int i;
> - static const char *none = "";
> -
> - for (i=0; fwts_tags[i].tag_id != NULL; i++)
> - if (fwts_tags[i].tag == tag)
> - return fwts_tags[i].tag_str;
> - return none;
> -}
> -
> -/*
> - * fwts_tag_compare()
> - * callback to enable tag name sorting
> - */
> -static int fwts_tag_compare(void *data1, void *data2)
> -{
> - return strcmp((char *)data1, (char*)data2);
> -}
> -
> -/*
> - * fwts_tag_add()
> - * add a tag name to a list of tag names, ordered alphabetically
> - * tag is added if it does already exist in the tag list
> - */
> -void fwts_tag_add(fwts_list *taglist, const char *tag)
> -{
> - fwts_list_link *item;
> - char *str;
> -
> - /* Exists already? then don't bother */
> - fwts_list_foreach(item, taglist)
> - if (strcmp(fwts_list_data(char *,item), tag) == 0)
> - return;
> -
> - str = strdup(tag);
> - if (str)
> - fwts_list_add_ordered(taglist, str, fwts_tag_compare);
> -}
> -
> -/*
> - * fwts_tag_list_to_str()
> - * given a list of tag names return a space delimited string
> - * containing the the tag names
> - */
> -char *fwts_tag_list_to_str(fwts_list *taglist)
> -{
> - fwts_list_link *item;
> - char *str = NULL;
> - size_t len = 0;
> -
> - fwts_list_foreach(item, taglist) {
> - char *tag = fwts_list_data(char *, item);
> - size_t taglen = strlen(tag);
> - len += taglen + 1;
> -
> - if (str) {
> - if ((str = realloc(str, len)) == NULL)
> - return NULL;
> - strcat(str, " ");
> - strcat(str, tag);
> - } else {
> - if ((str = malloc(len)) == NULL)
> - return NULL;
> - strcpy(str, tag);
> - }
> - }
> - return str;
> -}
> -
> -/*
> - * fwts_tag_report()
> - * report to the log the tags found in the taglist
> - */
> -void fwts_tag_report(fwts_framework *fw, const fwts_log_field field, fwts_list *taglist)
> -{
> - if ((taglist != NULL) && (fwts_list_len(taglist) > 0)) {
> - char *tags = fwts_tag_list_to_str(taglist);
> - if (tags) {
> - fwts_log_printf(fw->results, field | LOG_VERBATUM, LOG_LEVEL_NONE, "", "", "", "Tags: %s", tags);
> - free(tags);
> - }
> - }
> -}
> -
> -/*
> - * fwts_tag_failed()
> - * add to the tag lists the tag:
> - * per test (this is emptied at end of each test)
> - * all tests (this is total for all tests run)
> - */
> -void fwts_tag_failed(fwts_framework *fw, const fwts_tag tag)
> -{
> - const char *text = fwts_tag_to_str(tag);
> -
> - if (*text) {
> - fwts_tag_add(&fw->test_taglist, text);
> - fwts_tag_add(&fw->total_taglist, text);
> - }
> -}
> diff --git a/src/pci/crs/crs.c b/src/pci/crs/crs.c
> index 9b48ed4..b7f6165 100644
> --- a/src/pci/crs/crs.c
> +++ b/src/pci/crs/crs.c
> @@ -72,15 +72,12 @@ static int crs_test1(fwts_framework *fw)
> "The kernel could not determine the BIOS age "
> "and has assumed that your BIOS is too old to correctly "
> "specify the host bridge MMIO aperture using _CRS.");
> - fwts_tag_failed(fw, FWTS_TAG_BIOS);
> fwts_log_advice(fw, "You can override this by booting with \"pci=use_crs\".");
> -
> } else if (year < 2008) {
> fwts_passed(fw,
> "The kernel has detected an old BIOS (%d/%d/%d) "
> "and has assumed that your BIOS is too old to correctly "
> "specify the host bridge MMIO aperture using _CRS.", mon, day, year);
> - fwts_tag_failed(fw, FWTS_TAG_BIOS);
> fwts_log_advice(fw, "You can override this by booting with \"pci=use_crs\".");
> } else {
> fwts_failed(fw, LOG_LEVEL_MEDIUM,
> @@ -88,7 +85,6 @@ static int crs_test1(fwts_framework *fw)
> "The kernel is ignoring host bridge windows from ACPI for some unknown reason. "
> "pci=nocrs has not been used as a boot parameter and the BIOS may be recent enough "
> "to support this (%d/%d/%d)", mon, day, year);
> - fwts_tag_failed(fw, FWTS_TAG_BIOS);
> }
> }
> } else if (fwts_klog_regex_find(fw, klog, "PCI: Using host bridge windows from ACPI;") > 0) {
> @@ -97,12 +93,10 @@ static int crs_test1(fwts_framework *fw)
> fwts_failed(fw, LOG_LEVEL_MEDIUM,
> "BIOSNoReleaseDate",
> "The BIOS does not seem to have release date, hence pci=use_crs was required.");
> - fwts_tag_failed(fw, FWTS_TAG_BIOS);
> } else if (year < 2008) {
> fwts_passed(fw,
> "The BIOS is relatively old (%d/%d/%d) and hence pci=use_crs was required to "
> "enable host bridge windows _CRS settings from ACPI.", mon, day, year);
> - fwts_tag_failed(fw, FWTS_TAG_BIOS);
> } else {
> fwts_failed(fw, LOG_LEVEL_LOW,
> "BIOSSupportBridgeWindows",
> @@ -110,7 +104,6 @@ static int crs_test1(fwts_framework *fw)
> "the BIOS is new enough to support automatic bridge windows configuring using _CRS from ACPI. "
> "However, the workaround may be necessary because _CRS is incorrect or not implemented in the "
> "DSDT.");
> - fwts_tag_failed(fw, FWTS_TAG_BIOS);
> }
> }
> else {
> diff --git a/src/pci/maxreadreq/maxreadreq.c b/src/pci/maxreadreq/maxreadreq.c
> index 7a06cec..2713224 100644
> --- a/src/pci/maxreadreq/maxreadreq.c
> +++ b/src/pci/maxreadreq/maxreadreq.c
> @@ -129,7 +129,6 @@ static int maxreadreq_test1(fwts_framework *fw)
> "allow one to override the firmware settings. Where possible, this BIOS "
> "configuration setting is worth increasing it a little more for better "
> "performance at a small reduction of bus sharing.");
> - fwts_tag_failed(fw, FWTS_TAG_BIOS);
> } else
> fwts_passed(fw, "All devices have MaxReadReq set > 128.");
>
>
Acked-by: Ivan Hu <ivan.hu at canonical.com>
More information about the fwts-devel
mailing list