]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
Merge tag 'virtio-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
authorLinus Torvalds <torvalds@linux-foundation.org>
Wed, 18 Feb 2015 17:24:01 +0000 (09:24 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 18 Feb 2015 17:24:01 +0000 (09:24 -0800)
Pull virtio updates from Rusty Russell:
 "OK, this has the big virtio 1.0 implementation, as specified by OASIS.

  On top of tht is the major rework of lguest, to use PCI and virtio
  1.0, to double-check the implementation.

  Then comes the inevitable fixes and cleanups from that work"

* tag 'virtio-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux: (80 commits)
  virtio: don't set VIRTIO_CONFIG_S_DRIVER_OK twice.
  virtio_net: unconditionally define struct virtio_net_hdr_v1.
  tools/lguest: don't use legacy definitions for net device in example launcher.
  virtio: Don't expose legacy net features when VIRTIO_NET_NO_LEGACY defined.
  tools/lguest: use common error macros in the example launcher.
  tools/lguest: give virtqueues names for better error messages
  tools/lguest: more documentation and checking of virtio 1.0 compliance.
  lguest: don't look in console features to find emerg_wr.
  tools/lguest: don't start devices until DRIVER_OK status set.
  tools/lguest: handle indirect partway through chain.
  tools/lguest: insert driver references from the 1.0 spec (4.1 Virtio Over PCI)
  tools/lguest: insert device references from the 1.0 spec (4.1 Virtio Over PCI)
  tools/lguest: rename virtio_pci_cfg_cap field to match spec.
  tools/lguest: fix features_accepted logic in example launcher.
  tools/lguest: handle device reset correctly in example launcher.
  virtual: Documentation: simplify and generalize paravirt_ops.txt
  lguest: remove NOTIFY call and eventfd facility.
  lguest: remove NOTIFY facility from demonstration launcher.
  lguest: use the PCI console device's emerg_wr for early boot messages.
  lguest: always put console in PCI slot #1.
  ...

1  2 
MAINTAINERS
drivers/lguest/x86/core.c
drivers/net/virtio_net.c

diff --combined MAINTAINERS
index 4f4915cbeab98e0f81b5f98586e8d6c848231536,9af1c6e5ee657615fe96e839b04227b2a5f77f25..1921ed58d1a093a1270a67893cca0cc299182cbe
@@@ -34,7 -34,7 +34,7 @@@ trivial patch so apply some common sens
        generalized kernel feature ready for next time.
  
        PLEASE check your patch with the automated style checker
 -      (scripts/checkpatch.pl) to catch trival style violations.
 +      (scripts/checkpatch.pl) to catch trivial style violations.
        See Documentation/CodingStyle for guidance here.
  
        PLEASE CC: the maintainers and mailing lists that are generated
@@@ -270,12 -270,12 +270,12 @@@ F:      drivers/acpi
  F:    drivers/pnp/pnpacpi/
  F:    include/linux/acpi.h
  F:    include/acpi/
 -F:    Documentation/acpi
 +F:    Documentation/acpi/
  F:    Documentation/ABI/testing/sysfs-bus-acpi
  F:    drivers/pci/*acpi*
  F:    drivers/pci/*/*acpi*
  F:    drivers/pci/*/*/*acpi*
 -F:    tools/power/acpi
 +F:    tools/power/acpi/
  
  ACPI COMPONENT ARCHITECTURE (ACPICA)
  M:    Robert Moore <robert.moore@intel.com>
@@@ -563,12 -563,6 +563,12 @@@ S:       Odd Fixe
  L:    linux-alpha@vger.kernel.org
  F:    arch/alpha/
  
 +ALTERA MAILBOX DRIVER
 +M:    Ley Foon Tan <lftan@altera.com>
 +L:    nios2-dev@lists.rocketboards.org (moderated for non-subscribers)
 +S:    Maintained
 +F:    drivers/mailbox/mailbox-altera.c
 +
  ALTERA TRIPLE SPEED ETHERNET DRIVER
  M:    Vince Bridgers <vbridger@opensource.altera.com>
  L:    netdev@vger.kernel.org
@@@ -630,8 -624,6 +630,8 @@@ L:      dri-devel@lists.freedesktop.or
  T:      git git://people.freedesktop.org/~gabbayo/linux.git
  S:      Supported
  F:      drivers/gpu/drm/amd/amdkfd/
 +F:    drivers/gpu/drm/amd/include/cik_structs.h
 +F:    drivers/gpu/drm/amd/include/kgd_kfd_interface.h
  F:      drivers/gpu/drm/radeon/radeon_kfd.c
  F:      drivers/gpu/drm/radeon/radeon_kfd.h
  F:      include/uapi/linux/kfd_ioctl.h
@@@ -667,13 -659,6 +667,13 @@@ L:       linux-media@vger.kernel.or
  S:    Maintained
  F:    drivers/media/i2c/ad9389b*
  
 +ANALOG DEVICES INC ADV7180 DRIVER
 +M:    Lars-Peter Clausen <lars@metafoo.de>
 +L:    linux-media@vger.kernel.org
 +W:    http://ez.analog.com/community/linux-device-drivers
 +S:    Supported
 +F:    drivers/media/i2c/adv7180.c
 +
  ANALOG DEVICES INC ADV7511 DRIVER
  M:    Hans Verkuil <hans.verkuil@cisco.com>
  L:    linux-media@vger.kernel.org
@@@ -711,7 -696,7 +711,7 @@@ L: alsa-devel@alsa-project.org (moderat
  W:    http://blackfin.uclinux.org/
  S:    Supported
  F:    sound/soc/blackfin/*
 - 
 +
  ANALOG DEVICES INC IIO DRIVERS
  M:    Lars-Peter Clausen <lars@metafoo.de>
  M:    Michael Hennerich <Michael.Hennerich@analog.com>
@@@ -723,16 -708,6 +723,16 @@@ X:       drivers/iio/*/adjd
  F:    drivers/staging/iio/*/ad*
  F:    staging/iio/trigger/iio-trig-bfin-timer.c
  
 +ANDROID DRIVERS
 +M:    Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 +M:    Arve Hjønnevåg <arve@android.com>
 +M:    Riley Andrews <riandrews@android.com>
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/gregkh/staging.git
 +L:    devel@driverdev.osuosl.org
 +S:    Supported
 +F:    drivers/android/
 +F:    drivers/staging/android/
 +
  AOA (Apple Onboard Audio) ALSA DRIVER
  M:    Johannes Berg <johannes@sipsolutions.net>
  L:    linuxppc-dev@lists.ozlabs.org
@@@ -895,7 -870,6 +895,7 @@@ F: arch/arm/boot/dts/at91*.dt
  F:    arch/arm/boot/dts/at91*.dtsi
  F:    arch/arm/boot/dts/sama*.dts
  F:    arch/arm/boot/dts/sama*.dtsi
 +F:    arch/arm/include/debug/at91.S
  
  ARM/ATMEL AT91 Clock Support
  M:    Boris Brezillon <boris.brezillon@free-electrons.com>
@@@ -977,7 -951,7 +977,7 @@@ S: Maintaine
  F:    arch/arm/mach-prima2/
  F:    drivers/clk/sirf/
  F:    drivers/clocksource/timer-prima2.c
 -F:    drivers/clocksource/timer-marco.c
 +F:    drivers/clocksource/timer-atlas7.c
  N:    [^a-z]sirf
  
  ARM/EBSA110 MACHINE SUPPORT
@@@ -1176,7 -1150,6 +1176,7 @@@ M:      Sebastian Hesselbarth <sebastian.hes
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  F:    arch/arm/mach-mvebu/
 +F:    drivers/rtc/armada38x-rtc
  
  ARM/Marvell Berlin SoC support
  M:    Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
@@@ -1310,13 -1283,10 +1310,13 @@@ S:   Maintaine
  
  ARM/QUALCOMM SUPPORT
  M:    Kumar Gala <galak@codeaurora.org>
 +M:    Andy Gross <agross@codeaurora.org>
  M:    David Brown <davidb@codeaurora.org>
  L:    linux-arm-msm@vger.kernel.org
 +L:    linux-soc@vger.kernel.org
  S:    Maintained
  F:    arch/arm/mach-qcom/
 +F:    drivers/soc/qcom/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/galak/linux-qcom.git
  
  ARM/RADISYS ENP2611 MACHINE SUPPORT
@@@ -1418,6 -1388,7 +1418,6 @@@ F:      arch/arm/configs/ape6evm_defconfi
  F:    arch/arm/configs/armadillo800eva_defconfig
  F:    arch/arm/configs/bockw_defconfig
  F:    arch/arm/configs/kzm9g_defconfig
 -F:    arch/arm/configs/lager_defconfig
  F:    arch/arm/configs/mackerel_defconfig
  F:    arch/arm/configs/marzen_defconfig
  F:    arch/arm/configs/shmobile_defconfig
@@@ -1605,14 -1576,12 +1605,14 @@@ N:   xilin
  F:    drivers/clocksource/cadence_ttc_timer.c
  F:    drivers/i2c/busses/i2c-cadence.c
  F:    drivers/mmc/host/sdhci-of-arasan.c
 +F:    drivers/edac/synopsys_edac.c
  
  ARM SMMU DRIVER
  M:    Will Deacon <will.deacon@arm.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  F:    drivers/iommu/arm-smmu.c
 +F:    drivers/iommu/io-pgtable-arm.c
  
  ARM64 PORT (AARCH64 ARCHITECTURE)
  M:    Catalin Marinas <catalin.marinas@arm.com>
@@@ -1681,6 -1650,7 +1681,6 @@@ M:      Jiri Slaby <jirislaby@gmail.com
  M:    Nick Kossifidis <mickflemm@gmail.com>
  M:    "Luis R. Rodriguez" <mcgrof@do-not-panic.com>
  L:    linux-wireless@vger.kernel.org
 -L:    ath5k-devel@lists.ath5k.org
  W:    http://wireless.kernel.org/en/users/Drivers/ath5k
  S:    Maintained
  F:    drivers/net/wireless/ath/ath5k/
@@@ -2147,7 -2117,7 +2147,7 @@@ F:      arch/arm/boot/dts/bcm470
  BROADCOM BCM63XX ARM ARCHITECTURE
  M:    Florian Fainelli <f.fainelli@gmail.com>
  L:    linux-arm-kernel@lists.infradead.org
 -T:    git git://git.github.com/brcm/linux.git
 +T:    git git://github.com/broadcom/arm-bcm63xx.git
  S:    Maintained
  F:    arch/arm/mach-bcm/bcm63xx.c
  F:    arch/arm/include/debug/bcm63xx.S
@@@ -2164,7 -2134,6 +2164,7 @@@ M:      Brian Norris <computersforpeace@gmai
  M:    Gregory Fong <gregory.0xf0@gmail.com>
  M:    Florian Fainelli <f.fainelli@gmail.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 +T:    git git://github.com/broadcom/stblinux.git
  S:    Maintained
  F:    arch/arm/mach-bcm/*brcmstb*
  F:    arch/arm/boot/dts/bcm7*.dts*
@@@ -2174,7 -2143,6 +2174,7 @@@ BROADCOM BMIPS MIPS ARCHITECTUR
  M:    Kevin Cernekee <cernekee@gmail.com>
  M:    Florian Fainelli <f.fainelli@gmail.com>
  L:    linux-mips@linux-mips.org
 +T:    git git://github.com/broadcom/stblinux.git
  S:    Maintained
  F:    arch/mips/bmips/*
  F:    arch/mips/include/asm/mach-bmips/*
@@@ -2217,7 -2185,7 +2217,7 @@@ M:      Ray Jui <rjui@broadcom.com
  M:    Scott Branden <sbranden@broadcom.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  L:    bcm-kernel-feedback-list@broadcom.com
 -T:    git git://git.github.com/brcm/linux.git
 +T:    git git://github.com/broadcom/cygnus-linux.git
  S:    Maintained
  N:    iproc
  N:    cygnus
@@@ -2406,12 -2374,6 +2406,12 @@@ F:    security/capability.
  F:    security/commoncap.c
  F:    kernel/capability.c
  
 +CAPELLA MICROSYSTEMS LIGHT SENSOR DRIVER
 +M:    Kevin Tsai <ktsai@capellamicro.com>
 +S:    Maintained
 +F:    drivers/iio/light/cm*
 +F:    Documentation/devicetree/bindings/i2c/trivial-devices.txt
 +
  CC2520 IEEE-802.15.4 RADIO DRIVER
  M:    Varka Bhadram <varkabhadram@gmail.com>
  L:    linux-wpan@vger.kernel.org
@@@ -2970,12 -2932,6 +2970,12 @@@ S:    Supporte
  F:    drivers/input/touchscreen/cyttsp*
  F:    include/linux/input/cyttsp.h
  
 +DALLAS/MAXIM DS1685-FAMILY REAL TIME CLOCK
 +M:    Joshua Kinard <kumba@gentoo.org>
 +S:    Maintained
 +F:    drivers/rtc/rtc-ds1685.c
 +F:    include/linux/rtc/ds1685.h
 +
  DAMA SLAVE for AX.25
  M:    Joerg Reuter <jreuter@yaina.de>
  W:    http://yaina.de/jreuter/
@@@ -3052,7 -3008,6 +3052,7 @@@ F:      drivers/platform/x86/dell-laptop.
  
  DELL LAPTOP SMM DRIVER
  M:    Guenter Roeck <linux@roeck-us.net>
 +S:    Maintained
  F:    drivers/char/i8k.c
  F:    include/uapi/linux/i8k.h
  
@@@ -3068,7 -3023,7 +3068,7 @@@ S:      Maintaine
  F:    drivers/platform/x86/dell-wmi.c
  
  DESIGNWARE USB2 DRD IP DRIVER
 -M:    Paul Zimmerman <paulz@synopsys.com>
 +M:    John Youn <johnyoun@synopsys.com>
  L:    linux-usb@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb.git
  S:    Maintained
@@@ -3164,12 -3119,6 +3164,12 @@@ L:    linux-i2c@vger.kernel.or
  S:    Maintained
  F:    drivers/i2c/busses/i2c-diolan-u2c.c
  
 +DIRECT ACCESS (DAX)
 +M:    Matthew Wilcox <willy@linux.intel.com>
 +L:    linux-fsdevel@vger.kernel.org
 +S:    Supported
 +F:    fs/dax.c
 +
  DIRECTORY NOTIFICATION (DNOTIFY)
  M:    Eric Paris <eparis@parisplace.org>
  S:    Maintained
@@@ -3254,7 -3203,6 +3254,7 @@@ F:      Documentation
  X:    Documentation/ABI/
  X:    Documentation/devicetree/
  X:    Documentation/[a-z][a-z]_[A-Z][A-Z]/
 +T:    git git://git.lwn.net/linux-2.6.git docs-next
  
  DOUBLETALK DRIVER
  M:    "James R. Van Zandt" <jrv@vanzandt.mv.com>
@@@ -3514,14 -3462,6 +3514,14 @@@ M:    "Maciej W. Rozycki" <macro@linux-mip
  S:    Maintained
  F:    drivers/tty/serial/dz.*
  
 +E3X0 POWER BUTTON DRIVER
 +M:    Moritz Fischer <moritz.fischer@ettus.com>
 +L:    usrp-users@lists.ettus.com
 +W:    http://www.ettus.com
 +S:    Supported
 +F:    drivers/input/misc/e3x0-button.c
 +F:    Documentation/devicetree/bindings/input/e3x0-button.txt
 +
  E4000 MEDIA DRIVER
  M:    Antti Palosaari <crope@iki.fi>
  L:    linux-media@vger.kernel.org
@@@ -3563,8 -3503,6 +3563,8 @@@ M:      Borislav Petkov <bp@alien8.de
  M:    Mauro Carvalho Chehab <mchehab@osg.samsung.com>
  L:    linux-edac@vger.kernel.org
  W:    bluesmoke.sourceforge.net
 +T:    git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp.git#for-next
 +T:    git://git.kernel.org/pub/linux/kernel/git/mchehab/linux-edac.git#linux_next
  S:    Supported
  F:    Documentation/edac.txt
  F:    drivers/edac/
@@@ -3929,12 -3867,6 +3929,12 @@@ S:    Supporte
  F:    Documentation/fault-injection/
  F:    lib/fault-inject.c
  
 +FBTFT Framebuffer drivers
 +M:    Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
 +M:    Noralf Trønnes <noralf@tronnes.org>
 +S:    Maintained
 +F:    drivers/staging/fbtft/
 +
  FCOE SUBSYSTEM (libfc, libfcoe, fcoe)
  M:    Robert Love <robert.w.love@intel.com>
  L:    fcoe-devel@open-fcoe.org
@@@ -4092,12 -4024,6 +4092,12 @@@ S:    Maintaine
  F:    include/linux/platform_data/video-imxfb.h
  F:    drivers/video/fbdev/imxfb.c
  
 +FREESCALE QUAD SPI DRIVER
 +M:    Han Xu <han.xu@freescale.com>
 +L:    linux-mtd@lists.infradead.org
 +S:    Maintained
 +F:    drivers/mtd/spi-nor/fsl-quadspi.c
 +
  FREESCALE SOC FS_ENET DRIVER
  M:    Pantelis Antoniou <pantelis.antoniou@gmail.com>
  M:    Vitaly Bordug <vbordug@ru.mvista.com>
@@@ -4238,11 -4164,6 +4238,11 @@@ W:    http://www.icp-vortex.com
  S:    Supported
  F:    drivers/scsi/gdt*
  
 +GDB KERNEL DEBUGGING HELPER SCRIPTS
 +M:    Jan Kiszka <jan.kiszka@siemens.com>
 +S:    Supported
 +F:    scripts/gdb/
 +
  GEMTEK FM RADIO RECEIVER DRIVER
  M:    Hans Verkuil <hverkuil@xs4all.nl>
  L:    linux-media@vger.kernel.org
@@@ -4477,7 -4398,6 +4477,7 @@@ F:      include/linux/hwmon*.
  HARDWARE RANDOM NUMBER GENERATOR CORE
  M:    Matt Mackall <mpm@selenic.com>
  M:    Herbert Xu <herbert@gondor.apana.org.au>
 +L:    linux-crypto@vger.kernel.org
  S:    Odd fixes
  F:    Documentation/hw_random.txt
  F:    drivers/char/hw_random/
@@@ -4830,14 -4750,14 +4830,14 @@@ S:   Supporte
  F:    drivers/net/ethernet/ibm/ibmveth.*
  
  IBM Power Virtual SCSI Device Drivers
 -M:    Nathan Fontenot <nfont@linux.vnet.ibm.com>
 +M:    Tyrel Datwyler <tyreld@linux.vnet.ibm.com>
  L:    linux-scsi@vger.kernel.org
  S:    Supported
  F:    drivers/scsi/ibmvscsi/ibmvscsi*
  F:    drivers/scsi/ibmvscsi/viosrp.h
  
  IBM Power Virtual FC Device Drivers
 -M:    Brian King <brking@linux.vnet.ibm.com>
 +M:    Tyrel Datwyler <tyreld@linux.vnet.ibm.com>
  L:    linux-scsi@vger.kernel.org
  S:    Supported
  F:    drivers/scsi/ibmvscsi/ibmvfc*
@@@ -4963,7 -4883,7 +4963,7 @@@ F:      drivers/ipack
  
  INTEGRITY MEASUREMENT ARCHITECTURE (IMA)
  M:    Mimi Zohar <zohar@linux.vnet.ibm.com>
 -M:    Dmitry Kasatkin <d.kasatkin@samsung.com>
 +M:    Dmitry Kasatkin <dmitry.kasatkin@gmail.com>
  L:    linux-ima-devel@lists.sourceforge.net
  L:    linux-ima-user@lists.sourceforge.net
  L:    linux-security-module@vger.kernel.org
@@@ -5023,19 -4943,10 +5023,19 @@@ F:   Documentation/input/multi-touch-prot
  F:    drivers/input/input-mt.c
  K:    \b(ABS|SYN)_MT_
  
 +INTEL ASoC BDW/HSW DRIVERS
 +M:    Jie Yang <yang.jie@linux.intel.com>
 +L:    alsa-devel@alsa-project.org
 +S:    Supported
 +F:    sound/soc/intel/sst-haswell*
 +F:    sound/soc/intel/sst-dsp*
 +F:    sound/soc/intel/sst-firmware.c
 +F:    sound/soc/intel/broadwell.c
 +F:    sound/soc/intel/haswell.c
 +
  INTEL C600 SERIES SAS CONTROLLER DRIVER
  M:    Intel SCU Linux support <intel-linux-scu@intel.com>
  M:    Artur Paszkiewicz <artur.paszkiewicz@intel.com>
 -M:    Dave Jiang <dave.jiang@intel.com>
  L:    linux-scsi@vger.kernel.org
  T:    git git://git.code.sf.net/p/intel-sas/isci
  S:    Supported
@@@ -5920,21 -5831,6 +5920,21 @@@ F:    Documentation/misc-devices/lis3lv02
  F:    drivers/misc/lis3lv02d/
  F:    drivers/platform/x86/hp_accel.c
  
 +LIVE PATCHING
 +M:    Josh Poimboeuf <jpoimboe@redhat.com>
 +M:    Seth Jennings <sjenning@redhat.com>
 +M:    Jiri Kosina <jkosina@suse.cz>
 +M:    Vojtech Pavlik <vojtech@suse.cz>
 +S:    Maintained
 +F:    kernel/livepatch/
 +F:    include/linux/livepatch.h
 +F:    arch/x86/include/asm/livepatch.h
 +F:    arch/x86/kernel/livepatch.c
 +F:    Documentation/ABI/testing/sysfs-kernel-livepatch
 +F:    samples/livepatch/
 +L:    live-patching@vger.kernel.org
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jikos/livepatching.git
 +
  LLC (802.2)
  M:    Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
  S:    Maintained
@@@ -6233,33 -6129,6 +6233,33 @@@ F:    Documentation/devicetree/bindings/i2
  F:    drivers/hwmon/max6697.c
  F:    include/linux/platform_data/max6697.h
  
 +MAXIM MUIC CHARGER DRIVERS FOR EXYNOS BASED BOARDS
 +M:    Krzysztof Kozlowski <k.kozlowski@samsung.com>
 +L:    linux-pm@vger.kernel.org
 +S:    Supported
 +F:    drivers/power/max14577_charger.c
 +F:    drivers/power/max77693_charger.c
 +
 +MAXIM PMIC AND MUIC DRIVERS FOR EXYNOS BASED BOARDS
 +M:    Chanwoo Choi <cw00.choi@samsung.com>
 +M:    Krzysztof Kozlowski <k.kozlowski@samsung.com>
 +L:    linux-kernel@vger.kernel.org
 +S:    Supported
 +F:    drivers/*/max14577.c
 +F:    drivers/*/max77686.c
 +F:    drivers/*/max77693.c
 +F:    drivers/extcon/extcon-max14577.c
 +F:    drivers/extcon/extcon-max77693.c
 +F:    drivers/rtc/rtc-max77686.c
 +F:    drivers/clk/clk-max77686.c
 +F:    Documentation/devicetree/bindings/mfd/max14577.txt
 +F:    Documentation/devicetree/bindings/mfd/max77686.txt
 +F:    Documentation/devicetree/bindings/mfd/max77693.txt
 +F:    Documentation/devicetree/bindings/clock/maxim,max77686.txt
 +F:    include/linux/mfd/max14577*.h
 +F:    include/linux/mfd/max77686*.h
 +F:    include/linux/mfd/max77693*.h
 +
  MAXIRADIO FM RADIO RECEIVER DRIVER
  M:    Hans Verkuil <hverkuil@xs4all.nl>
  L:    linux-media@vger.kernel.org
@@@ -6290,6 -6159,14 +6290,6 @@@ F:     include/uapi/linux/meye.
  F:    include/uapi/linux/ivtv*
  F:    include/uapi/linux/uvcvideo.h
  
 -MEDIAVISION PRO MOVIE STUDIO DRIVER
 -M:    Hans Verkuil <hverkuil@xs4all.nl>
 -L:    linux-media@vger.kernel.org
 -T:    git git://linuxtv.org/media_tree.git
 -W:    http://linuxtv.org
 -S:    Odd Fixes
 -F:    drivers/media/parport/pms*
 -
  MEGARAID SCSI/SAS DRIVERS
  M:    Kashyap Desai <kashyap.desai@avagotech.com>
  M:    Sumit Saxena <sumit.saxena@avagotech.com>
@@@ -6707,10 -6584,9 +6707,10 @@@ F:    include/uapi/linux/netrom.
  F:    net/netrom/
  
  NETWORK BLOCK DEVICE (NBD)
 -M:    Paul Clements <Paul.Clements@steeleye.com>
 +M:    Markus Pargmann <mpa@pengutronix.de>
  S:    Maintained
  L:    nbd-general@lists.sourceforge.net
 +T:    git git://git.pengutronix.de/git/mpa/linux-nbd.git
  F:    Documentation/blockdev/nbd.txt
  F:    drivers/block/nbd.c
  F:    include/linux/nbd.h
@@@ -6739,7 -6615,6 +6739,7 @@@ F:      include/linux/netdevice.
  F:    include/uapi/linux/in.h
  F:    include/uapi/linux/net.h
  F:    include/uapi/linux/netdevice.h
 +F:    include/uapi/linux/net_namespace.h
  F:    tools/net/
  F:    tools/testing/selftests/net/
  F:    lib/random32.c
@@@ -6844,7 -6719,6 +6844,7 @@@ F:      Documentation/devicetree/bindings/ne
  
  NFS, SUNRPC, AND LOCKD CLIENTS
  M:    Trond Myklebust <trond.myklebust@primarydata.com>
 +M:    Anna Schumaker <anna.schumaker@netapp.com>
  L:    linux-nfs@vger.kernel.org
  W:    http://client.linux-nfs.org
  T:    git git://git.linux-nfs.org/projects/trondmy/linux-nfs.git
@@@ -6887,7 -6761,7 +6887,7 @@@ F:      drivers/scsi/nsp32
  NIOS2 ARCHITECTURE
  M:    Ley Foon Tan <lftan@altera.com>
  L:    nios2-dev@lists.rocketboards.org (moderated for non-subscribers)
 -T:    git git://git.rocketboards.org/linux-socfpga.git
 +T:    git git://git.rocketboards.org/linux-socfpga-next.git
  S:    Maintained
  F:    arch/nios2/
  
@@@ -7060,12 -6934,6 +7060,12 @@@ L:    linux-omap@vger.kernel.or
  S:    Maintained
  F:    arch/arm/mach-omap2/omap_hwmod.*
  
 +OMAP HWMOD DATA
 +M:    Paul Walmsley <paul@pwsan.com>
 +L:    linux-omap@vger.kernel.org
 +S:    Maintained
 +F:    arch/arm/mach-omap2/omap_hwmod*data*
 +
  OMAP HWMOD DATA FOR OMAP4-BASED DEVICES
  M:    Benoît Cousson <bcousson@baylibre.com>
  L:    linux-omap@vger.kernel.org
@@@ -7156,12 -7024,14 +7156,12 @@@ OPEN FIRMWARE AND FLATTENED DEVICE TRE
  M:    Grant Likely <grant.likely@linaro.org>
  M:    Rob Herring <robh+dt@kernel.org>
  L:    devicetree@vger.kernel.org
 -W:    http://fdt.secretlab.ca
 -T:    git git://git.secretlab.ca/git/linux-2.6.git
 +W:    http://www.devicetree.org/
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/glikely/linux.git
  S:    Maintained
  F:    drivers/of/
  F:    include/linux/of*.h
  F:    scripts/dtc/
 -K:    of_get_property
 -K:    of_match_table
  
  OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS
  M:    Rob Herring <robh+dt@kernel.org>
@@@ -7185,12 -7055,11 +7185,12 @@@ F:   arch/openrisc
  
  OPENVSWITCH
  M:    Pravin Shelar <pshelar@nicira.com>
 +L:    netdev@vger.kernel.org
  L:    dev@openvswitch.org
  W:    http://openvswitch.org
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/pshelar/openvswitch.git
  S:    Maintained
  F:    net/openvswitch/
 +F:    include/uapi/linux/openvswitch.h
  
  OPL4 DRIVER
  M:    Clemens Ladisch <clemens@ladisch.de>
@@@ -7302,7 -7171,7 +7302,7 @@@ M:      Alok Kataria <akataria@vmware.com
  M:    Rusty Russell <rusty@rustcorp.com.au>
  L:    virtualization@lists.linux-foundation.org
  S:    Supported
- F:    Documentation/ia64/paravirt_ops.txt
+ F:    Documentation/virtual/paravirt_ops.txt
  F:    arch/*/kernel/paravirt*
  F:    arch/*/include/asm/paravirt.h
  
@@@ -7388,14 -7257,6 +7388,14 @@@ F:    include/linux/pci
  F:    arch/x86/pci/
  F:    arch/x86/kernel/quirks.c
  
 +PCI DRIVER FOR ARM VERSATILE PLATFORM
 +M:    Rob Herring <robh@kernel.org>
 +L:    linux-pci@vger.kernel.org
 +L:    linux-arm-kernel@lists.infradead.org
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/pci/versatile.txt
 +F:    drivers/pci/host/pci-versatile.c
 +
  PCI DRIVER FOR APPLIEDMICRO XGENE
  M:    Tanmay Inamdar <tinamdar@apm.com>
  L:    linux-pci@vger.kernel.org
@@@ -7415,7 -7276,7 +7415,7 @@@ S:      Maintaine
  F:    drivers/pci/host/*layerscape*
  
  PCI DRIVER FOR IMX6
 -M:    Richard Zhu <r65037@freescale.com>
 +M:    Richard Zhu <Richard.Zhu@freescale.com>
  M:    Lucas Stach <l.stach@pengutronix.de>
  L:    linux-pci@vger.kernel.org
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
@@@ -7997,6 -7858,14 +7997,6 @@@ T:     git git://github.com/KrasnikovEugene
  S:    Supported
  F:    drivers/net/wireless/ath/wcn36xx/
  
 -QUICKCAM PARALLEL PORT WEBCAMS
 -M:    Hans Verkuil <hverkuil@xs4all.nl>
 -L:    linux-media@vger.kernel.org
 -T:    git git://linuxtv.org/media_tree.git
 -W:    http://linuxtv.org
 -S:    Odd Fixes
 -F:    drivers/media/parport/*-qcam*
 -
  RADOS BLOCK DEVICE (RBD)
  M:    Yehuda Sadeh <yehuda@inktank.com>
  M:    Sage Weil <sage@inktank.com>
@@@ -8185,13 -8054,6 +8185,13 @@@ S:    Maintaine
  F:    Documentation/rfkill.txt
  F:    net/rfkill/
  
 +RHASHTABLE
 +M:    Thomas Graf <tgraf@suug.ch>
 +L:    netdev@vger.kernel.org
 +S:    Maintained
 +F:    lib/rhashtable.c
 +F:    include/linux/rhashtable.h
 +
  RICOH SMARTMEDIA/XD DRIVER
  M:    Maxim Levitsky <maximlevitsky@gmail.com>
  S:    Maintained
@@@ -8503,7 -8365,6 +8503,7 @@@ SYNOPSYS DESIGNWARE DMAC DRIVE
  M:    Viresh Kumar <viresh.linux@gmail.com>
  M:    Andy Shevchenko <andriy.shevchenko@linux.intel.com>
  S:    Maintained
 +F:    include/linux/dma/dw.h
  F:    include/linux/platform_data/dma-dw.h
  F:    drivers/dma/dw/
  
@@@ -8535,6 -8396,12 +8535,6 @@@ F:     kernel/time/clocksource.
  F:    kernel/time/time*.c
  F:    kernel/time/ntp.c
  
 -TLG2300 VIDEO4LINUX-2 DRIVER
 -M:    Huang Shijie <shijie8@gmail.com>
 -M:    Hans Verkuil <hverkuil@xs4all.nl>
 -S:    Odd Fixes
 -F:    drivers/media/usb/tlg2300/
 -
  SC1200 WDT DRIVER
  M:    Zwane Mwaikambo <zwanem@gmail.com>
  S:    Maintained
@@@ -8900,15 -8767,6 +8900,15 @@@ S:    Maintaine
  F:    drivers/media/platform/davinci/
  F:    include/media/davinci/
  
 +TI AM437X VPFE DRIVER
 +M:    Lad, Prabhakar <prabhakar.csengg@gmail.com>
 +L:    linux-media@vger.kernel.org
 +W:    http://linuxtv.org/
 +Q:    http://patchwork.linuxtv.org/project/linux-media/list/
 +T:    git git://linuxtv.org/mhadli/v4l-dvb-davinci_devices.git
 +S:    Maintained
 +F:    drivers/media/platform/am437x/
 +
  SIS 190 ETHERNET DRIVER
  M:    Francois Romieu <romieu@fr.zoreil.com>
  L:    netdev@vger.kernel.org
@@@ -8990,8 -8848,6 +8990,8 @@@ F:      drivers/media/i2c/smiapp
  F:    include/media/smiapp.h
  F:    drivers/media/i2c/smiapp-pll.c
  F:    drivers/media/i2c/smiapp-pll.h
 +F:    include/uapi/linux/smiapp.h
 +F:    Documentation/devicetree/bindings/media/i2c/nokia,smia.txt
  
  SMM665 HARDWARE MONITOR DRIVER
  M:    Guenter Roeck <linux@roeck-us.net>
@@@ -9058,7 -8914,6 +9058,7 @@@ SOFTLOGIC 6x10 MPEG CODE
  M:    Bluecherry Maintainers <maintainers@bluecherrydvr.com>
  M:    Andrey Utkin <andrey.utkin@corp.bluecherry.net>
  M:    Andrey Utkin <andrey.krieger.utkin@gmail.com>
 +M:    Ismael Luceno <ismael@iodev.co.uk>
  L:    linux-media@vger.kernel.org
  S:    Supported
  F:    drivers/media/pci/solo6x10/
@@@ -9331,14 -9186,6 +9331,14 @@@ L:    linux-wireless@vger.kernel.or
  S:    Maintained
  F:    drivers/staging/rtl8723au/
  
 +STAGING - SILICON MOTION SM7XX FRAME BUFFER DRIVER
 +M:    Sudip Mukherjee <sudipm.mukherjee@gmail.com>
 +M:    Teddy Wang <teddy.wang@siliconmotion.com>
 +M:    Sudip Mukherjee <sudip@vectorindia.org>
 +L:    linux-fbdev@vger.kernel.org
 +S:    Maintained
 +F:    drivers/staging/sm7xxfb/
 +
  STAGING - SLICOSS
  M:    Lior Dotan <liodot@gmail.com>
  M:    Christopher Harrer <charrer@alacritech.com>
@@@ -9379,13 -9226,6 +9379,13 @@@ F:    arch/m68k/sun3*
  F:    arch/m68k/include/asm/sun3*
  F:    drivers/net/ethernet/i825xx/sun3*
  
 +SUN4I LOW RES ADC ATTACHED TABLET KEYS DRIVER
 +M:    Hans de Goede <hdegoede@redhat.com>
 +L:    linux-input@vger.kernel.org
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/input/sun4i-lradc-keys.txt
 +F:    drivers/input/keyboard/sun4i-lradc-keys.c
 +
  SUNDANCE NETWORK DRIVER
  M:    Denis Kirjanov <kda@linux-powerpc.org>
  L:    netdev@vger.kernel.org
@@@ -9394,6 -9234,7 +9394,6 @@@ F:      drivers/net/ethernet/dlink/sundance.
  
  SUPERH
  L:    linux-sh@vger.kernel.org
 -W:    http://www.linux-sh.org
  Q:    http://patchwork.kernel.org/project/linux-sh/list/
  S:    Orphan
  F:    Documentation/sh/
@@@ -9772,13 -9613,6 +9772,13 @@@ F:    drivers/power/lp8788-charger.
  F:    drivers/regulator/lp8788-*.c
  F:    include/linux/mfd/lp8788*.h
  
 +TI NETCP ETHERNET DRIVER
 +M:    Wingman Kwok <w-kwok2@ti.com>
 +M:    Murali Karicheri <m-karicheri2@ti.com>
 +L:    netdev@vger.kernel.org
 +S:    Maintained
 +F:    drivers/net/ethernet/ti/netcp*
 +
  TI TWL4030 SERIES SOC CODEC DRIVER
  M:    Peter Ujfalusi <peter.ujfalusi@ti.com>
  L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
@@@ -9806,7 -9640,7 +9806,7 @@@ F:      net/tipc
  
  TILE ARCHITECTURE
  M:    Chris Metcalf <cmetcalf@ezchip.com>
 -W:    http://www.tilera.com/scm/
 +W:    http://www.ezchip.com/scm/
  S:    Supported
  F:    arch/tile/
  F:    drivers/char/tile-srom.c
@@@ -9899,21 -9733,13 +9899,21 @@@ F:   drivers/media/pci/tw68
  
  TPM DEVICE DRIVER
  M:    Peter Huewe <peterhuewe@gmx.de>
 -M:    Ashley Lai <ashley@ashleylai.com>
  M:    Marcel Selhorst <tpmdd@selhorst.net>
  W:    http://tpmdd.sourceforge.net
  L:    tpmdd-devel@lists.sourceforge.net (moderated for non-subscribers)
 +Q:    git git://github.com/PeterHuewe/linux-tpmdd.git
 +T:    https://github.com/PeterHuewe/linux-tpmdd
  S:    Maintained
  F:    drivers/char/tpm/
  
 +TPM IBM_VTPM DEVICE DRIVER
 +M:    Ashley Lai <ashleydlai@gmail.com>
 +W:    http://tpmdd.sourceforge.net
 +L:    tpmdd-devel@lists.sourceforge.net (moderated for non-subscribers)
 +S:    Maintained
 +F:    drivers/char/tpm/tpm_ibmvtpm*
 +
  TRACING
  M:    Steven Rostedt <rostedt@goodmis.org>
  M:    Ingo Molnar <mingo@redhat.com>
@@@ -10068,15 -9894,20 +10068,15 @@@ F: drivers/scsi/ufs
  
  UNSORTED BLOCK IMAGES (UBI)
  M:    Artem Bityutskiy <dedekind1@gmail.com>
 +M:    Richard Weinberger <richard@nod.at>
  W:    http://www.linux-mtd.infradead.org/
  L:    linux-mtd@lists.infradead.org
  T:    git git://git.infradead.org/ubifs-2.6.git
 -S:    Maintained
 +S:    Supported
  F:    drivers/mtd/ubi/
  F:    include/linux/mtd/ubi.h
  F:    include/uapi/mtd/ubi-user.h
  
 -UNSORTED BLOCK IMAGES (UBI) Fastmap
 -M:    Richard Weinberger <richard@nod.at>
 -L:    linux-mtd@lists.infradead.org
 -S:    Maintained
 -F:    drivers/mtd/ubi/fastmap.c
 -
  USB ACM DRIVER
  M:    Oliver Neukum <oliver@neukum.org>
  L:    linux-usb@vger.kernel.org
@@@ -10338,7 -10169,6 +10338,7 @@@ USERSPACE I/O (UIO
  M:    "Hans J. Koch" <hjk@hansjkoch.de>
  M:    Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  S:    Maintained
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git
  F:    Documentation/DocBook/uio-howto.tmpl
  F:    drivers/uio/
  F:    include/linux/uio*.h
@@@ -10766,7 -10596,6 +10766,7 @@@ F:   drivers/pci/*xen
  
  XEN BLOCK SUBSYSTEM
  M:    Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
 +M:    Roger Pau Monné <roger.pau@citrix.com>
  L:    xen-devel@lists.xenproject.org (moderated for non-subscribers)
  S:    Supported
  F:    drivers/block/xen-blkback/*
@@@ -10822,7 -10651,6 +10822,7 @@@ M:   Max Filippov <jcmvbkbc@gmail.com
  L:    linux-xtensa@linux-xtensa.org
  S:    Maintained
  F:    drivers/spi/spi-xtensa-xtfpga.c
 +F:    sound/soc/xtensa/xtfpga-i2s.c
  
  YAM DRIVER FOR AX.25
  M:    Jean-Paul Roubelat <jpr@f6fbb.org>
index 6adfd7ba4c977434221d859185772f26530c8bc7,18d841e738bc242e0897012afedc13519cca23f9..30f2aef69d787d7245b3e91c53b98a0a0216cdb9
@@@ -47,7 -47,6 +47,7 @@@
  #include <asm/lguest.h>
  #include <asm/uaccess.h>
  #include <asm/i387.h>
 +#include <asm/tlbflush.h>
  #include "../lg.h"
  
  static int cpu_had_pge;
@@@ -182,6 -181,52 +182,52 @@@ static void run_guest_once(struct lg_cp
  }
  /*:*/
  
+ unsigned long *lguest_arch_regptr(struct lg_cpu *cpu, size_t reg_off, bool any)
+ {
+       switch (reg_off) {
+       case offsetof(struct pt_regs, bx):
+               return &cpu->regs->ebx;
+       case offsetof(struct pt_regs, cx):
+               return &cpu->regs->ecx;
+       case offsetof(struct pt_regs, dx):
+               return &cpu->regs->edx;
+       case offsetof(struct pt_regs, si):
+               return &cpu->regs->esi;
+       case offsetof(struct pt_regs, di):
+               return &cpu->regs->edi;
+       case offsetof(struct pt_regs, bp):
+               return &cpu->regs->ebp;
+       case offsetof(struct pt_regs, ax):
+               return &cpu->regs->eax;
+       case offsetof(struct pt_regs, ip):
+               return &cpu->regs->eip;
+       case offsetof(struct pt_regs, sp):
+               return &cpu->regs->esp;
+       }
+       /* Launcher can read these, but we don't allow any setting. */
+       if (any) {
+               switch (reg_off) {
+               case offsetof(struct pt_regs, ds):
+                       return &cpu->regs->ds;
+               case offsetof(struct pt_regs, es):
+                       return &cpu->regs->es;
+               case offsetof(struct pt_regs, fs):
+                       return &cpu->regs->fs;
+               case offsetof(struct pt_regs, gs):
+                       return &cpu->regs->gs;
+               case offsetof(struct pt_regs, cs):
+                       return &cpu->regs->cs;
+               case offsetof(struct pt_regs, flags):
+                       return &cpu->regs->eflags;
+               case offsetof(struct pt_regs, ss):
+                       return &cpu->regs->ss;
+               }
+       }
+       return NULL;
+ }
  /*M:002
   * There are hooks in the scheduler which we can register to tell when we
   * get kicked off the CPU (preempt_notifier_register()).  This would allow us
@@@ -269,110 -314,73 +315,73 @@@ void lguest_arch_run_guest(struct lg_cp
   * usually attached to a PC.
   *
   * When the Guest uses one of these instructions, we get a trap (General
-  * Protection Fault) and come here.  We see if it's one of those troublesome
-  * instructions and skip over it.  We return true if we did.
+  * Protection Fault) and come here.  We queue this to be sent out to the
+  * Launcher to handle.
   */
- static int emulate_insn(struct lg_cpu *cpu)
- {
-       u8 insn;
-       unsigned int insnlen = 0, in = 0, small_operand = 0;
-       /*
-        * The eip contains the *virtual* address of the Guest's instruction:
-        * walk the Guest's page tables to find the "physical" address.
-        */
-       unsigned long physaddr = guest_pa(cpu, cpu->regs->eip);
  
-       /*
-        * This must be the Guest kernel trying to do something, not userspace!
-        * The bottom two bits of the CS segment register are the privilege
-        * level.
-        */
-       if ((cpu->regs->cs & 3) != GUEST_PL)
-               return 0;
+ /*
+  * The eip contains the *virtual* address of the Guest's instruction:
+  * we copy the instruction here so the Launcher doesn't have to walk
+  * the page tables to decode it.  We handle the case (eg. in a kernel
+  * module) where the instruction is over two pages, and the pages are
+  * virtually but not physically contiguous.
+  *
+  * The longest possible x86 instruction is 15 bytes, but we don't handle
+  * anything that strange.
+  */
+ static void copy_from_guest(struct lg_cpu *cpu,
+                           void *dst, unsigned long vaddr, size_t len)
+ {
+       size_t to_page_end = PAGE_SIZE - (vaddr % PAGE_SIZE);
+       unsigned long paddr;
  
-       /* Decoding x86 instructions is icky. */
-       insn = lgread(cpu, physaddr, u8);
+       BUG_ON(len > PAGE_SIZE);
  
-       /*
-        * Around 2.6.33, the kernel started using an emulation for the
-        * cmpxchg8b instruction in early boot on many configurations.  This
-        * code isn't paravirtualized, and it tries to disable interrupts.
-        * Ignore it, which will Mostly Work.
-        */
-       if (insn == 0xfa) {
-               /* "cli", or Clear Interrupt Enable instruction.  Skip it. */
-               cpu->regs->eip++;
-               return 1;
+       /* If it goes over a page, copy in two parts. */
+       if (len > to_page_end) {
+               /* But make sure the next page is mapped! */
+               if (__guest_pa(cpu, vaddr + to_page_end, &paddr))
+                       copy_from_guest(cpu, dst + to_page_end,
+                                       vaddr + to_page_end,
+                                       len - to_page_end);
+               else
+                       /* Otherwise fill with zeroes. */
+                       memset(dst + to_page_end, 0, len - to_page_end);
+               len = to_page_end;
        }
  
-       /*
-        * 0x66 is an "operand prefix".  It means a 16, not 32 bit in/out.
-        */
-       if (insn == 0x66) {
-               small_operand = 1;
-               /* The instruction is 1 byte so far, read the next byte. */
-               insnlen = 1;
-               insn = lgread(cpu, physaddr + insnlen, u8);
-       }
+       /* This will kill the guest if it isn't mapped, but that
+        * shouldn't happen. */
+       __lgread(cpu, dst, guest_pa(cpu, vaddr), len);
+ }
  
-       /*
-        * We can ignore the lower bit for the moment and decode the 4 opcodes
-        * we need to emulate.
-        */
-       switch (insn & 0xFE) {
-       case 0xE4: /* in     <next byte>,%al */
-               insnlen += 2;
-               in = 1;
-               break;
-       case 0xEC: /* in     (%dx),%al */
-               insnlen += 1;
-               in = 1;
-               break;
-       case 0xE6: /* out    %al,<next byte> */
-               insnlen += 2;
-               break;
-       case 0xEE: /* out    %al,(%dx) */
-               insnlen += 1;
-               break;
-       default:
-               /* OK, we don't know what this is, can't emulate. */
-               return 0;
-       }
  
-       /*
-        * If it was an "IN" instruction, they expect the result to be read
-        * into %eax, so we change %eax.  We always return all-ones, which
-        * traditionally means "there's nothing there".
-        */
-       if (in) {
-               /* Lower bit tells means it's a 32/16 bit access */
-               if (insn & 0x1) {
-                       if (small_operand)
-                               cpu->regs->eax |= 0xFFFF;
-                       else
-                               cpu->regs->eax = 0xFFFFFFFF;
-               } else
-                       cpu->regs->eax |= 0xFF;
-       }
-       /* Finally, we've "done" the instruction, so move past it. */
-       cpu->regs->eip += insnlen;
-       /* Success! */
-       return 1;
+ static void setup_emulate_insn(struct lg_cpu *cpu)
+ {
+       cpu->pending.trap = 13;
+       copy_from_guest(cpu, cpu->pending.insn, cpu->regs->eip,
+                       sizeof(cpu->pending.insn));
+ }
+ static void setup_iomem_insn(struct lg_cpu *cpu, unsigned long iomem_addr)
+ {
+       cpu->pending.trap = 14;
+       cpu->pending.addr = iomem_addr;
+       copy_from_guest(cpu, cpu->pending.insn, cpu->regs->eip,
+                       sizeof(cpu->pending.insn));
  }
  
  /*H:050 Once we've re-enabled interrupts, we look at why the Guest exited. */
  void lguest_arch_handle_trap(struct lg_cpu *cpu)
  {
+       unsigned long iomem_addr;
        switch (cpu->regs->trapnum) {
        case 13: /* We've intercepted a General Protection Fault. */
-               /*
-                * Check if this was one of those annoying IN or OUT
-                * instructions which we need to emulate.  If so, we just go
-                * back into the Guest after we've done it.
-                */
+               /* Hand to Launcher to emulate those pesky IN and OUT insns */
                if (cpu->regs->errcode == 0) {
-                       if (emulate_insn(cpu))
-                               return;
+                       setup_emulate_insn(cpu);
+                       return;
                }
                break;
        case 14: /* We've intercepted a Page Fault. */
                 * whether kernel or userspace code.
                 */
                if (demand_page(cpu, cpu->arch.last_pagefault,
-                               cpu->regs->errcode))
+                               cpu->regs->errcode, &iomem_addr))
                        return;
  
+               /* Was this an access to memory mapped IO? */
+               if (iomem_addr) {
+                       /* Tell Launcher, let it handle it. */
+                       setup_iomem_insn(cpu, iomem_addr);
+                       return;
+               }
                /*
                 * OK, it's really not there (or not OK): the Guest needs to
                 * know.  We write out the cr2 value so it knows where the
  static void adjust_pge(void *on)
  {
        if (on)
 -              write_cr4(read_cr4() | X86_CR4_PGE);
 +              cr4_set_bits(X86_CR4_PGE);
        else
 -              write_cr4(read_cr4() & ~X86_CR4_PGE);
 +              cr4_clear_bits(X86_CR4_PGE);
  }
  
  /*H:020
diff --combined drivers/net/virtio_net.c
index 110a2cf67244c8946a295c09d7c63b3297f0f0d3,9bc107200709fdf501ad473017ef335aff996c18..f1ff3666f090d886e6b8ecc99bc6ac09d8687ef6
@@@ -490,8 -490,17 +490,8 @@@ static void receive_buf(struct virtnet_
                        skb_shinfo(skb)->gso_type = SKB_GSO_TCPV4;
                        break;
                case VIRTIO_NET_HDR_GSO_UDP:
 -              {
 -                      static bool warned;
 -
 -                      if (!warned) {
 -                              warned = true;
 -                              netdev_warn(dev,
 -                                          "host using disabled UFO feature; please fix it\n");
 -                      }
                        skb_shinfo(skb)->gso_type = SKB_GSO_UDP;
                        break;
 -              }
                case VIRTIO_NET_HDR_GSO_TCPV6:
                        skb_shinfo(skb)->gso_type = SKB_GSO_TCPV6;
                        break;
@@@ -879,8 -888,6 +879,8 @@@ static int xmit_skb(struct send_queue *
                        hdr->hdr.gso_type = VIRTIO_NET_HDR_GSO_TCPV4;
                else if (skb_shinfo(skb)->gso_type & SKB_GSO_TCPV6)
                        hdr->hdr.gso_type = VIRTIO_NET_HDR_GSO_TCPV6;
 +              else if (skb_shinfo(skb)->gso_type & SKB_GSO_UDP)
 +                      hdr->hdr.gso_type = VIRTIO_NET_HDR_GSO_UDP;
                else
                        BUG();
                if (skb_shinfo(skb)->gso_type & SKB_GSO_TCP_ECN)
@@@ -918,9 -925,6 +918,9 @@@ static netdev_tx_t start_xmit(struct sk
        /* Free up any pending old buffers before queueing new ones. */
        free_old_xmit_skbs(sq);
  
 +      /* timestamp packet in software */
 +      skb_tx_timestamp(skb);
 +
        /* Try to transmit */
        err = xmit_skb(sq, skb);
  
@@@ -1372,7 -1376,6 +1372,7 @@@ static const struct ethtool_ops virtnet
        .get_ringparam = virtnet_get_ringparam,
        .set_channels = virtnet_set_channels,
        .get_channels = virtnet_get_channels,
 +      .get_ts_info = ethtool_op_get_ts_info,
  };
  
  #define MIN_MTU 68
@@@ -1710,6 -1713,12 +1710,12 @@@ static int virtnet_probe(struct virtio_
        struct virtnet_info *vi;
        u16 max_queue_pairs;
  
+       if (!vdev->config->get) {
+               dev_err(&vdev->dev, "%s failure: config access disabled\n",
+                       __func__);
+               return -EINVAL;
+       }
        if (!virtnet_validate_features(vdev))
                return -EINVAL;
  
                        dev->features |= NETIF_F_HW_CSUM|NETIF_F_SG|NETIF_F_FRAGLIST;
  
                if (virtio_has_feature(vdev, VIRTIO_NET_F_GSO)) {
 -                      dev->hw_features |= NETIF_F_TSO
 +                      dev->hw_features |= NETIF_F_TSO | NETIF_F_UFO
                                | NETIF_F_TSO_ECN | NETIF_F_TSO6;
                }
                /* Individual feature bits: what can host handle? */
                        dev->hw_features |= NETIF_F_TSO6;
                if (virtio_has_feature(vdev, VIRTIO_NET_F_HOST_ECN))
                        dev->hw_features |= NETIF_F_TSO_ECN;
 +              if (virtio_has_feature(vdev, VIRTIO_NET_F_HOST_UFO))
 +                      dev->hw_features |= NETIF_F_UFO;
 +
 +              dev->features |= NETIF_F_GSO_ROBUST;
  
                if (gso)
 -                      dev->features |= dev->hw_features & NETIF_F_ALL_TSO;
 +                      dev->features |= dev->hw_features & (NETIF_F_ALL_TSO|NETIF_F_UFO);
                /* (!csum && gso) case will be fixed by register_netdev() */
        }
        if (virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_CSUM))
        /* If we can receive ANY GSO packets, we must allocate large ones. */
        if (virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_TSO4) ||
            virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_TSO6) ||
 -          virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_ECN))
 +          virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_ECN) ||
 +          virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_UFO))
                vi->big_packets = true;
  
        if (virtio_has_feature(vdev, VIRTIO_NET_F_MRG_RXBUF))
@@@ -1996,9 -2000,9 +2002,9 @@@ static struct virtio_device_id id_table
  static unsigned int features[] = {
        VIRTIO_NET_F_CSUM, VIRTIO_NET_F_GUEST_CSUM,
        VIRTIO_NET_F_GSO, VIRTIO_NET_F_MAC,
 -      VIRTIO_NET_F_HOST_TSO4, VIRTIO_NET_F_HOST_TSO6,
 +      VIRTIO_NET_F_HOST_TSO4, VIRTIO_NET_F_HOST_UFO, VIRTIO_NET_F_HOST_TSO6,
        VIRTIO_NET_F_HOST_ECN, VIRTIO_NET_F_GUEST_TSO4, VIRTIO_NET_F_GUEST_TSO6,
 -      VIRTIO_NET_F_GUEST_ECN,
 +      VIRTIO_NET_F_GUEST_ECN, VIRTIO_NET_F_GUEST_UFO,
        VIRTIO_NET_F_MRG_RXBUF, VIRTIO_NET_F_STATUS, VIRTIO_NET_F_CTRL_VQ,
        VIRTIO_NET_F_CTRL_RX, VIRTIO_NET_F_CTRL_VLAN,
        VIRTIO_NET_F_GUEST_ANNOUNCE, VIRTIO_NET_F_MQ,