PERFORCE change 1190660 for review
John Baldwin
jhb at FreeBSD.org
Wed Feb 5 19:50:01 UTC 2014
http://p4web.freebsd.org/@@1190660?ac=10
Change 1190660 by jhb at jhb_ralph on 2014/02/05 19:49:53
IFC @1190659
Affected files ...
.. //depot/projects/pci/sys/amd64/amd64/db_disasm.c#4 integrate
.. //depot/projects/pci/sys/amd64/amd64/machdep.c#13 integrate
.. //depot/projects/pci/sys/amd64/amd64/mp_watchdog.c#3 integrate
.. //depot/projects/pci/sys/amd64/amd64/pmap.c#14 integrate
.. //depot/projects/pci/sys/amd64/include/apicvar.h#5 delete
.. //depot/projects/pci/sys/amd64/include/smp.h#6 integrate
.. //depot/projects/pci/sys/amd64/include/vmm.h#9 integrate
.. //depot/projects/pci/sys/amd64/include/vmm_dev.h#6 integrate
.. //depot/projects/pci/sys/amd64/include/vmm_instruction_emul.h#4 integrate
.. //depot/projects/pci/sys/amd64/vmm/intel/vmcs.h#8 integrate
.. //depot/projects/pci/sys/amd64/vmm/intel/vmx.c#11 integrate
.. //depot/projects/pci/sys/amd64/vmm/intel/vmx.h#7 integrate
.. //depot/projects/pci/sys/amd64/vmm/intel/vmx_genassym.c#7 integrate
.. //depot/projects/pci/sys/amd64/vmm/intel/vmx_support.S#5 integrate
.. //depot/projects/pci/sys/amd64/vmm/io/vlapic.c#7 integrate
.. //depot/projects/pci/sys/amd64/vmm/io/vlapic_priv.h#3 integrate
.. //depot/projects/pci/sys/amd64/vmm/vmm.c#10 integrate
.. //depot/projects/pci/sys/amd64/vmm/vmm_dev.c#7 integrate
.. //depot/projects/pci/sys/amd64/vmm/vmm_instruction_emul.c#7 integrate
.. //depot/projects/pci/sys/amd64/vmm/vmm_ipi.c#3 integrate
.. //depot/projects/pci/sys/amd64/vmm/vmm_stat.c#4 integrate
.. //depot/projects/pci/sys/amd64/vmm/vmm_stat.h#4 integrate
.. //depot/projects/pci/sys/arm/allwinner/a10_clk.c#3 integrate
.. //depot/projects/pci/sys/arm/allwinner/a10_ehci.c#2 integrate
.. //depot/projects/pci/sys/arm/allwinner/a10_gpio.c#3 integrate
.. //depot/projects/pci/sys/arm/allwinner/a10_wdog.c#3 integrate
.. //depot/projects/pci/sys/arm/allwinner/a20/a20_cpu_cfg.c#3 integrate
.. //depot/projects/pci/sys/arm/allwinner/a20/std.a20#2 integrate
.. //depot/projects/pci/sys/arm/allwinner/aintc.c#3 integrate
.. //depot/projects/pci/sys/arm/allwinner/std.a10#2 integrate
.. //depot/projects/pci/sys/arm/arm/bcopyinout.S#4 integrate
.. //depot/projects/pci/sys/arm/arm/bcopyinout_xscale.S#4 integrate
.. //depot/projects/pci/sys/arm/arm/busdma_machdep-v6.c#7 integrate
.. //depot/projects/pci/sys/arm/arm/copystr.S#4 integrate
.. //depot/projects/pci/sys/arm/arm/cpufunc_asm_arm8.S#4 integrate
.. //depot/projects/pci/sys/arm/arm/cpufunc_asm_sa1.S#4 integrate
.. //depot/projects/pci/sys/arm/arm/cpufunc_asm_sa11x0.S#4 integrate
.. //depot/projects/pci/sys/arm/arm/cpufunc_asm_xscale.S#4 integrate
.. //depot/projects/pci/sys/arm/arm/cpufunc_asm_xscale_c3.S#4 integrate
.. //depot/projects/pci/sys/arm/arm/db_trace.c#6 integrate
.. //depot/projects/pci/sys/arm/arm/exception.S#5 integrate
.. //depot/projects/pci/sys/arm/arm/fiq_subr.S#4 integrate
.. //depot/projects/pci/sys/arm/arm/fusu.S#5 integrate
.. //depot/projects/pci/sys/arm/arm/genassym.c#5 integrate
.. //depot/projects/pci/sys/arm/arm/generic_timer.c#3 integrate
.. //depot/projects/pci/sys/arm/arm/gic.c#7 integrate
.. //depot/projects/pci/sys/arm/arm/locore.S#7 integrate
.. //depot/projects/pci/sys/arm/arm/machdep.c#10 integrate
.. //depot/projects/pci/sys/arm/arm/mp_machdep.c#5 integrate
.. //depot/projects/pci/sys/arm/arm/mpcore_timer.c#5 integrate
.. //depot/projects/pci/sys/arm/arm/nexus.c#7 integrate
.. //depot/projects/pci/sys/arm/arm/pl190.c#3 integrate
.. //depot/projects/pci/sys/arm/arm/pl310.c#4 integrate
.. //depot/projects/pci/sys/arm/arm/setcpsr.S#4 integrate
.. //depot/projects/pci/sys/arm/arm/setstack.s#3 integrate
.. //depot/projects/pci/sys/arm/arm/swtch.S#7 integrate
.. //depot/projects/pci/sys/arm/arm/vfp.c#6 integrate
.. //depot/projects/pci/sys/arm/at91/at91.c#7 integrate
.. //depot/projects/pci/sys/arm/at91/at91_machdep.c#6 integrate
.. //depot/projects/pci/sys/arm/at91/at91rm92reg.h#3 integrate
.. //depot/projects/pci/sys/arm/at91/at91sam9260reg.h#3 integrate
.. //depot/projects/pci/sys/arm/at91/at91sam9g20reg.h#3 integrate
.. //depot/projects/pci/sys/arm/at91/at91sam9g45reg.h#2 integrate
.. //depot/projects/pci/sys/arm/at91/board_sam9260ek.c#3 integrate
.. //depot/projects/pci/sys/arm/at91/std.bwct#3 integrate
.. //depot/projects/pci/sys/arm/at91/std.eb9200#2 integrate
.. //depot/projects/pci/sys/arm/at91/std.ethernut5#2 integrate
.. //depot/projects/pci/sys/arm/at91/std.hl200#3 integrate
.. //depot/projects/pci/sys/arm/at91/std.hl201#3 integrate
.. //depot/projects/pci/sys/arm/at91/std.kb920x#3 integrate
.. //depot/projects/pci/sys/arm/at91/std.qila9g20#3 integrate
.. //depot/projects/pci/sys/arm/at91/std.sam9260ek#2 integrate
.. //depot/projects/pci/sys/arm/at91/std.sam9g20ek#3 integrate
.. //depot/projects/pci/sys/arm/at91/std.sam9x25ek#2 integrate
.. //depot/projects/pci/sys/arm/at91/std.sn9g45#2 integrate
.. //depot/projects/pci/sys/arm/at91/std.tsc4370#3 integrate
.. //depot/projects/pci/sys/arm/at91/uart_bus_at91usart.c#3 integrate
.. //depot/projects/pci/sys/arm/at91/uart_cpu_at91usart.c#2 integrate
.. //depot/projects/pci/sys/arm/at91/uart_dev_at91usart.c#7 integrate
.. //depot/projects/pci/sys/arm/broadcom/bcm2835/bcm2835_bsc.c#2 integrate
.. //depot/projects/pci/sys/arm/broadcom/bcm2835/bcm2835_dma.c#3 integrate
.. //depot/projects/pci/sys/arm/broadcom/bcm2835/bcm2835_fb.c#4 integrate
.. //depot/projects/pci/sys/arm/broadcom/bcm2835/bcm2835_fbd.c#3 integrate
.. //depot/projects/pci/sys/arm/broadcom/bcm2835/bcm2835_gpio.c#5 integrate
.. //depot/projects/pci/sys/arm/broadcom/bcm2835/bcm2835_intr.c#2 integrate
.. //depot/projects/pci/sys/arm/broadcom/bcm2835/bcm2835_mbox.c#4 integrate
.. //depot/projects/pci/sys/arm/broadcom/bcm2835/bcm2835_sdhci.c#5 integrate
.. //depot/projects/pci/sys/arm/broadcom/bcm2835/bcm2835_spi.c#2 integrate
.. //depot/projects/pci/sys/arm/broadcom/bcm2835/bcm2835_systimer.c#5 integrate
.. //depot/projects/pci/sys/arm/broadcom/bcm2835/bcm2835_wdog.c#3 integrate
.. //depot/projects/pci/sys/arm/broadcom/bcm2835/std.rpi#2 integrate
.. //depot/projects/pci/sys/arm/conf/ATMEL#6 integrate
.. //depot/projects/pci/sys/arm/conf/BWCT#6 integrate
.. //depot/projects/pci/sys/arm/conf/CNS11XXNAS#6 integrate
.. //depot/projects/pci/sys/arm/conf/COLIBRI-VF50#1 branch
.. //depot/projects/pci/sys/arm/conf/COSMIC#3 integrate
.. //depot/projects/pci/sys/arm/conf/CRB#7 integrate
.. //depot/projects/pci/sys/arm/conf/EP80219#7 integrate
.. //depot/projects/pci/sys/arm/conf/GUMSTIX#5 integrate
.. //depot/projects/pci/sys/arm/conf/HL200#6 integrate
.. //depot/projects/pci/sys/arm/conf/HL201#7 integrate
.. //depot/projects/pci/sys/arm/conf/IQ31244#7 integrate
.. //depot/projects/pci/sys/arm/conf/NSLU#6 integrate
.. //depot/projects/pci/sys/arm/conf/QILA9G20#6 integrate
.. //depot/projects/pci/sys/arm/conf/SAM9G20EK#6 integrate
.. //depot/projects/pci/sys/arm/conf/SAM9X25EK#4 integrate
.. //depot/projects/pci/sys/arm/conf/SN9G45#4 integrate
.. //depot/projects/pci/sys/arm/conf/VERSATILEPB#4 integrate
.. //depot/projects/pci/sys/arm/conf/VYBRID.common#1 branch
.. //depot/projects/pci/sys/arm/econa/files.econa#3 integrate
.. //depot/projects/pci/sys/arm/econa/std.econa#3 integrate
.. //depot/projects/pci/sys/arm/freescale/imx/i2c.c#2 integrate
.. //depot/projects/pci/sys/arm/freescale/imx/imx51_ccm.c#5 integrate
.. //depot/projects/pci/sys/arm/freescale/imx/imx51_gpio.c#3 integrate
.. //depot/projects/pci/sys/arm/freescale/imx/imx51_iomux.c#3 integrate
.. //depot/projects/pci/sys/arm/freescale/imx/imx51_ipuv3.c#4 integrate
.. //depot/projects/pci/sys/arm/freescale/imx/imx51_ipuv3_fbd.c#3 integrate
.. //depot/projects/pci/sys/arm/freescale/imx/imx6_anatop.c#2 integrate
.. //depot/projects/pci/sys/arm/freescale/imx/imx6_ccm.c#2 integrate
.. //depot/projects/pci/sys/arm/freescale/imx/imx6_usbphy.c#2 integrate
.. //depot/projects/pci/sys/arm/freescale/imx/imx_gpt.c#5 integrate
.. //depot/projects/pci/sys/arm/freescale/imx/imx_nop_usbphy.c#2 integrate
.. //depot/projects/pci/sys/arm/freescale/imx/imx_sdhci.c#2 integrate
.. //depot/projects/pci/sys/arm/freescale/imx/imx_wdog.c#3 integrate
.. //depot/projects/pci/sys/arm/freescale/imx/std.imx51#2 integrate
.. //depot/projects/pci/sys/arm/freescale/imx/std.imx53#2 integrate
.. //depot/projects/pci/sys/arm/freescale/imx/std.imx6#2 integrate
.. //depot/projects/pci/sys/arm/freescale/imx/tzic.c#3 integrate
.. //depot/projects/pci/sys/arm/freescale/vybrid/files.vybrid#2 integrate
.. //depot/projects/pci/sys/arm/freescale/vybrid/std.vybrid#2 integrate
.. //depot/projects/pci/sys/arm/freescale/vybrid/vf_anadig.c#2 integrate
.. //depot/projects/pci/sys/arm/freescale/vybrid/vf_ccm.c#2 integrate
.. //depot/projects/pci/sys/arm/freescale/vybrid/vf_common.h#2 integrate
.. //depot/projects/pci/sys/arm/freescale/vybrid/vf_dcu4.c#1 branch
.. //depot/projects/pci/sys/arm/freescale/vybrid/vf_ehci.c#2 integrate
.. //depot/projects/pci/sys/arm/freescale/vybrid/vf_gpio.c#2 integrate
.. //depot/projects/pci/sys/arm/freescale/vybrid/vf_iomuxc.c#2 integrate
.. //depot/projects/pci/sys/arm/freescale/vybrid/vf_mscm.c#2 integrate
.. //depot/projects/pci/sys/arm/freescale/vybrid/vf_nfc.c#2 integrate
.. //depot/projects/pci/sys/arm/freescale/vybrid/vf_src.c#2 integrate
.. //depot/projects/pci/sys/arm/freescale/vybrid/vf_tcon.c#1 branch
.. //depot/projects/pci/sys/arm/include/asmacros.h#6 integrate
.. //depot/projects/pci/sys/arm/include/atomic.h#5 integrate
.. //depot/projects/pci/sys/arm/include/pcpu.h#6 integrate
.. //depot/projects/pci/sys/arm/lpc/if_lpe.c#3 integrate
.. //depot/projects/pci/sys/arm/lpc/lpc_dmac.c#2 integrate
.. //depot/projects/pci/sys/arm/lpc/lpc_fb.c#3 integrate
.. //depot/projects/pci/sys/arm/lpc/lpc_gpio.c#4 integrate
.. //depot/projects/pci/sys/arm/lpc/lpc_intc.c#2 integrate
.. //depot/projects/pci/sys/arm/lpc/lpc_mmc.c#4 integrate
.. //depot/projects/pci/sys/arm/lpc/lpc_ohci.c#2 integrate
.. //depot/projects/pci/sys/arm/lpc/lpc_pwr.c#2 integrate
.. //depot/projects/pci/sys/arm/lpc/lpc_rtc.c#2 integrate
.. //depot/projects/pci/sys/arm/lpc/lpc_spi.c#3 integrate
.. //depot/projects/pci/sys/arm/lpc/lpc_timer.c#4 integrate
.. //depot/projects/pci/sys/arm/lpc/std.lpc#2 integrate
.. //depot/projects/pci/sys/arm/mv/armadaxp/std.armadaxp#4 integrate
.. //depot/projects/pci/sys/arm/mv/discovery/std.db78xxx#3 integrate
.. //depot/projects/pci/sys/arm/mv/gpio.c#6 integrate
.. //depot/projects/pci/sys/arm/mv/ic.c#3 integrate
.. //depot/projects/pci/sys/arm/mv/kirkwood/std.kirkwood#3 integrate
.. //depot/projects/pci/sys/arm/mv/mpic.c#2 integrate
.. //depot/projects/pci/sys/arm/mv/mv_localbus.c#4 integrate
.. //depot/projects/pci/sys/arm/mv/mv_pci.c#7 integrate
.. //depot/projects/pci/sys/arm/mv/mv_sata.c#4 integrate
.. //depot/projects/pci/sys/arm/mv/mv_ts.c#2 integrate
.. //depot/projects/pci/sys/arm/mv/orion/std.db88f5xxx#3 integrate
.. //depot/projects/pci/sys/arm/mv/orion/std.ts7800#3 integrate
.. //depot/projects/pci/sys/arm/mv/rtc.c#3 integrate
.. //depot/projects/pci/sys/arm/mv/timer.c#5 integrate
.. //depot/projects/pci/sys/arm/mv/twsi.c#3 integrate
.. //depot/projects/pci/sys/arm/rockchip/rk30xx_gpio.c#2 integrate
.. //depot/projects/pci/sys/arm/rockchip/rk30xx_grf.c#2 integrate
.. //depot/projects/pci/sys/arm/rockchip/rk30xx_pmu.c#2 integrate
.. //depot/projects/pci/sys/arm/rockchip/rk30xx_wdog.c#2 integrate
.. //depot/projects/pci/sys/arm/rockchip/std.rk30xx#2 integrate
.. //depot/projects/pci/sys/arm/s3c2xx0/std.ln2410sbc#3 integrate
.. //depot/projects/pci/sys/arm/samsung/exynos/arch_timer.c#3 integrate
.. //depot/projects/pci/sys/arm/samsung/exynos/ehci_exynos5.c#3 integrate
.. //depot/projects/pci/sys/arm/samsung/exynos/std.exynos5#2 integrate
.. //depot/projects/pci/sys/arm/tegra/std.tegra2#2 integrate
.. //depot/projects/pci/sys/arm/ti/aintc.c#3 integrate
.. //depot/projects/pci/sys/arm/ti/am335x/am335x_dmtimer.c#6 integrate
.. //depot/projects/pci/sys/arm/ti/am335x/am335x_lcd.c#2 integrate
.. //depot/projects/pci/sys/arm/ti/am335x/am335x_prcm.c#5 integrate
.. //depot/projects/pci/sys/arm/ti/am335x/am335x_pwm.c#3 integrate
.. //depot/projects/pci/sys/arm/ti/am335x/am335x_usbss.c#2 integrate
.. //depot/projects/pci/sys/arm/ti/am335x/files.am335x#5 integrate
.. //depot/projects/pci/sys/arm/ti/am335x/std.am335x#2 integrate
.. //depot/projects/pci/sys/arm/ti/cpsw/if_cpsw.c#4 integrate
.. //depot/projects/pci/sys/arm/ti/omap4/omap4_prcm_clks.c#5 integrate
.. //depot/projects/pci/sys/arm/ti/omap4/std.omap4#2 integrate
.. //depot/projects/pci/sys/arm/ti/ti_edma3.c#2 integrate
.. //depot/projects/pci/sys/arm/ti/ti_gpio.c#4 integrate
.. //depot/projects/pci/sys/arm/ti/ti_i2c.c#3 integrate
.. //depot/projects/pci/sys/arm/ti/ti_mbox.c#2 integrate
.. //depot/projects/pci/sys/arm/ti/ti_mmchs.c#5 integrate
.. //depot/projects/pci/sys/arm/ti/ti_pruss.c#2 integrate
.. //depot/projects/pci/sys/arm/ti/ti_scm.c#4 integrate
.. //depot/projects/pci/sys/arm/ti/ti_sdhci.c#3 integrate
.. //depot/projects/pci/sys/arm/ti/ti_sdma.c#2 integrate
.. //depot/projects/pci/sys/arm/ti/usb/omap_ehci.c#2 integrate
.. //depot/projects/pci/sys/arm/versatile/if_smc_fdt.c#3 integrate
.. //depot/projects/pci/sys/arm/versatile/pl050.c#3 integrate
.. //depot/projects/pci/sys/arm/versatile/sp804.c#5 integrate
.. //depot/projects/pci/sys/arm/versatile/versatile_clcd.c#3 integrate
.. //depot/projects/pci/sys/arm/versatile/versatile_pci.c#5 integrate
.. //depot/projects/pci/sys/arm/versatile/versatile_sic.c#3 integrate
.. //depot/projects/pci/sys/arm/xilinx/std.zynq7#2 integrate
.. //depot/projects/pci/sys/arm/xilinx/zy7_devcfg.c#2 integrate
.. //depot/projects/pci/sys/arm/xilinx/zy7_ehci.c#2 integrate
.. //depot/projects/pci/sys/arm/xilinx/zy7_gpio.c#2 integrate
.. //depot/projects/pci/sys/arm/xilinx/zy7_slcr.c#2 integrate
.. //depot/projects/pci/sys/arm/xscale/ixp425/std.avila#3 integrate
.. //depot/projects/pci/sys/boot/common/load_elf32.c#3 integrate
.. //depot/projects/pci/sys/boot/common/load_elf32_obj.c#3 integrate
.. //depot/projects/pci/sys/boot/fdt/dts/bindings-gpio.txt#3 integrate
.. //depot/projects/pci/sys/boot/fdt/dts/vybrid-colibri-vf50.dts#1 branch
.. //depot/projects/pci/sys/boot/fdt/dts/vybrid-cosmic.dts#2 integrate
.. //depot/projects/pci/sys/boot/fdt/dts/vybrid.dtsi#2 integrate
.. //depot/projects/pci/sys/boot/i386/cdboot/cdboot.S#2 integrate
.. //depot/projects/pci/sys/boot/i386/gptboot/gptboot.8#2 integrate
.. //depot/projects/pci/sys/boot/i386/pxeldr/pxeldr.S#3 integrate
.. //depot/projects/pci/sys/boot/userboot/userboot/Makefile#4 integrate
.. //depot/projects/pci/sys/boot/userboot/userboot/biossmap.c#1 branch
.. //depot/projects/pci/sys/boot/userboot/userboot/bootinfo32.c#3 integrate
.. //depot/projects/pci/sys/boot/userboot/userboot/bootinfo64.c#3 integrate
.. //depot/projects/pci/sys/boot/userboot/userboot/elf32_freebsd.c#4 integrate
.. //depot/projects/pci/sys/boot/userboot/userboot/libuserboot.h#3 integrate
.. //depot/projects/pci/sys/cam/cam_xpt.c#16 integrate
.. //depot/projects/pci/sys/cam/scsi/scsi_da.c#13 integrate
.. //depot/projects/pci/sys/compat/freebsd32/freebsd32_misc.c#15 integrate
.. //depot/projects/pci/sys/conf/Makefile.amd64#7 integrate
.. //depot/projects/pci/sys/conf/Makefile.arm#9 integrate
.. //depot/projects/pci/sys/conf/Makefile.i386#5 integrate
.. //depot/projects/pci/sys/conf/Makefile.ia64#3 integrate
.. //depot/projects/pci/sys/conf/Makefile.mips#5 integrate
.. //depot/projects/pci/sys/conf/Makefile.pc98#3 integrate
.. //depot/projects/pci/sys/conf/Makefile.powerpc#4 integrate
.. //depot/projects/pci/sys/conf/Makefile.sparc64#3 integrate
.. //depot/projects/pci/sys/conf/NOTES#17 integrate
.. //depot/projects/pci/sys/conf/files#20 integrate
.. //depot/projects/pci/sys/conf/files.powerpc#13 integrate
.. //depot/projects/pci/sys/conf/kern.mk#11 integrate
.. //depot/projects/pci/sys/conf/kern.pre.mk#12 integrate
.. //depot/projects/pci/sys/conf/ldscript.arm#4 integrate
.. //depot/projects/pci/sys/conf/newvers.sh#11 integrate
.. //depot/projects/pci/sys/conf/options#19 integrate
.. //depot/projects/pci/sys/conf/options.arm#8 integrate
.. //depot/projects/pci/sys/dev/acpica/acpi.c#13 integrate
.. //depot/projects/pci/sys/dev/adb/adb_kbd.c#6 integrate
.. //depot/projects/pci/sys/dev/adb/adb_mouse.c#4 integrate
.. //depot/projects/pci/sys/dev/altera/atse/if_atse_fdt.c#3 integrate
.. //depot/projects/pci/sys/dev/altera/avgen/altera_avgen_fdt.c#2 integrate
.. //depot/projects/pci/sys/dev/altera/jtag_uart/altera_jtag_uart_fdt.c#2 integrate
.. //depot/projects/pci/sys/dev/altera/sdcard/altera_sdcard_fdt.c#2 integrate
.. //depot/projects/pci/sys/dev/ata/chipsets/ata-fsl.c#2 integrate
.. //depot/projects/pci/sys/dev/cesa/cesa.c#5 integrate
.. //depot/projects/pci/sys/dev/cfi/cfi_bus_fdt.c#4 integrate
.. //depot/projects/pci/sys/dev/drm/drmP.h#4 integrate
.. //depot/projects/pci/sys/dev/drm2/radeon/r600.c#2 integrate
.. //depot/projects/pci/sys/dev/drm2/radeon/rv770.c#2 integrate
.. //depot/projects/pci/sys/dev/e1000/e1000_defines.h#7 integrate
.. //depot/projects/pci/sys/dev/e1000/if_igb.c#17 integrate
.. //depot/projects/pci/sys/dev/fdt/fdt_common.c#8 integrate
.. //depot/projects/pci/sys/dev/fdt/fdt_ic_if.m#2 delete
.. //depot/projects/pci/sys/dev/fdt/fdtbus.c#10 delete
.. //depot/projects/pci/sys/dev/fdt/simplebus.c#7 integrate
.. //depot/projects/pci/sys/dev/ffec/if_ffec.c#3 integrate
.. //depot/projects/pci/sys/dev/hwpmc/hwpmc_core.c#10 integrate
.. //depot/projects/pci/sys/dev/hwpmc/hwpmc_mpc7xxx.c#2 integrate
.. //depot/projects/pci/sys/dev/hwpmc/hwpmc_piv.c#3 integrate
.. //depot/projects/pci/sys/dev/hwpmc/hwpmc_powerpc.c#6 integrate
.. //depot/projects/pci/sys/dev/hwpmc/hwpmc_powerpc.h#2 integrate
.. //depot/projects/pci/sys/dev/hwpmc/hwpmc_ppc970.c#1 branch
.. //depot/projects/pci/sys/dev/hwpmc/hwpmc_ppro.c#3 integrate
.. //depot/projects/pci/sys/dev/hwpmc/hwpmc_uncore.c#6 integrate
.. //depot/projects/pci/sys/dev/hwpmc/hwpmc_x86.c#4 integrate
.. //depot/projects/pci/sys/dev/hwpmc/pmc_events.h#8 integrate
.. //depot/projects/pci/sys/dev/iicbus/adt746x.c#1 branch
.. //depot/projects/pci/sys/dev/isp/isp_library.c#4 integrate
.. //depot/projects/pci/sys/dev/mfi/mfi_pci.c#6 integrate
.. //depot/projects/pci/sys/dev/mfi/mfivar.h#5 integrate
.. //depot/projects/pci/sys/dev/mge/if_mge.c#6 integrate
.. //depot/projects/pci/sys/dev/mmc/mmc.c#8 integrate
.. //depot/projects/pci/sys/dev/mvs/mvs_soc.c#7 integrate
.. //depot/projects/pci/sys/dev/ofw/ofw_bus.h#4 integrate
.. //depot/projects/pci/sys/dev/ofw/ofw_bus_if.m#4 integrate
.. //depot/projects/pci/sys/dev/ofw/ofw_bus_subr.c#6 integrate
.. //depot/projects/pci/sys/dev/ofw/ofw_bus_subr.h#5 integrate
.. //depot/projects/pci/sys/dev/ofw/ofw_nexus.c#2 delete
.. //depot/projects/pci/sys/dev/ofw/ofw_nexus.h#2 delete
.. //depot/projects/pci/sys/dev/ofw/ofwbus.c#1 branch
.. //depot/projects/pci/sys/dev/pccbb/pccbb.c#8 integrate
.. //depot/projects/pci/sys/dev/pci/pci.c#55 integrate
.. //depot/projects/pci/sys/dev/pci/pci_subr.c#11 integrate
.. //depot/projects/pci/sys/dev/pci/vga_pci.c#7 integrate
.. //depot/projects/pci/sys/dev/powermac_nvram/powermac_nvram.c#3 integrate
.. //depot/projects/pci/sys/dev/quicc/quicc_bfe_fdt.c#4 integrate
.. //depot/projects/pci/sys/dev/sdhci/sdhci_fdt.c#2 integrate
.. //depot/projects/pci/sys/dev/sec/sec.c#4 integrate
.. //depot/projects/pci/sys/dev/sound/pci/hda/hdaa_patches.c#5 integrate
.. //depot/projects/pci/sys/dev/sound/pci/hda/hdac.h#7 integrate
.. //depot/projects/pci/sys/dev/terasic/de4led/terasic_de4led_fdt.c#2 integrate
.. //depot/projects/pci/sys/dev/terasic/mtl/terasic_mtl_fdt.c#2 integrate
.. //depot/projects/pci/sys/dev/tsec/if_tsec_fdt.c#6 integrate
.. //depot/projects/pci/sys/dev/uart/uart.h#7 integrate
.. //depot/projects/pci/sys/dev/uart/uart_bus_fdt.c#9 integrate
.. //depot/projects/pci/sys/dev/uart/uart_cpu_fdt.c#5 integrate
.. //depot/projects/pci/sys/dev/usb/controller/dwc_otg_fdt.c#2 integrate
.. //depot/projects/pci/sys/dev/usb/controller/ehci.c#10 integrate
.. //depot/projects/pci/sys/dev/usb/controller/ehci_fsl.c#2 integrate
.. //depot/projects/pci/sys/dev/usb/controller/ehci_imx.c#3 integrate
.. //depot/projects/pci/sys/dev/usb/controller/ehci_mv.c#6 integrate
.. //depot/projects/pci/sys/dev/usb/input/ukbd.c#12 integrate
.. //depot/projects/pci/sys/dev/usb/input/wsp.c#1 branch
.. //depot/projects/pci/sys/dev/usb/quirk/usb_quirk.c#8 integrate
.. //depot/projects/pci/sys/dev/usb/usb_busdma.c#6 integrate
.. //depot/projects/pci/sys/dev/usb/usb_dev.c#7 integrate
.. //depot/projects/pci/sys/dev/usb/usb_freebsd.h#6 integrate
.. //depot/projects/pci/sys/dev/usb/usb_freebsd_loader.h#2 integrate
.. //depot/projects/pci/sys/dev/usb/usb_hub.c#12 integrate
.. //depot/projects/pci/sys/dev/usb/usb_transfer.c#9 integrate
.. //depot/projects/pci/sys/dev/usb/usbdevs#17 integrate
.. //depot/projects/pci/sys/dev/usb/wlan/if_run.c#13 integrate
.. //depot/projects/pci/sys/dev/usb/wlan/if_runvar.h#8 integrate
.. //depot/projects/pci/sys/dev/usb/wlan/if_urtwn.c#5 integrate
.. //depot/projects/pci/sys/dev/virtio/network/if_vtnet.c#7 integrate
.. //depot/projects/pci/sys/dev/virtio/network/if_vtnetvar.h#5 integrate
.. //depot/projects/pci/sys/dev/virtio/scsi/virtio_scsi.c#5 integrate
.. //depot/projects/pci/sys/dev/vt/hw/ofwfb/ofwfb.c#2 integrate
.. //depot/projects/pci/sys/dev/watchdog/watchdog.c#6 integrate
.. //depot/projects/pci/sys/fs/ext2fs/ext2_alloc.c#8 integrate
.. //depot/projects/pci/sys/fs/ext2fs/ext2_bmap.c#6 integrate
.. //depot/projects/pci/sys/fs/ext2fs/ext2_dinode.h#9 integrate
.. //depot/projects/pci/sys/fs/ext2fs/ext2_htree.c#3 integrate
.. //depot/projects/pci/sys/fs/ext2fs/ext2_inode_cnv.c#8 integrate
.. //depot/projects/pci/sys/fs/ext2fs/ext2_lookup.c#10 integrate
.. //depot/projects/pci/sys/fs/ext2fs/ext2_subr.c#6 integrate
.. //depot/projects/pci/sys/fs/ext2fs/ext2_vfsops.c#10 integrate
.. //depot/projects/pci/sys/fs/ext2fs/ext2_vnops.c#10 integrate
.. //depot/projects/pci/sys/fs/ext2fs/inode.h#8 integrate
.. //depot/projects/pci/sys/geom/geom_ctl.c#3 integrate
.. //depot/projects/pci/sys/geom/uncompress/g_uncompress.c#4 integrate
.. //depot/projects/pci/sys/i386/i386/machdep.c#12 integrate
.. //depot/projects/pci/sys/i386/i386/mp_watchdog.c#3 integrate
.. //depot/projects/pci/sys/i386/i386/pmap.c#11 integrate
.. //depot/projects/pci/sys/i386/include/apicvar.h#6 delete
.. //depot/projects/pci/sys/i386/include/smp.h#5 integrate
.. //depot/projects/pci/sys/i386/xen/mptable.c#5 integrate
.. //depot/projects/pci/sys/kern/capabilities.conf#8 integrate
.. //depot/projects/pci/sys/kern/init_sysent.c#10 integrate
.. //depot/projects/pci/sys/kern/kern_jail.c#14 integrate
.. //depot/projects/pci/sys/kern/kern_ktr.c#6 integrate
.. //depot/projects/pci/sys/kern/kern_rwlock.c#8 integrate
.. //depot/projects/pci/sys/kern/sched_ule.c#13 integrate
.. //depot/projects/pci/sys/kern/subr_lock.c#5 integrate
.. //depot/projects/pci/sys/kern/subr_prf.c#6 integrate
.. //depot/projects/pci/sys/kern/subr_sleepqueue.c#6 integrate
.. //depot/projects/pci/sys/kern/subr_smp.c#10 integrate
.. //depot/projects/pci/sys/kern/uipc_shm.c#9 integrate
.. //depot/projects/pci/sys/kern/vfs_syscalls.c#12 integrate
.. //depot/projects/pci/sys/mips/atheros/ar724xreg.h#6 integrate
.. //depot/projects/pci/sys/mips/beri/beri_pic.c#2 integrate
.. //depot/projects/pci/sys/mips/beri/beri_simplebus.c#1 branch
.. //depot/projects/pci/sys/mips/beri/fdt_ic_if.m#1 branch
.. //depot/projects/pci/sys/mips/beri/files.beri#4 integrate
.. //depot/projects/pci/sys/mips/mips/machdep.c#7 integrate
.. //depot/projects/pci/sys/mips/mips/nexus.c#6 integrate
.. //depot/projects/pci/sys/modules/hwpmc/Makefile#4 integrate
.. //depot/projects/pci/sys/modules/usb/Makefile#11 integrate
.. //depot/projects/pci/sys/modules/usb/wsp/Makefile#1 branch
.. //depot/projects/pci/sys/netinet/ip_mroute.c#9 integrate
.. //depot/projects/pci/sys/netinet/tcp_input.c#14 integrate
.. //depot/projects/pci/sys/netinet/tcp_syncache.c#11 integrate
.. //depot/projects/pci/sys/netinet/tcp_usrreq.c#9 integrate
.. //depot/projects/pci/sys/netinet6/nd6.c#15 integrate
.. //depot/projects/pci/sys/netpfil/ipfw/ip_fw2.c#5 integrate
.. //depot/projects/pci/sys/netpfil/ipfw/ip_fw_private.h#4 integrate
.. //depot/projects/pci/sys/netpfil/ipfw/ip_fw_sockopt.c#4 integrate
.. //depot/projects/pci/sys/netpfil/pf/pf.c#6 integrate
.. //depot/projects/pci/sys/netpfil/pf/pf_ioctl.c#4 integrate
.. //depot/projects/pci/sys/opencrypto/cryptosoft.c#3 integrate
.. //depot/projects/pci/sys/pc98/include/apicvar.h#3 delete
.. //depot/projects/pci/sys/pc98/pc98/machdep.c#11 integrate
.. //depot/projects/pci/sys/powerpc/aim/machdep.c#11 integrate
.. //depot/projects/pci/sys/powerpc/aim/mmu_oea.c#11 integrate
.. //depot/projects/pci/sys/powerpc/aim/mp_cpudep.c#8 integrate
.. //depot/projects/pci/sys/powerpc/aim/trap_subr32.S#9 integrate
.. //depot/projects/pci/sys/powerpc/aim/trap_subr64.S#10 integrate
.. //depot/projects/pci/sys/powerpc/booke/pmap.c#11 integrate
.. //depot/projects/pci/sys/powerpc/conf/GENERIC#11 integrate
.. //depot/projects/pci/sys/powerpc/conf/MPC85XX#7 integrate
.. //depot/projects/pci/sys/powerpc/include/cpu.h#5 integrate
.. //depot/projects/pci/sys/powerpc/include/platform.h#4 integrate
.. //depot/projects/pci/sys/powerpc/include/pmc_mdep.h#6 integrate
.. //depot/projects/pci/sys/powerpc/include/spr.h#8 integrate
.. //depot/projects/pci/sys/powerpc/mambo/mambo.c#4 integrate
.. //depot/projects/pci/sys/powerpc/mpc85xx/lbc.c#4 integrate
.. //depot/projects/pci/sys/powerpc/mpc85xx/pci_mpc85xx.c#2 integrate
.. //depot/projects/pci/sys/powerpc/ofw/ofw_cpu.c#6 integrate
.. //depot/projects/pci/sys/powerpc/ofw/ofw_pci.c#5 integrate
.. //depot/projects/pci/sys/powerpc/ofw/ofw_pcib_pci.c#6 integrate
.. //depot/projects/pci/sys/powerpc/ofw/ofw_pcibus.c#7 integrate
.. //depot/projects/pci/sys/powerpc/ofw/openpic_ofw.c#3 integrate
.. //depot/projects/pci/sys/powerpc/powermac/cpcht.c#5 integrate
.. //depot/projects/pci/sys/powerpc/powermac/grackle.c#5 integrate
.. //depot/projects/pci/sys/powerpc/powermac/platform_powermac.c#8 integrate
.. //depot/projects/pci/sys/powerpc/powermac/pmu.c#6 integrate
.. //depot/projects/pci/sys/powerpc/powermac/smu.c#8 integrate
.. //depot/projects/pci/sys/powerpc/powermac/uninorth.c#5 integrate
.. //depot/projects/pci/sys/powerpc/powermac/uninorthpci.c#5 integrate
.. //depot/projects/pci/sys/powerpc/powerpc/exec_machdep.c#6 integrate
.. //depot/projects/pci/sys/powerpc/powerpc/genassym.c#5 integrate
.. //depot/projects/pci/sys/powerpc/powerpc/mp_machdep.c#10 integrate
.. //depot/projects/pci/sys/powerpc/powerpc/nexus.c#3 integrate
.. //depot/projects/pci/sys/powerpc/powerpc/platform.c#7 integrate
.. //depot/projects/pci/sys/powerpc/powerpc/platform_if.m#5 integrate
.. //depot/projects/pci/sys/powerpc/pseries/rtas_dev.c#2 integrate
.. //depot/projects/pci/sys/powerpc/pseries/rtas_pci.c#3 integrate
.. //depot/projects/pci/sys/powerpc/pseries/vdevice.c#3 integrate
.. //depot/projects/pci/sys/powerpc/pseries/xics.c#2 integrate
.. //depot/projects/pci/sys/powerpc/psim/iobus.c#3 integrate
.. //depot/projects/pci/sys/rpc/svc.c#7 integrate
.. //depot/projects/pci/sys/sys/_rwlock.h#3 integrate
.. //depot/projects/pci/sys/sys/elf_common.h#8 integrate
.. //depot/projects/pci/sys/sys/jail.h#9 integrate
.. //depot/projects/pci/sys/sys/lock.h#7 integrate
.. //depot/projects/pci/sys/sys/mutex.h#6 integrate
.. //depot/projects/pci/sys/sys/param.h#18 integrate
.. //depot/projects/pci/sys/sys/pmc.h#6 integrate
.. //depot/projects/pci/sys/sys/refcount.h#3 integrate
.. //depot/projects/pci/sys/sys/rwlock.h#6 integrate
.. //depot/projects/pci/sys/sys/sleepqueue.h#4 integrate
.. //depot/projects/pci/sys/sys/systm.h#15 integrate
.. //depot/projects/pci/sys/sys/turnstile.h#3 integrate
.. //depot/projects/pci/sys/vm/vm_fault.c#13 integrate
.. //depot/projects/pci/sys/vm/vm_page.c#14 integrate
.. //depot/projects/pci/sys/x86/acpica/madt.c#6 integrate
.. //depot/projects/pci/sys/x86/acpica/srat.c#6 integrate
.. //depot/projects/pci/sys/x86/include/apicvar.h#1 branch
.. //depot/projects/pci/sys/x86/include/specialreg.h#5 integrate
.. //depot/projects/pci/sys/x86/isa/atpic.c#4 integrate
.. //depot/projects/pci/sys/x86/isa/elcr.c#3 integrate
.. //depot/projects/pci/sys/x86/x86/intr_machdep.c#4 integrate
.. //depot/projects/pci/sys/x86/x86/io_apic.c#6 integrate
.. //depot/projects/pci/sys/x86/x86/local_apic.c#8 integrate
.. //depot/projects/pci/sys/x86/x86/mca.c#5 integrate
.. //depot/projects/pci/sys/x86/x86/mptable.c#14 integrate
.. //depot/projects/pci/sys/x86/x86/mptable_pci.c#20 integrate
.. //depot/projects/pci/sys/x86/x86/msi.c#3 integrate
.. //depot/projects/pci/sys/x86/xen/xen_intr.c#2 integrate
Differences ...
==== //depot/projects/pci/sys/amd64/amd64/db_disasm.c#4 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: head/sys/amd64/amd64/db_disasm.c 255192 2013-09-03 21:21:47Z jhb $");
+__FBSDID("$FreeBSD: head/sys/amd64/amd64/db_disasm.c 261213 2014-01-27 18:53:18Z jhb $");
/*
* Instruction disassembler.
@@ -1353,6 +1353,16 @@
i_size = NONE;
i_mode = 0;
break;
+ case 0xca:
+ i_name = "clac";
+ i_size = NONE;
+ i_mode = 0;
+ break;
+ case 0xcb:
+ i_name = "stac";
+ i_size = NONE;
+ i_mode = 0;
+ break;
case 0xd0:
i_name = "xgetbv";
i_size = NONE;
==== //depot/projects/pci/sys/amd64/amd64/machdep.c#13 (text+ko) ====
@@ -39,7 +39,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: head/sys/amd64/amd64/machdep.c 259782 2013-12-23 19:48:22Z jhb $");
+__FBSDID("$FreeBSD: head/sys/amd64/amd64/machdep.c 261087 2014-01-23 20:10:22Z jhb $");
#include "opt_atalk.h"
#include "opt_atpic.h"
@@ -140,7 +140,7 @@
#ifdef DEV_ATPIC
#include <x86/isa/icu.h>
#else
-#include <machine/apicvar.h>
+#include <x86/apicvar.h>
#endif
#include <isa/isareg.h>
==== //depot/projects/pci/sys/amd64/amd64/mp_watchdog.c#3 (text+ko) ====
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: head/sys/amd64/amd64/mp_watchdog.c 214631 2010-11-01 18:18:46Z jhb $
+ * $FreeBSD: head/sys/amd64/amd64/mp_watchdog.c 261087 2014-01-23 20:10:22Z jhb $
*/
#include "opt_mp_watchdog.h"
@@ -45,7 +45,7 @@
#include <machine/smp.h>
#include <x86/apicreg.h>
-#include <machine/apicvar.h>
+#include <x86/apicvar.h>
#include <machine/mp_watchdog.h>
/*
==== //depot/projects/pci/sys/amd64/amd64/pmap.c#14 (text+ko) ====
@@ -79,7 +79,7 @@
#define AMD64_NPT_AWARE
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: head/sys/amd64/amd64/pmap.c 260205 2014-01-02 18:50:52Z kib $");
+__FBSDID("$FreeBSD: head/sys/amd64/amd64/pmap.c 261148 2014-01-25 06:58:41Z grehan $");
/*
* Manages physical address maps.
@@ -135,7 +135,7 @@
#include <vm/uma.h>
#include <machine/intr_machdep.h>
-#include <machine/apicvar.h>
+#include <x86/apicvar.h>
#include <machine/cpu.h>
#include <machine/cputypes.h>
#include <machine/md_var.h>
@@ -5575,7 +5575,7 @@
KASSERT(pmap->pm_type == PT_EPT, ("invalid pm_type %d", pmap->pm_type));
/*
- * RWX = 010 or 110 will cause an unconditional EPT misconfiguration
+ * XWR = 010 or 110 will cause an unconditional EPT misconfiguration
* so we don't let the referenced (aka EPT_PG_READ) bit to be cleared
* if the EPT_PG_WRITE bit is set.
*/
@@ -5583,7 +5583,7 @@
return (FALSE);
/*
- * RWX = 100 is allowed only if the PMAP_SUPPORTS_EXEC_ONLY is set.
+ * XWR = 100 is allowed only if the PMAP_SUPPORTS_EXEC_ONLY is set.
*/
if ((pte & EPT_PG_EXECUTE) == 0 ||
((pmap->pm_flags & PMAP_SUPPORTS_EXEC_ONLY) != 0))
==== //depot/projects/pci/sys/amd64/include/smp.h#6 (text+ko) ====
@@ -6,7 +6,7 @@
* this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp
* ----------------------------------------------------------------------------
*
- * $FreeBSD: head/sys/amd64/include/smp.h 255217 2013-09-04 23:31:29Z kib $
+ * $FreeBSD: head/sys/amd64/include/smp.h 261087 2014-01-23 20:10:22Z jhb $
*
*/
@@ -22,7 +22,7 @@
#include <sys/bus.h>
#include <machine/frame.h>
#include <machine/intr_machdep.h>
-#include <machine/apicvar.h>
+#include <x86/apicvar.h>
#include <machine/pcb.h>
/* global symbols in mpboot.S */
==== //depot/projects/pci/sys/amd64/include/vmm.h#9 (text+ko) ====
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: head/sys/amd64/include/vmm.h 260619 2014-01-14 01:55:58Z neel $
+ * $FreeBSD: head/sys/amd64/include/vmm.h 261504 2014-02-05 04:39:03Z jhb $
*/
#ifndef _VMM_H_
@@ -298,6 +298,7 @@
VM_EXITCODE_SPINUP_AP,
VM_EXITCODE_SPINDOWN_CPU,
VM_EXITCODE_RENDEZVOUS,
+ VM_EXITCODE_IOAPIC_EOI,
VM_EXITCODE_MAX
};
@@ -322,6 +323,8 @@
uint64_t gpa;
uint64_t gla;
uint64_t cr3;
+ enum vie_cpu_mode cpu_mode;
+ enum vie_paging_mode paging_mode;
struct vie vie;
} inst_emul;
/*
@@ -354,6 +357,9 @@
struct {
uint64_t rflags;
} hlt;
+ struct {
+ int vector;
+ } ioapic_eoi;
} u;
};
==== //depot/projects/pci/sys/amd64/include/vmm_dev.h#6 (text+ko) ====
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: head/sys/amd64/include/vmm_dev.h 259779 2013-12-23 19:29:07Z jhb $
+ * $FreeBSD: head/sys/amd64/include/vmm_dev.h 261268 2014-01-29 14:56:48Z jhb $
*/
#ifndef _VMM_DEV_H_
@@ -181,7 +181,8 @@
IOCNUM_IOAPIC_DEASSERT_IRQ = 34,
IOCNUM_IOAPIC_PULSE_IRQ = 35,
IOCNUM_LAPIC_MSI = 36,
- IOCNUM_LAPIC_LOCAL_IRQ = 37,
+ IOCNUM_LAPIC_LOCAL_IRQ = 37,
+ IOCNUM_IOAPIC_PINCOUNT = 38,
/* PCI pass-thru */
IOCNUM_BIND_PPTDEV = 40,
@@ -228,6 +229,8 @@
_IOW('v', IOCNUM_IOAPIC_DEASSERT_IRQ, struct vm_ioapic_irq)
#define VM_IOAPIC_PULSE_IRQ \
_IOW('v', IOCNUM_IOAPIC_PULSE_IRQ, struct vm_ioapic_irq)
+#define VM_IOAPIC_PINCOUNT \
+ _IOR('v', IOCNUM_IOAPIC_PINCOUNT, int)
#define VM_SET_CAPABILITY \
_IOW('v', IOCNUM_SET_CAPABILITY, struct vm_capability)
#define VM_GET_CAPABILITY \
==== //depot/projects/pci/sys/amd64/include/vmm_instruction_emul.h#4 (text+ko) ====
@@ -23,12 +23,24 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: head/sys/amd64/include/vmm_instruction_emul.h 256072 2013-10-05 21:22:35Z neel $
+ * $FreeBSD: head/sys/amd64/include/vmm_instruction_emul.h 261504 2014-02-05 04:39:03Z jhb $
*/
#ifndef _VMM_INSTRUCTION_EMUL_H_
#define _VMM_INSTRUCTION_EMUL_H_
+enum vie_cpu_mode {
+ CPU_MODE_COMPATIBILITY, /* IA-32E mode (CS.L = 0) */
+ CPU_MODE_64BIT, /* IA-32E mode (CS.L = 1) */
+};
+
+enum vie_paging_mode {
+ PAGING_MODE_FLAT,
+ PAGING_MODE_32,
+ PAGING_MODE_PAE,
+ PAGING_MODE_64,
+};
+
/*
* The data structures 'vie' and 'vie_op' are meant to be opaque to the
* consumers of instruction decoding. The only reason why their contents
@@ -107,7 +119,7 @@
*/
int vmm_fetch_instruction(struct vm *vm, int cpuid,
uint64_t rip, int inst_length, uint64_t cr3,
- struct vie *vie);
+ enum vie_paging_mode paging_mode, struct vie *vie);
void vie_init(struct vie *vie);
@@ -123,8 +135,8 @@
* in VIE_INVALID_GLA instead.
*/
#define VIE_INVALID_GLA (1UL << 63) /* a non-canonical address */
-int vmm_decode_instruction(struct vm *vm, int cpuid,
- uint64_t gla, struct vie *vie);
+int vmm_decode_instruction(struct vm *vm, int cpuid, uint64_t gla,
+ enum vie_cpu_mode cpu_mode, struct vie *vie);
#endif /* _KERNEL */
#endif /* _VMM_INSTRUCTION_EMUL_H_ */
==== //depot/projects/pci/sys/amd64/vmm/intel/vmcs.h#8 (text+ko) ====
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: head/sys/amd64/vmm/intel/vmcs.h 260836 2014-01-18 02:20:10Z neel $
+ * $FreeBSD: head/sys/amd64/vmm/intel/vmcs.h 261170 2014-01-25 20:58:05Z neel $
*/
#ifndef _VMCS_H_
@@ -136,6 +136,7 @@
#define VMCS_EOI_EXIT1 0x0000201E
#define VMCS_EOI_EXIT2 0x00002020
#define VMCS_EOI_EXIT3 0x00002022
+#define VMCS_EOI_EXIT(vector) (VMCS_EOI_EXIT0 + ((vector) / 64) * 2)
/* 64-bit read-only fields */
#define VMCS_GUEST_PHYSICAL_ADDRESS 0x00002400
@@ -318,6 +319,7 @@
#define EXIT_REASON_MCE 41
#define EXIT_REASON_TPR 43
#define EXIT_REASON_APIC_ACCESS 44
+#define EXIT_REASON_VIRTUALIZED_EOI 45
#define EXIT_REASON_GDTR_IDTR 46
#define EXIT_REASON_LDTR_TR 47
#define EXIT_REASON_EPT_FAULT 48
==== //depot/projects/pci/sys/amd64/vmm/intel/vmx.c#11 (text+ko) ====
@@ -23,11 +23,11 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: head/sys/amd64/vmm/intel/vmx.c 260863 2014-01-18 21:47:12Z neel $
+ * $FreeBSD: head/sys/amd64/vmm/intel/vmx.c 261504 2014-02-05 04:39:03Z jhb $
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: head/sys/amd64/vmm/intel/vmx.c 260863 2014-01-18 21:47:12Z neel $");
+__FBSDID("$FreeBSD: head/sys/amd64/vmm/intel/vmx.c 261504 2014-02-05 04:39:03Z jhb $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -907,7 +907,6 @@
panic("vmx_setup_cr4_shadow %d", error);
vmx->ctx[i].pmap = pmap;
- vmx->ctx[i].eptp = vmx->eptp;
}
return (vmx);
@@ -955,20 +954,20 @@
#endif
}
+static VMM_STAT_INTEL(VCPU_INVVPID_SAVED, "Number of vpid invalidations saved");
+
static void
-vmx_set_pcpu_defaults(struct vmx *vmx, int vcpu)
+vmx_set_pcpu_defaults(struct vmx *vmx, int vcpu, pmap_t pmap)
{
- int lastcpu;
struct vmxstate *vmxstate;
- struct invvpid_desc invvpid_desc = { 0 };
+ struct invvpid_desc invvpid_desc;
vmxstate = &vmx->state[vcpu];
- lastcpu = vmxstate->lastcpu;
+ if (vmxstate->lastcpu == curcpu)
+ return;
+
vmxstate->lastcpu = curcpu;
- if (lastcpu == curcpu)
- return;
-
vmm_stat_incr(vmx->vm, vcpu, VCPU_MIGRATIONS, 1);
vmcs_write(VMCS_HOST_TR_BASE, vmm_get_host_trbase());
@@ -991,8 +990,20 @@
* for "all" EP4TAs.
*/
if (vmxstate->vpid != 0) {
- invvpid_desc.vpid = vmxstate->vpid;
- invvpid(INVVPID_TYPE_SINGLE_CONTEXT, invvpid_desc);
+ if (pmap->pm_eptgen == vmx->eptgen[curcpu]) {
+ invvpid_desc._res1 = 0;
+ invvpid_desc._res2 = 0;
+ invvpid_desc.vpid = vmxstate->vpid;
+ invvpid(INVVPID_TYPE_SINGLE_CONTEXT, invvpid_desc);
+ } else {
+ /*
+ * The invvpid can be skipped if an invept is going to
+ * be performed before entering the guest. The invept
+ * will invalidate combined mappings tagged with
+ * 'vmx->eptp' for all vpids.
+ */
+ vmm_stat_incr(vmx->vm, vcpu, VCPU_INVVPID_SAVED, 1);
+ }
}
}
@@ -1121,15 +1132,15 @@
}
/*
- * If there is already an interrupt pending then just return. This
- * could happen for multiple reasons:
- * - A vectoring VM-entry was aborted due to astpending or rendezvous.
- * - A VM-exit happened during event injection.
- * - A NMI was injected above or after "NMI window exiting" VM-exit.
+ * If interrupt-window exiting is already in effect then don't bother
+ * checking for pending interrupts. This is just an optimization and
+ * not needed for correctness.
*/
- info = vmcs_read(VMCS_ENTRY_INTR_INFO);
- if (info & VMCS_INTR_VALID)
+ if ((vmx->cap[vcpu].proc_ctls & PROCBASED_INT_WINDOW_EXITING) != 0) {
+ VCPU_CTR0(vmx->vm, vcpu, "Skip interrupt injection due to "
+ "pending int_window_exiting");
return;
+ }
/* Ask the local apic for a vector to inject */
if (!vlapic_pending_intr(vlapic, &vector))
@@ -1139,12 +1150,31 @@
/* Check RFLAGS.IF and the interruptibility state of the guest */
rflags = vmcs_read(VMCS_GUEST_RFLAGS);
- if ((rflags & PSL_I) == 0)
+ if ((rflags & PSL_I) == 0) {
+ VCPU_CTR2(vmx->vm, vcpu, "Cannot inject vector %d due to "
+ "rflags %#lx", vector, rflags);
goto cantinject;
+ }
gi = vmcs_read(VMCS_GUEST_INTERRUPTIBILITY);
- if (gi & HWINTR_BLOCKING)
+ if (gi & HWINTR_BLOCKING) {
+ VCPU_CTR2(vmx->vm, vcpu, "Cannot inject vector %d due to "
+ "Guest Interruptibility-state %#x", vector, gi);
+ goto cantinject;
+ }
+
+ info = vmcs_read(VMCS_ENTRY_INTR_INFO);
+ if (info & VMCS_INTR_VALID) {
+ /*
+ * This is expected and could happen for multiple reasons:
+ * - A vectoring VM-entry was aborted due to astpending
+ * - A VM-exit happened during event injection.
+ * - An NMI was injected above or after "NMI window exiting"
+ */
+ VCPU_CTR2(vmx->vm, vcpu, "Cannot inject vector %d due to "
+ "VM-entry intr info %#x", vector, info);
goto cantinject;
+ }
/* Inject the interrupt */
info = VMCS_INTR_T_HWINTR | VMCS_INTR_VALID;
@@ -1308,6 +1338,30 @@
return (HANDLED);
}
+static enum vie_cpu_mode
+vmx_cpu_mode(void)
+{
+
+ if (vmcs_read(VMCS_GUEST_IA32_EFER) & EFER_LMA)
+ return (CPU_MODE_64BIT);
+ else
+ return (CPU_MODE_COMPATIBILITY);
+}
+
+static enum vie_paging_mode
+vmx_paging_mode(void)
+{
+
+ if (!(vmcs_read(VMCS_GUEST_CR0) & CR0_PG))
+ return (PAGING_MODE_FLAT);
+ if (!(vmcs_read(VMCS_GUEST_CR4) & CR4_PAE))
+ return (PAGING_MODE_32);
+ if (vmcs_read(VMCS_GUEST_IA32_EFER) & EFER_LME)
+ return (PAGING_MODE_64);
+ else
+ return (PAGING_MODE_PAE);
+}
+
static int
ept_fault_type(uint64_t ept_qual)
{
@@ -1467,6 +1521,8 @@
vmexit->u.inst_emul.gpa = DEFAULT_APIC_BASE + offset;
vmexit->u.inst_emul.gla = VIE_INVALID_GLA;
vmexit->u.inst_emul.cr3 = vmcs_guest_cr3();
+ vmexit->u.inst_emul.cpu_mode = vmx_cpu_mode();
+ vmexit->u.inst_emul.paging_mode = vmx_paging_mode();
}
/*
@@ -1491,6 +1547,7 @@
bool retu;
CTASSERT((PINBASED_CTLS_ONE_SETTING & PINBASED_VIRTUAL_NMI) != 0);
+ CTASSERT((PINBASED_CTLS_ONE_SETTING & PINBASED_NMI_EXITING) != 0);
handled = 0;
vmxctx = &vmx->ctx[vcpu];
@@ -1643,9 +1700,11 @@
handled = vmx_handle_cpuid(vmx->vm, vcpu, vmxctx);
break;
case EXIT_REASON_EXCEPTION:
+ vmm_stat_incr(vmx->vm, vcpu, VMEXIT_EXCEPTION, 1);
intr_info = vmcs_read(VMCS_EXIT_INTR_INFO);
KASSERT((intr_info & VMCS_INTR_VALID) != 0,
("VM exit interruption info invalid: %#x", intr_info));
+
/*
* If Virtual NMIs control is 1 and the VM-exit is due to a
* fault encountered during the execution of IRET then we must
@@ -1658,6 +1717,21 @@
(intr_info & 0xff) != IDT_DF &&
(intr_info & EXIT_QUAL_NMIUDTI) != 0)
vmx_restore_nmi_blocking(vmx, vcpu);
+
+ /*
+ * If the NMI-exiting VM execution control is set to '1'
+ * then an NMI in non-root operation causes a VM-exit.
+ * NMI blocking is in effect for this logical processor so
+ * it is sufficient to simply vector to the NMI handler via
+ * a software interrupt.
+ */
+ if ((intr_info & VMCS_INTR_T_MASK) == VMCS_INTR_T_NMI) {
+ KASSERT((intr_info & 0xff) == IDT_NMI, ("VM exit due "
+ "to NMI has invalid vector: %#x", intr_info));
+ VCPU_CTR0(vmx->vm, vcpu, "Vectoring to NMI handler");
+ __asm __volatile("int $2");
+ return (1);
+ }
break;
case EXIT_REASON_EPT_FAULT:
vmm_stat_incr(vmx->vm, vcpu, VMEXIT_EPT_FAULT, 1);
@@ -1676,6 +1750,8 @@
vmexit->u.inst_emul.gpa = gpa;
vmexit->u.inst_emul.gla = vmcs_gla();
vmexit->u.inst_emul.cr3 = vmcs_guest_cr3();
+ vmexit->u.inst_emul.cpu_mode = vmx_cpu_mode();
+ vmexit->u.inst_emul.paging_mode = vmx_paging_mode();
}
/*
* If Virtual NMIs control is 1 and the VM-exit is due to an
@@ -1689,6 +1765,11 @@
(qual & EXIT_QUAL_NMIUDTI) != 0)
vmx_restore_nmi_blocking(vmx, vcpu);
break;
+ case EXIT_REASON_VIRTUALIZED_EOI:
+ vmexit->exitcode = VM_EXITCODE_IOAPIC_EOI;
+ vmexit->u.ioapic_eoi.vector = qual & 0xFF;
+ vmexit->inst_length = 0; /* trap-like */
+ break;
case EXIT_REASON_APIC_ACCESS:
handled = vmx_handle_apic_access(vmx, vcpu, vmexit);
break;
@@ -1728,6 +1809,8 @@
*/
vmexit->exitcode = VM_EXITCODE_VMX;
vmexit->u.vmx.status = VM_SUCCESS;
+ vmexit->u.vmx.inst_type = 0;
+ vmexit->u.vmx.inst_error = 0;
} else {
/*
* The exitcode and collateral have been populated.
@@ -1815,8 +1898,6 @@
KASSERT(vmxctx->pmap == pmap,
("pmap %p different than ctx pmap %p", pmap, vmxctx->pmap));
- KASSERT(vmxctx->eptp == vmx->eptp,
- ("eptp %p different than ctx eptp %#lx", eptp, vmxctx->eptp));
VMPTRLD(vmcs);
@@ -1831,7 +1912,7 @@
vmcs_write(VMCS_HOST_CR3, rcr3());
vmcs_write(VMCS_GUEST_RIP, startrip);
- vmx_set_pcpu_defaults(vmx, vcpu);
+ vmx_set_pcpu_defaults(vmx, vcpu, pmap);
do {
/*
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list