drivers/acpi/cppc_acpi.c | 1 - 1 file changed, 1 deletion(-)
With these codes, the value written in cpc register will be the result of
the OR operatiion on input value and prev_val. This will causes the value
to be wrong.
Signed-off-by: Lifeng Zheng <zhenglifeng1@huawei.com>
---
drivers/acpi/cppc_acpi.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/acpi/cppc_acpi.c b/drivers/acpi/cppc_acpi.c
index 01192fd047a6..f69ef7cc0caf 100644
--- a/drivers/acpi/cppc_acpi.c
+++ b/drivers/acpi/cppc_acpi.c
@@ -1146,7 +1146,6 @@ static int cpc_write(int cpu, struct cpc_register_resource *reg_res, u64 val)
return -EFAULT;
}
val = MASK_VAL_WRITE(reg, prev_val, val);
- val |= prev_val;
}
switch (size) {
--
2.33.0
On 13/11/2024 03:49, Lifeng Zheng wrote:
> With these codes, the value written in cpc register will be the result of
> the OR operatiion on input value and prev_val. This will causes the value
> to be wrong.
>
> Signed-off-by: Lifeng Zheng <zhenglifeng1@huawei.com>
> ---
> drivers/acpi/cppc_acpi.c | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/drivers/acpi/cppc_acpi.c b/drivers/acpi/cppc_acpi.c
> index 01192fd047a6..f69ef7cc0caf 100644
> --- a/drivers/acpi/cppc_acpi.c
> +++ b/drivers/acpi/cppc_acpi.c
> @@ -1146,7 +1146,6 @@ static int cpc_write(int cpu, struct cpc_register_resource *reg_res, u64 val)
> return -EFAULT;
> }
> val = MASK_VAL_WRITE(reg, prev_val, val);
> - val |= prev_val;
Hi Lifeng,
Indeed, MASK_VAL_WRITE() already takes care of ORing prev_val with the
register mask. You can also add a Fixes:
Fixes: 60949b7b8054 ("ACPI: CPPC: Fix MASK_VAL() usage")
Thanks,
Clément
> }
>
> switch (size) {
On 2024/11/13 15:05, Clément Léger wrote:
>
>
> On 13/11/2024 03:49, Lifeng Zheng wrote:
>> With these codes, the value written in cpc register will be the result of
>> the OR operatiion on input value and prev_val. This will causes the value
>> to be wrong.
>>
>> Signed-off-by: Lifeng Zheng <zhenglifeng1@huawei.com>
>> ---
>> drivers/acpi/cppc_acpi.c | 1 -
>> 1 file changed, 1 deletion(-)
>>
>> diff --git a/drivers/acpi/cppc_acpi.c b/drivers/acpi/cppc_acpi.c
>> index 01192fd047a6..f69ef7cc0caf 100644
>> --- a/drivers/acpi/cppc_acpi.c
>> +++ b/drivers/acpi/cppc_acpi.c
>> @@ -1146,7 +1146,6 @@ static int cpc_write(int cpu, struct cpc_register_resource *reg_res, u64 val)
>> return -EFAULT;
>> }
>> val = MASK_VAL_WRITE(reg, prev_val, val);
>> - val |= prev_val;
>
> Hi Lifeng,
>
> Indeed, MASK_VAL_WRITE() already takes care of ORing prev_val with the
> register mask. You can also add a Fixes:
>
> Fixes: 60949b7b8054 ("ACPI: CPPC: Fix MASK_VAL() usage")
>
> Thanks,
>
> Clément
>
>> }
>>
>> switch (size) {
>
Thanks for reminder. I'll add this Fixes and resend this patch.
© 2016 - 2026 Red Hat, Inc.