opnsense-src/sys/dev/hyperv
Mark Johnston df57775d7a hyperv: Fix vmbus after the i386 4/4 split
The vmbus ISR needs to live in a trampoline.  Dynamically allocating a
trampoline at driver initialization time poses some difficulties due to
the fact that the KENTER macro assumes that the offset relative to
tramp_idleptd is fixed at static link time.  Another problem is that
native_lapic_ipi_alloc() uses setidt(), which assumes a fixed trampoline
offset.

Rather than fight this, move the Hyper-V ISR to i386/exception.s.  Add a
new HYPERV kernel option to make this optional, and configure it by
default on i386.  This is sufficient to make use of vmbus(4) after the
4/4 split.  Note that vmbus cannot be loaded dynamically and both the
HYPERV option and device must be configured together.  I think this is
not too onerous a requirement, since vmbus(4) was previously
non-functional.

Reported by:	Harry Schmalzbauer <freebsd@omnilan.de>
Tested by:	Harry Schmalzbauer <freebsd@omnilan.de>
Reviewed by:	whu, kib
Sponsored by:	The FreeBSD Foundation

(cherry picked from commit 97993d1ebf)
2021-06-21 21:09:17 -04:00
..
hvsock Consistently use the SOLISTENING() macro 2021-06-21 09:14:40 -04:00
include HyperV socket implementation for FreeBSD 2020-05-20 11:03:59 +00:00
input Revert r355806: kbd drivers: don't double register keyboard drivers 2019-12-26 17:09:36 +00:00
netvsc Hyper-V: hn: Initialize the internal field of per packet info on tx path 2021-03-29 03:21:30 -07:00
pcib Hyper-V: pcib: Check revoke status during device attach 2020-10-15 05:57:20 +00:00
storvsc storvsc: fix auto-sense reporting 2021-05-21 13:32:13 +03:00
utilities
vmbus hyperv: Fix vmbus after the i386 4/4 split 2021-06-21 21:09:17 -04:00