ACPI / CPPC: Use 64-bit arithmetic instead of 32-bit
PATCH 1/1 ACPI / CPPC: Use 64-bit arithmetic instead of 32-bit
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
---
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(-)
drivers/acpi/cppc_acpi.c +1 -1
@@ -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 500ULLstruct cppc_attr {struct attribute attr;
Signature · 1 line
2.7.4
Rafael J. Wysocki
AppliedQuoted 25 lines · CET Gustavo A. R. Silva
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->latencyat line 578, which at preprocessing time translates to 500 *cppc_ss->latencyis currently being evaluated using 32-bit arithmetic.Addresses-Coverity-ID: 1382602
Signed-off-by Gustavo A. R. Silva <[email protected]>---
Notice that another option is to castNUM_RETRIESto 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(-)drivers/acpi/cppc_acpi.c +0
-0
drivers/acpi/cppc_acpi.c static DEFINE_PER_CPU(struct cpc_desc *, cpc_desc_ptr); · line 125
Quoted 8 lines
drivers/acpi/cppc_acpi.c +1
-1@@ -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 500ULLstruct cppc_attr {struct attribute attr;
Applied, thanks!
Quoted 31 lines · Rafael J. Wysocki
Quoted 30 lines · CET Gustavo A. R. Silva
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->latencyat line 578, which at preprocessing time translates to 500 *cppc_ss->latencyis currently being evaluated using 32-bit arithmetic.Addresses-Coverity-ID: 1382602
Signed-off-by Gustavo A. R. Silva <[email protected]>---
Notice that another option is to castNUM_RETRIESto 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(-)drivers/acpi/cppc_acpi.c +1
-1@@ -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
Quoted 7 lines
drivers/acpi/cppc_acpi.c static DEFINE_PER_CPU(struct cpc_desc *, cpc_desc_ptr); · line 125
Quoted 3 lines
drivers/acpi/cppc_acpi.c +0
-0struct cppc_attr {struct attribute attr;Applied, thanks!
Thank you, Rafael.
Signature · 1 line
Gustavo