svn commit: r302041 - in stable/10/sys: amd64/amd64 amd64/conf conf dev/hyperv/vmbus dev/hyperv/vmbus/amd64 dev/hyperv/vmbus/i386 i386/conf i386/i386 modules/hyperv/vmbus
Sepherosa Ziehau
sephe at FreeBSD.org
Tue Jun 21 04:51:58 UTC 2016
Author: sephe
Date: Tue Jun 21 04:51:55 2016
New Revision: 302041
URL: https://svnweb.freebsd.org/changeset/base/302041
Log:
MFC 297931,298022
297931
Expose doreti as a global symbol on amd64 and i386.
doreti provides the common code path for returning from interrupt
andlers on x86. Exposing doreti as a global symbol allows kernel
modules to include low-level interrupt handlers instead of requiring
all low-level handlers to be statically compiled into the kernel.
Submitted by: Howard Su <howard0su at gmail.com>
Reviewed by: kib
298022
hyperv: Deprecate HYPERV option by moving Hyper-V IDT vector into vmbus
Submitted by: Jun Su <junsu microsoft com>
Reviewed by: jhb, kib, sephe
Sponsored by: Microsoft OSTC
Differential Revision: https://reviews.freebsd.org/D5910
Added:
stable/10/sys/dev/hyperv/vmbus/amd64/
- copied from r298022, head/sys/dev/hyperv/vmbus/amd64/
stable/10/sys/dev/hyperv/vmbus/i386/
- copied from r298022, head/sys/dev/hyperv/vmbus/i386/
Modified:
stable/10/sys/amd64/amd64/apic_vector.S
stable/10/sys/amd64/amd64/exception.S
stable/10/sys/amd64/conf/GENERIC
stable/10/sys/conf/files.amd64
stable/10/sys/conf/files.i386
stable/10/sys/dev/hyperv/vmbus/hv_vmbus_drv_freebsd.c
stable/10/sys/i386/conf/GENERIC
stable/10/sys/i386/i386/apic_vector.s
stable/10/sys/i386/i386/exception.s
stable/10/sys/modules/hyperv/vmbus/Makefile
Directory Properties:
stable/10/ (props changed)
Modified: stable/10/sys/amd64/amd64/apic_vector.S
==============================================================================
--- stable/10/sys/amd64/amd64/apic_vector.S Tue Jun 21 02:36:03 2016 (r302040)
+++ stable/10/sys/amd64/amd64/apic_vector.S Tue Jun 21 04:51:55 2016 (r302041)
@@ -150,22 +150,6 @@ IDTVEC(xen_intr_upcall)
jmp doreti
#endif
-#ifdef HYPERV
-/*
- * This is the Hyper-V vmbus channel direct callback interrupt.
- * Only used when it is running on Hyper-V.
- */
- .text
- SUPERALIGN_TEXT
-IDTVEC(hv_vmbus_callback)
- PUSH_FRAME
- FAKE_MCOUNT(TF_RIP(%rsp))
- movq %rsp, %rdi
- call hv_vector_handler
- MEXITCOUNT
- jmp doreti
-#endif
-
#ifdef SMP
/*
* Global address space TLB shootdown.
Modified: stable/10/sys/amd64/amd64/exception.S
==============================================================================
--- stable/10/sys/amd64/amd64/exception.S Tue Jun 21 02:36:03 2016 (r302040)
+++ stable/10/sys/amd64/amd64/exception.S Tue Jun 21 04:51:55 2016 (r302041)
@@ -661,6 +661,7 @@ MCOUNT_LABEL(eintr)
.text
SUPERALIGN_TEXT
.type doreti, at function
+ .globl doreti
doreti:
FAKE_MCOUNT($bintr) /* init "from" bintr -> doreti */
/*
Modified: stable/10/sys/amd64/conf/GENERIC
==============================================================================
--- stable/10/sys/amd64/conf/GENERIC Tue Jun 21 02:36:03 2016 (r302040)
+++ stable/10/sys/amd64/conf/GENERIC Tue Jun 21 04:51:55 2016 (r302041)
@@ -353,7 +353,6 @@ device virtio_scsi # VirtIO SCSI devic
device virtio_balloon # VirtIO Memory Balloon device
# HyperV drivers and enchancement support
-# NOTE: HYPERV depends on hyperv. They must be added or removed together.
options HYPERV # Hyper-V kernel infrastructure
device hyperv # HyperV drivers
Modified: stable/10/sys/conf/files.amd64
==============================================================================
--- stable/10/sys/conf/files.amd64 Tue Jun 21 02:36:03 2016 (r302040)
+++ stable/10/sys/conf/files.amd64 Tue Jun 21 04:51:55 2016 (r302041)
@@ -278,6 +278,7 @@ dev/hyperv/vmbus/hv_hv.c optional hyp
dev/hyperv/vmbus/hv_et.c optional hyperv
dev/hyperv/vmbus/hv_ring_buffer.c optional hyperv
dev/hyperv/vmbus/hv_vmbus_drv_freebsd.c optional hyperv
+dev/hyperv/vmbus/amd64/hv_vector.S optional hyperv
dev/kbd/kbd.c optional atkbd | sc | ukbd | vt
dev/lindev/full.c optional lindev
dev/lindev/lindev.c optional lindev
Modified: stable/10/sys/conf/files.i386
==============================================================================
--- stable/10/sys/conf/files.i386 Tue Jun 21 02:36:03 2016 (r302040)
+++ stable/10/sys/conf/files.i386 Tue Jun 21 04:51:55 2016 (r302041)
@@ -254,6 +254,7 @@ dev/hyperv/vmbus/hv_hv.c optional hyp
dev/hyperv/vmbus/hv_et.c optional hyperv
dev/hyperv/vmbus/hv_ring_buffer.c optional hyperv
dev/hyperv/vmbus/hv_vmbus_drv_freebsd.c optional hyperv
+dev/hyperv/vmbus/i386/hv_vector.S optional hyperv
dev/ichwd/ichwd.c optional ichwd
dev/if_ndis/if_ndis.c optional ndis
dev/if_ndis/if_ndis_pccard.c optional ndis pccard
Modified: stable/10/sys/dev/hyperv/vmbus/hv_vmbus_drv_freebsd.c
==============================================================================
--- stable/10/sys/dev/hyperv/vmbus/hv_vmbus_drv_freebsd.c Tue Jun 21 02:36:03 2016 (r302040)
+++ stable/10/sys/dev/hyperv/vmbus/hv_vmbus_drv_freebsd.c Tue Jun 21 04:51:55 2016 (r302041)
@@ -370,7 +370,6 @@ vmbus_probe(device_t dev) {
return (BUS_PROBE_DEFAULT);
}
-#ifdef HYPERV
extern inthand_t IDTVEC(rsvd), IDTVEC(hv_vmbus_callback);
/**
@@ -430,21 +429,6 @@ vmbus_vector_free(int vector)
setidt(vector, IDTVEC(rsvd), SDT_SYSIGT, SEL_KPL, 0);
}
-#else /* HYPERV */
-
-static int
-vmbus_vector_alloc(void)
-{
- return(0);
-}
-
-static void
-vmbus_vector_free(int vector)
-{
-}
-
-#endif /* HYPERV */
-
static void
vmbus_cpuset_setthread_task(void *xmask, int pending __unused)
{
Modified: stable/10/sys/i386/conf/GENERIC
==============================================================================
--- stable/10/sys/i386/conf/GENERIC Tue Jun 21 02:36:03 2016 (r302040)
+++ stable/10/sys/i386/conf/GENERIC Tue Jun 21 04:51:55 2016 (r302041)
@@ -362,7 +362,6 @@ device virtio_scsi # VirtIO SCSI devic
device virtio_balloon # VirtIO Memory Balloon device
# HyperV drivers and enchancement support
-# NOTE: HYPERV depends on hyperv. They must be added or removed together.
options HYPERV # Hyper-V kernel infrastructure
device hyperv # HyperV drivers
Modified: stable/10/sys/i386/i386/apic_vector.s
==============================================================================
--- stable/10/sys/i386/i386/apic_vector.s Tue Jun 21 02:36:03 2016 (r302040)
+++ stable/10/sys/i386/i386/apic_vector.s Tue Jun 21 04:51:55 2016 (r302041)
@@ -157,25 +157,6 @@ IDTVEC(xen_intr_upcall)
jmp doreti
#endif
-#ifdef HYPERV
-/*
- * This is the Hyper-V vmbus channel direct callback interrupt.
- * Only used when it is running on Hyper-V.
- */
- .text
- SUPERALIGN_TEXT
-IDTVEC(hv_vmbus_callback)
- PUSH_FRAME
- SET_KERNEL_SREGS
- cld
- FAKE_MCOUNT(TF_EIP(%esp))
- pushl %esp
- call hv_vector_handler
- add $4, %esp
- MEXITCOUNT
- jmp doreti
-#endif
-
#ifdef SMP
/*
* Global address space TLB shootdown.
Modified: stable/10/sys/i386/i386/exception.s
==============================================================================
--- stable/10/sys/i386/i386/exception.s Tue Jun 21 02:36:03 2016 (r302040)
+++ stable/10/sys/i386/i386/exception.s Tue Jun 21 04:51:55 2016 (r302041)
@@ -344,6 +344,7 @@ MCOUNT_LABEL(eintr)
.text
SUPERALIGN_TEXT
.type doreti, at function
+ .globl doreti
doreti:
FAKE_MCOUNT($bintr) /* init "from" bintr -> doreti */
doreti_next:
Modified: stable/10/sys/modules/hyperv/vmbus/Makefile
==============================================================================
--- stable/10/sys/modules/hyperv/vmbus/Makefile Tue Jun 21 02:36:03 2016 (r302040)
+++ stable/10/sys/modules/hyperv/vmbus/Makefile Tue Jun 21 04:51:55 2016 (r302041)
@@ -1,7 +1,7 @@
# $FreeBSD$
.PATH: ${.CURDIR}/../../../dev/hyperv/vmbus \
- ${.CURDIR}/../../../dev/hyperv/utilities
+ ${.CURDIR}/../../../dev/hyperv/vmbus/${MACHINE_CPUARCH}
KMOD= hv_vmbus
SRCS= hv_channel.c \
@@ -14,8 +14,17 @@ SRCS= hv_channel.c \
hv_vmbus_priv.h
SRCS+= acpi_if.h bus_if.h device_if.h opt_acpi.h
+# XXX: for assym.s
+SRCS+= opt_kstack_pages.h opt_nfs.h opt_apic.h opt_hwpmc_hooks.h opt_compat.h
+
+SRCS+= assym.s \
+ hv_vector.S
+
+hv_vector.o:
+ ${CC} -c -x assembler-with-cpp -DLOCORE ${CFLAGS} \
+ ${.IMPSRC} -o ${.TARGET}
+
CFLAGS+= -I${.CURDIR}/../../../dev/hyperv/include \
- -I${.CURDIR}/../../../dev/hyperv/vmbus \
- -I${.CURDIR}/../../../dev/hyperv/utilities
+ -I${.CURDIR}/../../../dev/hyperv/vmbus
.include <bsd.kmod.mk>
More information about the svn-src-stable-10
mailing list