Re: [PATCH] ACPI / CPPC: Use 64-bit arithmetic instead of 32-bit

From: Rafael J. Wysocki
Date: Thu Feb 08 2018 - 04:51:38 EST


On Wednesday, February 7, 2018 12:36:17 AM CET Gustavo A. R. Silva wrote:
> Add suffix ULL to constant 500 in order to give the compiler complete
> information about the proper arithmetic to use. Notice that this
> constant is used in a context that expects an expression of type
> u64 (64 bits, unsigned).
>
> The expression NUM_RETRIES * cppc_ss->latency at line 578, which at
> preprocessing time translates to 500 * cppc_ss->latency is currently
> being evaluated using 32-bit arithmetic.
>
> Addresses-Coverity-ID: 1382602
> Signed-off-by: Gustavo A. R. Silva <gustavo@xxxxxxxxxxxxxx>
> ---
> Notice that another option is to cast NUM_RETRIES to u64 at line 578,
> but as there is only one instace in which this macro is being used I
> think adding the ULL is just enough.
>
> drivers/acpi/cppc_acpi.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/acpi/cppc_acpi.c b/drivers/acpi/cppc_acpi.c
> index 06ea474..0afbb26 100644
> --- a/drivers/acpi/cppc_acpi.c
> +++ b/drivers/acpi/cppc_acpi.c
> @@ -119,7 +119,7 @@ static DEFINE_PER_CPU(struct cpc_desc *, cpc_desc_ptr);
> * to PCC commands. Keeping it high enough to cover emulators where
> * the processors run painfully slow.
> */
> -#define NUM_RETRIES 500
> +#define NUM_RETRIES 500ULL
>
> struct cppc_attr {
> struct attribute attr;
>

Applied, thanks!