ACK: [PATCH] lib: raise severity of acpi method failures
ivanhu
ivan.hu at canonical.com
Wed Oct 25 06:38:55 UTC 2017
On 10/18/2017 02:33 PM, Alex Hung wrote:
> In many cases, incorrect returns of control methods cause function
> failures, and therefore the failures should be critical
>
> Signed-off-by: Alex Hung <alex.hung at canonical.com>
> ---
> src/lib/src/fwts_acpi_object_eval.c | 30 +++++++++++++++---------------
> 1 file changed, 15 insertions(+), 15 deletions(-)
>
> diff --git a/src/lib/src/fwts_acpi_object_eval.c b/src/lib/src/fwts_acpi_object_eval.c
> index 337b311..1846718 100644
> --- a/src/lib/src/fwts_acpi_object_eval.c
> +++ b/src/lib/src/fwts_acpi_object_eval.c
> @@ -486,7 +486,7 @@ int fwts_method_check_type__(
> obj = buf->Pointer;
>
> if (!fwts_method_type_matches(obj->Type, type)) {
> - fwts_failed(fw, LOG_LEVEL_MEDIUM, "MethodReturnBadType",
> + fwts_failed(fw, LOG_LEVEL_CRITICAL, "MethodReturnBadType",
> "Method %s did not return %s.", name, type_name);
> return FWTS_ERROR;
> }
> @@ -554,7 +554,7 @@ void fwts_method_failed_null_object(
> const char *name,
> const char *type)
> {
> - fwts_failed(fw, LOG_LEVEL_MEDIUM, "MethodReturnNullObj",
> + fwts_failed(fw, LOG_LEVEL_CRITICAL, "MethodReturnNullObj",
> "%s returned a NULL object, and did not "
> "return %s.", name, type);
> }
> @@ -587,7 +587,7 @@ int fwts_method_package_count_min(
> char tmp[128];
>
> snprintf(tmp, sizeof(tmp), "Method%sElementCount", objname);
> - fwts_failed(fw, LOG_LEVEL_MEDIUM, tmp,
> + fwts_failed(fw, LOG_LEVEL_CRITICAL, tmp,
> "%s should return package of at least %" PRIu32
> " element%s, got %" PRIu32 " element%s instead.",
> name, min, min == 1 ? "" : "s",
> @@ -612,7 +612,7 @@ int fwts_method_package_count_equal(
> char tmp[128];
>
> snprintf(tmp, sizeof(tmp), "Method%sElementCount", objname);
> - fwts_failed(fw, LOG_LEVEL_MEDIUM, tmp,
> + fwts_failed(fw, LOG_LEVEL_CRITICAL, tmp,
> "%s should return package of %" PRIu32
> " element%s, got %" PRIu32 " element%s instead.",
> name, count, count == 1 ? "" : "s",
> @@ -636,7 +636,7 @@ int fwts_method_package_elements_all_type(
> for (i = 0; i < obj->Package.Count; i++) {
> if (!fwts_method_type_matches(obj->Package.Elements[i].Type, type)) {
> snprintf(tmp, sizeof(tmp), "Method%sElementType", objname);
> - fwts_failed(fw, LOG_LEVEL_MEDIUM, tmp,
> + fwts_failed(fw, LOG_LEVEL_CRITICAL, tmp,
> "%s package element %" PRIu32 " was not the expected "
> "type '%s', was instead type '%s'.",
> name, i,
> @@ -672,7 +672,7 @@ int fwts_method_package_elements_type(
> for (i = 0; i < obj->Package.Count; i++) {
> if (!fwts_method_type_matches(obj->Package.Elements[i].Type, info[i].type)) {
> snprintf(tmp, sizeof(tmp), "Method%sElementType", objname);
> - fwts_failed(fw, LOG_LEVEL_MEDIUM, tmp,
> + fwts_failed(fw, LOG_LEVEL_CRITICAL, tmp,
> "%s package element %" PRIu32 " (%s) was not the expected "
> "type '%s', was instead type '%s'.",
> name, i, info[i].name,
> @@ -798,7 +798,7 @@ void fwts_method_test_passed_failed_return(
> if ((val == 0) || (val == 1))
> fwts_method_passed_sane_uint64(fw, name, obj->Integer.Value);
> else {
> - fwts_failed(fw, LOG_LEVEL_MEDIUM,
> + fwts_failed(fw, LOG_LEVEL_CRITICAL,
> "MethodReturnZeroOrOne",
> "%s returned 0x%8.8" PRIx32 ", should return 1 "
> "(success) or 0 (failed).", method, val);
> @@ -832,7 +832,7 @@ void fwts_method_test_polling_return(
> "%f seconds", method,
> (float)obj->Integer.Value / 10.0);
> } else {
> - fwts_failed(fw, LOG_LEVEL_MEDIUM,
> + fwts_failed(fw, LOG_LEVEL_CRITICAL,
> "MethodPollTimeTooLong",
> "%s returned a value %f seconds > (1 hour) "
> "which is probably incorrect.",
> @@ -996,13 +996,13 @@ static void method_test_CRS_size(
>
> if ((data_length < min) || (data_length > max)) {
> if (min != max) {
> - fwts_failed(fw, LOG_LEVEL_MEDIUM, tag,
> + fwts_failed(fw, LOG_LEVEL_CRITICAL, tag,
> "%s Resource data size was %zd bytes long, "
> "expected it to be between %zd and %zd bytes",
> name, data_length, min, max);
> *passed = false;
> } else {
> - fwts_failed(fw, LOG_LEVEL_MEDIUM, tag,
> + fwts_failed(fw, LOG_LEVEL_CRITICAL, tag,
> "%s Resource data size was %zd bytes long, "
> "expected it to be %zd bytes",
> name, data_length, min);
> @@ -1094,7 +1094,7 @@ void fwts_method_test_CRS_small_resource_items(
> break;
> if (data[1] & 0xfe) {
> snprintf(tmp, sizeof(tmp), "Method%sIoPortInfoReservedNonZero", objname);
> - fwts_failed(fw, LOG_LEVEL_LOW, tmp,
> + fwts_failed(fw, LOG_LEVEL_HIGH, tmp,
> "%s I/O Port Descriptor Information field "
> "has reserved bits that are non-zero, got "
> "0x%" PRIx8 " and expected 0 or 1 for this "
> @@ -1145,7 +1145,7 @@ void fwts_method_test_CRS_small_resource_items(
> break;
> default:
> snprintf(tmp, sizeof(tmp), "Method%sUnkownSmallResourceItem", objname);
> - fwts_failed(fw, LOG_LEVEL_LOW, tmp,
> + fwts_failed(fw, LOG_LEVEL_HIGH, tmp,
> "%s tag bits 6:3 is an undefined "
> "small tag item name, value 0x%" PRIx8 ".",
> name, tag_item);
> @@ -1181,7 +1181,7 @@ void fwts_method_test_CRS_large_size(
> /* Small _CRS resources have a 3 byte header */
> if (crs_length < 3) {
> snprintf(tmp, sizeof(tmp), "Method%sBufferTooSmall", objname);
> - fwts_failed(fw, LOG_LEVEL_MEDIUM, tmp,
> + fwts_failed(fw, LOG_LEVEL_CRITICAL, tmp,
> "%s should return a buffer of at least three bytes in length.", name);
> *passed = false;
> return;
> @@ -1563,7 +1563,7 @@ void fwts_method_test_CRS_large_resource_items(
> }
> if ((data[9] > 0x03) && (data[9] < 0x80)) {
> snprintf(tmp, sizeof(tmp), "Method%sGpioConnTypeInvalid", objname);
> - fwts_failed(fw, LOG_LEVEL_LOW, tmp,
> + fwts_failed(fw, LOG_LEVEL_HIGH, tmp,
> "%s GPIO Connection Descriptor has an invalid "
> "Pin Configuration Type 0x%" PRIx8 ".",
> name, data[9]);
> @@ -1584,7 +1584,7 @@ void fwts_method_test_CRS_large_resource_items(
> break;
> default:
> snprintf(tmp, sizeof(tmp), "Method%sUnkownLargeResourceItem", objname);
> - fwts_failed(fw, LOG_LEVEL_LOW, tmp,
> + fwts_failed(fw, LOG_LEVEL_HIGH, tmp,
> "%s tag bits 6:0 is an undefined "
> "large tag item name, value 0x%" PRIx8 ".",
> name, tag_item);
>
Acked-by: Ivan Hu <ivan.hu at canonical.com>
More information about the fwts-devel
mailing list