[PATCH] ACPI: PCC: Fix race condition by removing static qualifier

Pengjie Zhang posted 1 patch 3 days, 12 hours ago
drivers/acpi/acpi_pcc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] ACPI: PCC: Fix race condition by removing static qualifier
Posted by Pengjie Zhang 3 days, 12 hours ago
The variable 'ret' in acpi_pcc_address_space_setup() is currently
declared with the 'static' storage specifier. This can lead to race
conditions in a multithreaded environment.

Remove the 'static' qualifier to ensure 'ret' is allocated directly
on the stack as a local variable.

Fixes: a10b1c99e2dc ("ACPI: PCC: Setup PCC Opregion handler only if platform interrupt is available")
Signed-off-by: Pengjie Zhang <zhangpengjie2@huawei.com>
---
 drivers/acpi/acpi_pcc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/acpi/acpi_pcc.c b/drivers/acpi/acpi_pcc.c
index 97064e943768..e3f302b9dee5 100644
--- a/drivers/acpi/acpi_pcc.c
+++ b/drivers/acpi/acpi_pcc.c
@@ -52,7 +52,7 @@ acpi_pcc_address_space_setup(acpi_handle region_handle, u32 function,
 	struct pcc_data *data;
 	struct acpi_pcc_info *ctx = handler_context;
 	struct pcc_mbox_chan *pcc_chan;
-	static acpi_status ret;
+	acpi_status ret;
 
 	data = kzalloc(sizeof(*data), GFP_KERNEL);
 	if (!data)
-- 
2.33.0
Re: [PATCH] ACPI: PCC: Fix race condition by removing static qualifier
Posted by Sudeep Holla 3 days, 11 hours ago
On Wed, Dec 10, 2025 at 09:26:34PM +0800, Pengjie Zhang wrote:
> The variable 'ret' in acpi_pcc_address_space_setup() is currently
> declared with the 'static' storage specifier. This can lead to race
> conditions in a multithreaded environment.
> 
> Remove the 'static' qualifier to ensure 'ret' is allocated directly
> on the stack as a local variable.
> 

Ah, my mistake. I’m not sure how that slipped in other than a simple typo or
copy/paste error. Thanks for catching it. Let me know if you spotted it
because something broke or just from reading the code.

Reviewed-by: Sudeep Holla <sudeep.holla@arm.com>

> Fixes: a10b1c99e2dc ("ACPI: PCC: Setup PCC Opregion handler only if platform interrupt is available")
> Signed-off-by: Pengjie Zhang <zhangpengjie2@huawei.com>
> ---
>  drivers/acpi/acpi_pcc.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/acpi/acpi_pcc.c b/drivers/acpi/acpi_pcc.c
> index 97064e943768..e3f302b9dee5 100644
> --- a/drivers/acpi/acpi_pcc.c
> +++ b/drivers/acpi/acpi_pcc.c
> @@ -52,7 +52,7 @@ acpi_pcc_address_space_setup(acpi_handle region_handle, u32 function,
>  	struct pcc_data *data;
>  	struct acpi_pcc_info *ctx = handler_context;
>  	struct pcc_mbox_chan *pcc_chan;
> -	static acpi_status ret;
> +	acpi_status ret;
>  
>  	data = kzalloc(sizeof(*data), GFP_KERNEL);
>  	if (!data)
> -- 
> 2.33.0
> 

-- 
Regards,
Sudeep
Re: [PATCH] ACPI: PCC: Fix race condition by removing static qualifier
Posted by zhangpengjie (A) 2 days, 22 hours ago
On 12/10/2025 10:54 PM, Sudeep Holla wrote:
> On Wed, Dec 10, 2025 at 09:26:34PM +0800, Pengjie Zhang wrote:
>> The variable 'ret' in acpi_pcc_address_space_setup() is currently
>> declared with the 'static' storage specifier. This can lead to race
>> conditions in a multithreaded environment.
>>
>> Remove the 'static' qualifier to ensure 'ret' is allocated directly
>> on the stack as a local variable.
>>
Hi, I'm lucky that I didn't run into any problems because of this, I 
just found

this issue during code review.

> Ah, my mistake. I’m not sure how that slipped in other than a simple typo or
> copy/paste error. Thanks for catching it. Let me know if you spotted it
> because something broke or just from reading the code.
>
> Reviewed-by: Sudeep Holla <sudeep.holla@arm.com>
>
>> Fixes: a10b1c99e2dc ("ACPI: PCC: Setup PCC Opregion handler only if platform interrupt is available")
>> Signed-off-by: Pengjie Zhang <zhangpengjie2@huawei.com>
>> ---
>>   drivers/acpi/acpi_pcc.c | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/acpi/acpi_pcc.c b/drivers/acpi/acpi_pcc.c
>> index 97064e943768..e3f302b9dee5 100644
>> --- a/drivers/acpi/acpi_pcc.c
>> +++ b/drivers/acpi/acpi_pcc.c
>> @@ -52,7 +52,7 @@ acpi_pcc_address_space_setup(acpi_handle region_handle, u32 function,
>>   	struct pcc_data *data;
>>   	struct acpi_pcc_info *ctx = handler_context;
>>   	struct pcc_mbox_chan *pcc_chan;
>> -	static acpi_status ret;
>> +	acpi_status ret;
>>   
>>   	data = kzalloc(sizeof(*data), GFP_KERNEL);
>>   	if (!data)
>> -- 
>> 2.33.0
>>
Re: [PATCH] ACPI: PCC: Fix race condition by removing static qualifier
Posted by lihuisong (C) 3 days ago
在 2025/12/10 22:54, Sudeep Holla 写道:
> On Wed, Dec 10, 2025 at 09:26:34PM +0800, Pengjie Zhang wrote:
>> The variable 'ret' in acpi_pcc_address_space_setup() is currently
>> declared with the 'static' storage specifier. This can lead to race
>> conditions in a multithreaded environment.
>>
>> Remove the 'static' qualifier to ensure 'ret' is allocated directly
>> on the stack as a local variable.
>>
> Ah, my mistake. I’m not sure how that slipped in other than a simple typo or
> copy/paste error. Thanks for catching it. Let me know if you spotted it
> because something broke or just from reading the code.
>
> Reviewed-by: Sudeep Holla <sudeep.holla@arm.com>
Acked-by: lihuisong@huawei.com
>