[PATCH] firmware/arm_sdei: Fix invalid argument to unregister private events.

James Morse james.morse at arm.com
Mon Jan 15 09:24:58 PST 2024


Hi Levi, Pierre,

On 15/01/2024 13:01, Pierre Gondois wrote:
> On 1/10/24 10:01, Levi Yun wrote:
>> To unregister private events in device freeze, it should call
>> cpuhp_remove_state with sdei_hp_state not sdei_entry_point.
>> otherwise, it seems to fail on cpuhp_cb_check.

Oops. Well caught!


> I think you can also add:
> Fixes: d2c48b2387eb ("firmware: arm_sdei: Fix sleep from invalid context BUG")


>> diff --git a/drivers/firmware/arm_sdei.c b/drivers/firmware/arm_sdei.c
>> index 285fe7ad490d..3e8051fe8296 100644
>> --- a/drivers/firmware/arm_sdei.c
>> +++ b/drivers/firmware/arm_sdei.c
>> @@ -763,7 +763,7 @@ static int sdei_device_freeze(struct device *dev)
>>       int err;
>>         /* unregister private events */
>> -    cpuhp_remove_state(sdei_entry_point);
>> +    cpuhp_remove_state(sdei_hp_state);
> 
> Maybe it would also be worth resetting 'sdei_hp_state':
>   sdei_hp_state = 0;

The next call should always be 'thaw', which doesn't check this, but it's good to cleanup
stale values.

Regardless:
Reviewed-by: James Morse <james.morse at arm.com>


Thanks,

James



More information about the linux-arm-kernel mailing list