On Mon, Apr 27, 2026 at 02:38:53PM -0700, Jork Loeser wrote:
> The reboot notifier that tears down the SynIC cpuhp state guards the
> cleanup with hv_root_partition(), so on L1VH (where
> hv_root_partition() is false) SINT0, SINT5, and SIRBP are never
> cleaned up before kexec. The kexec'd kernel then inherits stale
> unmasked SINTs and an enabled SIRBP pointing to freed memory.
> 
> Remove the hv_root_partition() guard so the cleanup runs for all
> parent partitions.
> 
> Signed-off-by: Jork Loeser <[email protected]>
> ---
>  drivers/hv/mshv_synic.c | 3 ---
>  1 file changed, 3 deletions(-)
> 
> diff --git a/drivers/hv/mshv_synic.c b/drivers/hv/mshv_synic.c
> index 2db3b0192eac..978a1cace341 100644
> --- a/drivers/hv/mshv_synic.c
> +++ b/drivers/hv/mshv_synic.c
> @@ -723,9 +723,6 @@ mshv_unregister_doorbell(u64 partition_id, int 
> doorbell_portid)
>  static int mshv_synic_reboot_notify(struct notifier_block *nb,
>                             unsigned long code, void *unused)
>  {
> -     if (!hv_root_partition())
> -             return 0;
> -
>       cpuhp_remove_state(synic_cpuhp_online);
>       return 0;
>  }
> -- 
> 2.43.0
> 

Reviewed-by: Anirudh Rayabharam (Microsoft) <[email protected]>


Reply via email to