freebsd-dev/sys/dev/hyperv
Mark Johnston 97993d1ebf 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
MFC after:	2 weeks
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D30577
2021-06-08 09:40:30 -04:00
..
hvsock Add missing sockaddr length and family validation to various protocols 2021-05-03 13:35:19 -04:00
include HyperV socket implementation for FreeBSD 2020-05-20 11:03:59 +00:00
input hv_kbd: Fix build with EVDEV_SUPPORT kernel option disabled. 2021-04-23 01:13:25 +03:00
netvsc Hyper-V: hn: Initialize the internal field of per packet info on tx path 2021-03-15 10:33:29 +00: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-07 10:17:57 +03:00
utilities
vmbus hyperv: Fix vmbus after the i386 4/4 split 2021-06-08 09:40:30 -04:00