diff options
| author | Jork Loeser <jloeser@linux.microsoft.com> | 2026-04-28 00:38:53 +0300 |
|---|---|---|
| committer | Wei Liu <wei.liu@kernel.org> | 2026-04-30 01:56:53 +0300 |
| commit | efe0fb8c3fe2b996522f7418fd311eeff43c1148 (patch) | |
| tree | 06252f2f7882c24cc897faa3d516ca2435d7a692 | |
| parent | f1a9e67c11388965802a61922c313bfc43272afe (diff) | |
| download | linux-efe0fb8c3fe2b996522f7418fd311eeff43c1148.tar.xz | |
mshv: clean up SynIC state on kexec for L1VH
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 <jloeser@linux.microsoft.com>
Reviewed-by: Stanislav Kinsburskii <skinsburskii@linux.microsoft.com>
Reviewed-by: Anirudh Rayabharam (Microsoft) <anirudh@anirudhrb.com>
Signed-off-by: Wei Liu <wei.liu@kernel.org>
| -rw-r--r-- | drivers/hv/mshv_synic.c | 3 |
1 files changed, 0 insertions, 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; } |
