mirror of
https://github.com/opnsense/src.git
synced 2026-03-13 06:02:46 -04:00
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
38 lines
783 B
Makefile
38 lines
783 B
Makefile
# $FreeBSD$
|
|
|
|
.PATH: ${SRCTOP}/sys/dev/hyperv/vmbus \
|
|
${SRCTOP}/sys/dev/hyperv/vmbus/${MACHINE_CPUARCH}
|
|
|
|
KMOD= hv_vmbus
|
|
SRCS= hyperv.c \
|
|
hyperv_busdma.c \
|
|
hyperv_machdep.c \
|
|
vmbus.c \
|
|
vmbus_br.c \
|
|
vmbus_chan.c \
|
|
vmbus_et.c \
|
|
vmbus_if.c \
|
|
vmbus_res.c \
|
|
vmbus_xact.c
|
|
|
|
.if ${MACHINE_CPUARCH} != "i386"
|
|
SRCS+= vmbus_vector.S
|
|
.endif
|
|
SRCS+= acpi_if.h bus_if.h device_if.h opt_acpi.h pci_if.h pcib_if.h vmbus_if.h
|
|
|
|
# XXX: for assym.inc
|
|
SRCS+= opt_kstack_pages.h opt_nfs.h opt_hwpmc_hooks.h
|
|
.if ${MACHINE_CPUARCH} == "i386"
|
|
SRCS+= opt_apic.h
|
|
.endif
|
|
|
|
DPSRCS= assym.inc
|
|
|
|
vmbus_vector.o:
|
|
${CC} -c -x assembler-with-cpp -DLOCORE ${CFLAGS} \
|
|
${.IMPSRC} -o ${.TARGET}
|
|
|
|
CFLAGS+= -I${SRCTOP}/sys/dev/hyperv/include \
|
|
-I${SRCTOP}/sys/dev/hyperv/vmbus
|
|
|
|
.include <bsd.kmod.mk>
|