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

Pierre Gondois pierre.gondois at arm.com
Mon Jan 15 05:01:50 PST 2024


Hello Levi,

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.
> 

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


> Signed-off-by: Levi Yun <ppbuk5246 at gmail.com>
> ---
>   drivers/firmware/arm_sdei.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> 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;

>   
>   	err = sdei_unregister_shared();
>   	if (err)

Regards,
Pierre



More information about the linux-arm-kernel mailing list