mirror of
https://github.com/opnsense/src.git
synced 2026-03-01 21:01:24 -05:00
Vmbus_synic_setup() is invoked via vmbus_intrhook -> vmbus_doattach -> smp_rendezvous. On !EARLY_AP_STARTUP (e.g., aarch64), SMP isn't functional in intrhooks and smp_rendezvous() will just call vmbus_synic_setup() on the boot processor. There's nothing that will initialize the pcpu data on every other AP. To fix it we need to use SI_SUB_SMP for vmbus_doattach(). With this patch the vmbus interrupt should work on all arm64 cpus on HyperV. Reported by: kevans Reviewed by: kevans, whu Tested by: Souradeep Chakrabarti <schakrabarti@microsoft.com> Obtained from: Souradeep Chakrabarti <schakrabarti@microsoft.com> Sponsored by: Microsoft Differential Revision: https://reviews.freebsd.org/D40279 |
||
|---|---|---|
| .. | ||
| aarch64 | ||
| amd64 | ||
| i386 | ||
| x86 | ||
| hyperv.c | ||
| hyperv_busdma.c | ||
| hyperv_common_reg.h | ||
| hyperv_var.h | ||
| vmbus.c | ||
| vmbus_br.c | ||
| vmbus_brvar.h | ||
| vmbus_chan.c | ||
| vmbus_chanvar.h | ||
| vmbus_et.c | ||
| vmbus_if.m | ||
| vmbus_reg.h | ||
| vmbus_res.c | ||
| vmbus_var.h | ||
| vmbus_xact.c | ||