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
Mon Jun 27 01:17:30 UTC 2016
Committed, thank you very much! And sorry for the breakage.
On Mon, Jun 27, 2016 at 5:08 AM, Oliver Pinter
<oliver.pinter at hardenedbsd.org> wrote:
> And the possible fix:
>
> diff --git a/sys/dev/hyperv/vmbus/vmbus.c b/sys/dev/hyperv/vmbus/vmbus.c
> index 0430952..4ad96d7 100644
> --- a/sys/dev/hyperv/vmbus/vmbus.c
> +++ b/sys/dev/hyperv/vmbus/vmbus.c
> @@ -404,7 +404,7 @@ vmbus_vector_alloc(void)
>
> /*
> * Search backwards form the highest IDT vector available for use
> - * as vmbus channel callback vector. We install 'hv_vmbus_callback'
> + * as vmbus channel callback vector. We install 'vmbus_isr'
> * handler at that vector and use it to interrupt vcpus.
> */
> vector = APIC_SPURIOUS_INT;
> @@ -443,7 +443,7 @@ vmbus_vector_free(int vector)
>
> ip = &idt[vector];
> func = ((long)ip->gd_hioffset << 16 | ip->gd_looffset);
> - KASSERT(func == (uintptr_t)&IDTVEC(hv_vmbus_callback),
> + KASSERT(func == (uintptr_t)&IDTVEC(vmbus_isr),
> ("invalid vector %d", vector));
>
> setidt(vector, IDTVEC(rsvd), SDT_SYSIGT, SEL_KPL, 0);
>
> On 6/26/16, Oliver Pinter <oliver.pinter at hardenedbsd.org> wrote:
>> Hi all!
>>
>> Some from these hyper-v commits breaks the build with INVARIANTS
>> enabled kernel on 10-STABLE:
>>
>> ~~~
>> /vmbus.c:446:30: error: use of undeclared identifier 'Xhv_vmbus_callback'
>> 14:13:13 KASSERT(func == (uintptr_t)&IDTVEC(hv_vmbus_callback),
>> ~~~
>>
>> For more details please see this jenkins log:
>> http://jenkins.hardenedbsd.org:8180/jenkins/job/HardenedBSD-10-STABLE-amd64/462/console
>>
>> Btw, does anybody build an INVARIANTS enabled kernel in FreeBSD's
>> jenkins cluster with 10-STABLE? There are some other issues with
>> INVARIANTS, for example ZFS + GELI + 10-STABLE :
>> https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=209580
>>
>> On 6/21/16, Sepherosa Ziehau <sephe at freebsd.org> wrote:
>>> 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>
>>> _______________________________________________
>>> svn-src-stable-10 at freebsd.org mailing list
>>> https://lists.freebsd.org/mailman/listinfo/svn-src-stable-10
>>> To unsubscribe, send any mail to
>>> "svn-src-stable-10-unsubscribe at freebsd.org"
>>>
>>
--
Tomorrow Will Never Die
More information about the svn-src-all
mailing list