[PATCH] acpi: method: fix ppc64el build failure (LP: #1272265)

Keng-Yu Lin kengyu at canonical.com
Thu Feb 13 09:03:40 UTC 2014


On Fri, Jan 24, 2014 at 6:50 PM, Colin King <colin.king at canonical.com> wrote:
> From: Colin Ian King <colin.king at canonical.com>
>
> Fix various build errors such as the following:
>
> acpi/method/method.c: In function 'method_test_HID_return':
> acpi/method/method.c:990:4: error: format '%lx' expects argument of type
>   'long unsigned int', but argument 8 has type 'UINT64' [-Werror=format=]
>     fwts_passed(fw, "%s returned an integer "
>
> Signed-off-by: Colin Ian King <colin.king at canonical.com>
> ---
>  src/acpi/method/method.c | 95 +++++++++++++++++++++++++-----------------------
>  1 file changed, 49 insertions(+), 46 deletions(-)
>
> diff --git a/src/acpi/method/method.c b/src/acpi/method/method.c
> index 61c6d62..6e6c5c2 100644
> --- a/src/acpi/method/method.c
> +++ b/src/acpi/method/method.c
> @@ -989,14 +989,14 @@ static void method_test_HID_return(
>                         tmp, sizeof(tmp)))
>                         fwts_passed(fw, "%s returned an integer "
>                                 "0x%8.8" PRIx64 " (EISA ID %s).",
> -                               name, obj->Integer.Value, tmp);
> +                               name, (uint64_t)obj->Integer.Value, tmp);
>                 else
>                         fwts_failed(fw, LOG_LEVEL_MEDIUM,
>                                 "MethodHIDInvalidInteger",
>                                 "%s returned a integer 0x%8.8" PRIx64 " "
>                                 "(EISA ID %s) but the this is not a valid "
>                                 "EISA ID encoded PNP ID.",
> -                               name, obj->Integer.Value, tmp);
> +                               name, (uint64_t)obj->Integer.Value, tmp);
>                 break;
>         default:
>                 fwts_failed(fw, LOG_LEVEL_MEDIUM, "Method_HIDBadReturnType",
> @@ -1876,7 +1876,8 @@ static void method_test_FIX_return(
>                                 "%s returned an integer "
>                                 "0x%8.8" PRIx64 " in package element "
>                                 "%" PRIu32 " that is not a valid "
> -                               "EISA ID.", name, obj->Integer.Value, i);
> +                               "EISA ID.", name,
> +                               (uint64_t)obj->Integer.Value, i);
>                         failed = true;
>                 }
>         }
> @@ -2103,7 +2104,7 @@ static void method_test_SEG_return(
>                         "%s returned value 0x%8.8" PRIx64 " and some of the "
>                         "upper 16 reserved bits are set when they "
>                         "should in fact be zero.",
> -                       name, obj->Integer.Value);
> +                       name, (uint64_t)obj->Integer.Value);
>         } else
>                 method_passed_sane_uint64(fw, name, obj->Integer.Value);
>  }
> @@ -2338,9 +2339,9 @@ static void method_test_Sx__return(
>         }
>
>         fwts_log_info(fw, "%s PM1a_CNT.SLP_TYP value: 0x%8.8" PRIx64, name,
> -               obj->Package.Elements[0].Integer.Value);
> +               (uint64_t)obj->Package.Elements[0].Integer.Value);
>         fwts_log_info(fw, "%s PM1b_CNT.SLP_TYP value: 0x%8.8" PRIx64, name,
> -               obj->Package.Elements[1].Integer.Value);
> +               (uint64_t)obj->Package.Elements[1].Integer.Value);
>
>         if (!failed)
>                 method_passed_sane(fw, name, "package");
> @@ -2487,7 +2488,7 @@ static void method_test_CSD_return(
>                                 "%s sub-package %d element 0 (NumEntries) "
>                                 "was expected to have value 0x%" PRIx64 ".",
>                                 name, i,
> -                               pkg->Package.Elements[0].Integer.Value);
> +                               (uint64_t)pkg->Package.Elements[0].Integer.Value);
>                         failed = true;
>                 }
>                 /* Element 1 should contain zero */
> @@ -2498,7 +2499,7 @@ static void method_test_CSD_return(
>                                 "was expected to have value 1, instead it "
>                                 "was 0x%" PRIx64 ".",
>                                 name, i,
> -                               pkg->Package.Elements[1].Integer.Value);
> +                               (uint64_t)pkg->Package.Elements[1].Integer.Value);
>                         failed = true;
>                 }
>                 /* Element 3 should contain 0xfc..0xfe */
> @@ -2512,7 +2513,7 @@ static void method_test_CSD_return(
>                                 "0xfd (SW_ANY) or 0xfe (HW_ALL), instead it "
>                                 "was 0x%" PRIx64 ".",
>                                 name, i,
> -                               pkg->Package.Elements[3].Integer.Value);
> +                               (uint64_t)pkg->Package.Elements[3].Integer.Value);
>                         failed = true;
>                 }
>                 /* Element 4 number of processors, skip check */
> @@ -2580,7 +2581,7 @@ static void method_test_CST_return(
>                         "%" PRIu32 " returned C state sub-elements yet _CST "
>                         "reports it has %" PRIu64 " C states.",
>                         name, obj->Package.Count - 1,
> -                       obj->Package.Elements[0].Integer.Value);
> +                       (uint64_t)obj->Package.Elements[0].Integer.Value);
>                 return;
>         }
>
> @@ -2674,9 +2675,9 @@ static void method_test_CST_return(
>                                 fwts_log_info_verbatum(fw,
>                                         "%2" PRIu32 "     C%" PRIu64 "     %6" PRIu64 "    %6" PRIu64,
>                                         i,
> -                                       pkg->Package.Elements[1].Integer.Value,
> -                                       pkg->Package.Elements[2].Integer.Value,
> -                                       pkg->Package.Elements[3].Integer.Value);
> +                                       (uint64_t)pkg->Package.Elements[1].Integer.Value,
> +                                       (uint64_t)pkg->Package.Elements[2].Integer.Value,
> +                                       (uint64_t)pkg->Package.Elements[3].Integer.Value);
>                         } else {
>                                 fwts_log_info_verbatum(fw,
>                                         "%2" PRIu32 "     --      -----     -----", i);
> @@ -2845,10 +2846,10 @@ static void method_test_PSS_return(
>                                 fwts_log_info_verbatum(fw, " %3d   %7" PRIu64 " %8" PRIu64
>                                         " %5" PRIu64 "     %5" PRIu64,
>                                         i,
> -                                       pstate->Package.Elements[0].Integer.Value,
> -                                       pstate->Package.Elements[1].Integer.Value,
> -                                       pstate->Package.Elements[2].Integer.Value,
> -                                       pstate->Package.Elements[3].Integer.Value);
> +                                       (uint64_t)pstate->Package.Elements[0].Integer.Value,
> +                                       (uint64_t)pstate->Package.Elements[1].Integer.Value,
> +                                       (uint64_t)pstate->Package.Elements[2].Integer.Value,
> +                                       (uint64_t)pstate->Package.Elements[3].Integer.Value);
>                         } else {
>                                 fwts_log_info_verbatum(fw,
>                                         " %3d      ----    -----    --        -- (invalid)", i);
> @@ -2996,7 +2997,7 @@ static void method_test_TSD_return(
>                                 " element 0 (NumEntries) "
>                                 "was expected to have value 0x%" PRIx64 ".",
>                                 name, i,
> -                               pkg->Package.Elements[0].Integer.Value);
> +                               (uint64_t)pkg->Package.Elements[0].Integer.Value);
>                         failed = true;
>                 }
>                 /* Element 1 should contain zero */
> @@ -3008,7 +3009,7 @@ static void method_test_TSD_return(
>                                 "was expected to have value 1, instead it "
>                                 "was 0x%" PRIx64 ".",
>                                 name, i,
> -                               pkg->Package.Elements[1].Integer.Value);
> +                               (uint64_t)pkg->Package.Elements[1].Integer.Value);
>                         failed = true;
>                 }
>                 /* Element 3 should contain 0xfc..0xfe */
> @@ -3023,7 +3024,7 @@ static void method_test_TSD_return(
>                                 "0xfd (SW_ANY) or 0xfe (HW_ALL), instead it "
>                                 "was 0x%" PRIx64 ".",
>                                 name, i,
> -                               pkg->Package.Elements[3].Integer.Value);
> +                               (uint64_t)pkg->Package.Elements[3].Integer.Value);
>                         failed = true;
>                 }
>                 /* Element 4 number of processors, skip check */
> @@ -3126,7 +3127,7 @@ static void method_test_TSS_return(
>                                 "was expected to have value 1..100, instead "
>                                 "was %" PRIu64 ".",
>                                 name, i,
> -                               pkg->Package.Elements[0].Integer.Value);
> +                               (uint64_t)pkg->Package.Elements[0].Integer.Value);
>                         failed = true;
>                 }
>                 /* Skip checking elements 1..4 */
> @@ -3144,11 +3145,11 @@ static void method_test_TSS_return(
>                                 fwts_log_info_verbatum(fw,
>                                         "  %3d    %3" PRIu64 "%%  %7" PRIu64 "  %7" PRIu64
>                                         "      %2.2" PRIx64 "      %2.2" PRIx64, i,
> -                                       pkg->Package.Elements[0].Integer.Value,
> -                                       pkg->Package.Elements[1].Integer.Value,
> -                                       pkg->Package.Elements[2].Integer.Value,
> -                                       pkg->Package.Elements[3].Integer.Value,
> -                                       pkg->Package.Elements[4].Integer.Value);
> +                                       (uint64_t)pkg->Package.Elements[0].Integer.Value,
> +                                       (uint64_t)pkg->Package.Elements[1].Integer.Value,
> +                                       (uint64_t)pkg->Package.Elements[2].Integer.Value,
> +                                       (uint64_t)pkg->Package.Elements[3].Integer.Value,
> +                                       (uint64_t)pkg->Package.Elements[4].Integer.Value);
>                         } else {
>                                 fwts_log_info_verbatum(fw,
>                                         "  %3d    ----    -----    -----      --      -- (invalid)", i);
> @@ -3258,7 +3259,7 @@ static void method_test_GCP_return(
>                         "%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);
> +                       name, (uint64_t)obj->Integer.Value);
>         else
>                 method_passed_sane_uint64(fw, name, obj->Integer.Value);
>  }
> @@ -3321,7 +3322,7 @@ static void method_test_GWS_return(
>                         "%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);
> +                       name, (uint64_t)obj->Integer.Value);
>         else
>                 method_passed_sane_uint64(fw, name, obj->Integer.Value);
>  }
> @@ -3412,13 +3413,13 @@ static void method_test_SBS_return(
>         switch (obj->Integer.Value) {
>         case 0 ... 4:
>                 fwts_passed(fw, "%s correctly returned value %" PRIu64 " %s",
> -                       name, obj->Integer.Value,
> +                       name, (uint64_t)obj->Integer.Value,
>                         sbs_info[obj->Integer.Value]);
>                 break;
>         default:
>                 fwts_failed(fw, LOG_LEVEL_MEDIUM, "Method_SBSReturn",
>                         "%s returned %" PRIu64 ", should be between 0 and 4.",
> -                       name, obj->Integer.Value);
> +                       name, (uint64_t)obj->Integer.Value);
>                 fwts_advice(fw,
>                         "Smart Battery %s is incorrectly informing "
>                         "the OS about the smart battery "
> @@ -3496,7 +3497,7 @@ static void method_test_BIF_return(
>                         "Method_BIFBadUnits",
>                         "%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);
> +                       name, (uint64_t)obj->Package.Elements[0].Integer.Value);
>                 failed = true;
>         }
>  #ifdef FWTS_METHOD_PEDANDTIC
> @@ -3530,7 +3531,7 @@ static void method_test_BIF_return(
>                         "%s: Expected Battery Technology Unit "
>                         "(Element 3) to be 0 (Primary) or 1 "
>                         "(Secondary), got 0x%8.8" PRIx64 ".",
> -                       name, obj->Package.Elements[3].Integer.Value);
> +                       name, (uint64_t)obj->Package.Elements[3].Integer.Value);
>                 failed = true;
>         }
>  #ifdef FWTS_METHOD_PEDANDTIC
> @@ -3634,7 +3635,7 @@ static void method_test_BIX_return(
>                         "%s: Expected %s (Element 1) to be "
>                         "0 (mWh) or 1 (mAh), got 0x%8.8" PRIx64 ".",
>                         name, elements[1].name,
> -                       obj->Package.Elements[1].Integer.Value);
> +                       (uint64_t)obj->Package.Elements[1].Integer.Value);
>                 failed = true;
>         }
>  #ifdef FWTS_METHOD_PEDANDTIC
> @@ -3671,7 +3672,7 @@ static void method_test_BIX_return(
>                         "(Element 4) to be 0 (Primary) or 1 "
>                         "(Secondary), got 0x%8.8" PRIx64 ".",
>                         name, elements[4].name,
> -                       obj->Package.Elements[4].Integer.Value);
> +                       (uint64_t)obj->Package.Elements[4].Integer.Value);
>                 failed = true;
>         }
>  #ifdef FWTS_METHOD_PEDANDTIC
> @@ -3782,7 +3783,7 @@ static void method_test_BST_return(
>                         "Method_BSTBadState",
>                         "%s: Expected Battery State (Element 0) to "
>                         "be 0..7, got 0x%8.8" PRIx64 ".",
> -                       name, obj->Package.Elements[0].Integer.Value);
> +                       name, (uint64_t)obj->Package.Elements[0].Integer.Value);
>                 failed = true;
>         }
>         /* Ensure bits 0 (discharging) and 1 (charging) are not both set, see 10.2.2.6 */
> @@ -3792,7 +3793,7 @@ static void method_test_BST_return(
>                         "%s: Battery State (Element 0) is "
>                         "indicating both charging and discharginng "
>                         "which is not allowed. Got value 0x%8.8" PRIx64 ".",
> -                       name, obj->Package.Elements[0].Integer.Value);
> +                       name, (uint64_t)obj->Package.Elements[0].Integer.Value);
>                 failed = true;
>         }
>         /* Battery Present Rate - cannot check, pulled from EC */
> @@ -3937,7 +3938,7 @@ static void method_test_PSR_return(
>                         "Method_PSRZeroOrOne",
>                         "%s returned 0x%8.8" PRIx64 ", expected 0 "
>                         "(offline) or 1 (online)",
> -                       name, obj->Integer.Value);
> +                       name, (uint64_t)obj->Integer.Value);
>         } else
>                 method_passed_sane_uint64(fw, name, obj->Integer.Value);
>  }
> @@ -4125,7 +4126,7 @@ static void method_test_THERM_return(
>                                 "%s correctly returned sane looking "
>                                 "value 0x%8.8" PRIx64 " (%5.1f degrees K)",
>                                 method,
> -                               obj->Integer.Value,
> +                               (uint64_t)obj->Integer.Value,
>                                 (float)((uint64_t)obj->Integer.Value) / 10.0);
>                 } else {
>                         fwts_failed(fw, LOG_LEVEL_MEDIUM,
> @@ -4134,7 +4135,7 @@ static void method_test_THERM_return(
>                                 "0 degrees C: 0x%8.8" PRIx64 " (%5.1f "
>                                 "degrees K)",
>                                 method,
> -                               obj->Integer.Value,
> +                               (uint64_t)obj->Integer.Value,
>                                 (float)((uint64_t)obj->Integer.Value) / 10.0);
>                         fwts_advice(fw,
>                                 "The value returned was probably a "
> @@ -4602,8 +4603,8 @@ static void method_test_BCL_return(
>                         " power (%" PRIu64 ") is less than "
>                                 "brightness level when on "
>                         "battery power (%" PRIu64 ").",
> -                       obj->Package.Elements[0].Integer.Value,
> -                       obj->Package.Elements[1].Integer.Value);
> +                       (uint64_t)obj->Package.Elements[0].Integer.Value,
> +                       (uint64_t)obj->Package.Elements[1].Integer.Value);
>                 failed = true;
>         }
>
> @@ -4616,8 +4617,8 @@ static void method_test_BCL_return(
>                                 "than brightness level %" PRIu64
>                                 " (index %d" PRIu32 "), should "
>                                 "be in ascending order.",
> -                               obj->Package.Elements[i].Integer.Value, i,
> -                               obj->Package.Elements[i+1].Integer.Value, i+1);
> +                               (uint64_t)obj->Package.Elements[i].Integer.Value, i,
> +                               (uint64_t)obj->Package.Elements[i+1].Integer.Value, i+1);
>                         ascending_levels = true;
>                         failed = true;
>                 }
> @@ -4633,14 +4634,16 @@ static void method_test_BCL_return(
>         }
>
>         fwts_log_info(fw, "Brightness levels for %s:" ,name);
> -       fwts_log_info_verbatum(fw, "  Level on full power   : %" PRIu64, obj->Package.Elements[0].Integer.Value);
> -       fwts_log_info_verbatum(fw, "  Level on battery power: %" PRIu64, obj->Package.Elements[1].Integer.Value);
> +       fwts_log_info_verbatum(fw, "  Level on full power   : %" PRIu64,
> +               (uint64_t)obj->Package.Elements[0].Integer.Value);
> +       fwts_log_info_verbatum(fw, "  Level on battery power: %" PRIu64,
> +               (uint64_t)obj->Package.Elements[1].Integer.Value);
>         for (i = 2; i < obj->Package.Count; i++) {
>                 char tmp[12];
>
>                 snprintf(tmp, sizeof(tmp), "%s%" PRIu64,
>                         i == 2 ? "" : ", ",
> -                       obj->Package.Elements[i].Integer.Value);
> +                       (uint64_t)obj->Package.Elements[i].Integer.Value);
>                 str = fwts_realloc_strcat(str, tmp);
>                 if (!str)
>                         break;
> --
> 1.8.5.3
>

Acked-by: Keng-Yu Lin <kengyu at canonical.com>



More information about the fwts-devel mailing list