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

From: James Morse
Date: Mon Jan 15 2024 - 12:25:07 EST


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@xxxxxxx>


Thanks,

James