11 May, 2015

1 commit

  • KVM may turn a user page to a kernel page when kernel writes a readonly
    user page if CR0.WP = 1. This shadow page entry will be reused after
    SMAP is enabled so that kernel is allowed to access this user page

    Fix it by setting SMAP && !CR0.WP into shadow page's role and reset mmu
    once CR4.SMAP is updated

    Signed-off-by: Xiao Guangrong
    Cc: stable@vger.kernel.org
    Signed-off-by: Paolo Bonzini

    Xiao Guangrong
     

21 Apr, 2015

1 commit

  • Some PowerNV systems include a hardware random-number generator.
    This HWRNG is present on POWER7+ and POWER8 chips and is capable of
    generating one 64-bit random number every microsecond. The random
    numbers are produced by sampling a set of 64 unstable high-frequency
    oscillators and are almost completely entropic.

    PAPR defines an H_RANDOM hypercall which guests can use to obtain one
    64-bit random sample from the HWRNG. This adds a real-mode
    implementation of the H_RANDOM hypercall. This hypercall was
    implemented in real mode because the latency of reading the HWRNG is
    generally small compared to the latency of a guest exit and entry for
    all the threads in the same virtual core.

    Userspace can detect the presence of the HWRNG and the H_RANDOM
    implementation by querying the KVM_CAP_PPC_HWRNG capability. The
    H_RANDOM hypercall implementation will only be invoked when the guest
    does an H_RANDOM hypercall if userspace first enables the in-kernel
    H_RANDOM implementation using the KVM_CAP_PPC_ENABLE_HCALL capability.

    Signed-off-by: Michael Ellerman
    Signed-off-by: Paul Mackerras
    Signed-off-by: Alexander Graf

    Michael Ellerman
     

08 Apr, 2015

2 commits


01 Apr, 2015

3 commits

  • This patch adds support to migrate vcpu interrupts. Two new vcpu ioctls
    are added which get/set the complete status of pending interrupts in one
    go. The ioctls are marked as available with the new capability
    KVM_CAP_S390_IRQ_STATE.

    We can not use a ONEREG, as the number of pending local interrupts is not
    constant and depends on the number of CPUs.

    To retrieve the interrupt state we add an ioctl KVM_S390_GET_IRQ_STATE.
    Its input parameter is a pointer to a struct kvm_s390_irq_state which
    has a buffer and length. For all currently pending interrupts, we copy
    a struct kvm_s390_irq into the buffer and pass it to userspace.

    To store interrupt state into a buffer provided by userspace, we add an
    ioctl KVM_S390_SET_IRQ_STATE. It passes a struct kvm_s390_irq_state into
    the kernel and injects all interrupts contained in the buffer.

    Signed-off-by: Jens Freimann
    Signed-off-by: Christian Borntraeger
    Acked-by: Cornelia Huck

    Jens Freimann
     
  • We have introduced struct kvm_s390_irq a while ago which allows to
    inject all kinds of interrupts as defined in the Principles of
    Operation.
    Add ioctl to inject interrupts with the extended struct kvm_s390_irq

    Signed-off-by: Jens Freimann
    Signed-off-by: Christian Borntraeger
    Acked-by: Cornelia Huck

    Jens Freimann
     
  • This fixes a bug introduced with commit c05c4186bbe4 ("KVM: s390:
    add floating irq controller").

    get_all_floating_irqs() does copy_to_user() while holding
    a spin lock. Let's fix this by filling a temporary buffer
    first and copy it to userspace after giving up the lock.

    Cc: # 3.18+: 69a8d4562638 KVM: s390: no need to hold...

    Reviewed-by: David Hildenbrand
    Signed-off-by: Jens Freimann
    Signed-off-by: Christian Borntraeger
    Acked-by: Cornelia Huck

    Jens Freimann
     

28 Mar, 2015

6 commits

  • Now that the code is in place for KVM to support MIPS SIMD Architecutre
    (MSA) in MIPS guests, wire up the new KVM_CAP_MIPS_MSA capability.

    For backwards compatibility, the capability must be explicitly enabled
    in order to detect or make use of MSA from the guest.

    The capability is not supported if the hardware supports MSA vector
    partitioning, since the extra support cannot be tested yet and it
    extends the state that the userland program would have to save.

    Signed-off-by: James Hogan
    Acked-by: Paolo Bonzini
    Cc: Ralf Baechle
    Cc: Gleb Natapov
    Cc: Jonathan Corbet
    Cc: linux-mips@linux-mips.org
    Cc: kvm@vger.kernel.org
    Cc: linux-api@vger.kernel.org
    Cc: linux-doc@vger.kernel.org

    James Hogan
     
  • Add KVM register numbers for the MIPS SIMD Architecture (MSA) registers,
    and implement access to them with the KVM_GET_ONE_REG / KVM_SET_ONE_REG
    ioctls when the MSA capability is enabled (exposed in a later patch) and
    present in the guest according to its Config3.MSAP bit.

    The MSA vector registers use the same register numbers as the FPU
    registers except with a different size (128bits). Since MSA depends on
    Status.FR=1, these registers are inaccessible when Status.FR=0. These
    registers are returned as a single native endian 128bit value, rather
    than least significant half first with each 64-bit half native endian as
    the kernel uses internally.

    Signed-off-by: James Hogan
    Cc: Paolo Bonzini
    Cc: Paul Burton
    Cc: Ralf Baechle
    Cc: Gleb Natapov
    Cc: Jonathan Corbet
    Cc: linux-mips@linux-mips.org
    Cc: kvm@vger.kernel.org
    Cc: linux-api@vger.kernel.org
    Cc: linux-doc@vger.kernel.org

    James Hogan
     
  • Now that the code is in place for KVM to support FPU in MIPS KVM guests,
    wire up the new KVM_CAP_MIPS_FPU capability.

    For backwards compatibility, the capability must be explicitly enabled
    in order to detect or make use of the FPU from the guest.

    Signed-off-by: James Hogan
    Cc: Paolo Bonzini
    Cc: Ralf Baechle
    Cc: Gleb Natapov
    Cc: Jonathan Corbet
    Cc: linux-mips@linux-mips.org
    Cc: kvm@vger.kernel.org
    Cc: linux-api@vger.kernel.org
    Cc: linux-doc@vger.kernel.org

    James Hogan
     
  • Add KVM register numbers for the MIPS FPU registers, and implement
    access to them with the KVM_GET_ONE_REG / KVM_SET_ONE_REG ioctls when
    the FPU capability is enabled (exposed in a later patch) and present in
    the guest according to its Config1.FP bit.

    The registers are accessible in the current mode of the guest, with each
    sized access showing what the guest would see with an equivalent access,
    and like the architecture they may become UNPREDICTABLE if the FR mode
    is changed. When FR=0, odd doubles are inaccessible as they do not exist
    in that mode.

    Signed-off-by: James Hogan
    Acked-by: Paolo Bonzini
    Cc: Paul Burton
    Cc: Ralf Baechle
    Cc: Gleb Natapov
    Cc: Jonathan Corbet
    Cc: linux-mips@linux-mips.org
    Cc: kvm@vger.kernel.org
    Cc: linux-api@vger.kernel.org
    Cc: linux-doc@vger.kernel.org

    James Hogan
     
  • Add Config4 and Config5 co-processor 0 registers, and add capability to
    write the Config1, Config3, Config4, and Config5 registers using the KVM
    API.

    Only supported bits can be written, to minimise the chances of the guest
    being given a configuration from e.g. QEMU that is inconsistent with
    that being emulated, and as such the handling is in trap_emul.c as it
    may need to be different for VZ. Currently the only modification
    permitted is to make Config4 and Config5 exist via the M bits, but other
    bits will be added for FPU and MSA support in future patches.

    Care should be taken by userland not to change bits without fully
    handling the possible extra state that may then exist and which the
    guest may begin to use and depend on.

    Signed-off-by: James Hogan
    Cc: Paolo Bonzini
    Cc: Ralf Baechle
    Cc: Gleb Natapov
    Cc: linux-mips@linux-mips.org
    Cc: kvm@vger.kernel.org

    James Hogan
     
  • Implement access to the guest Processor Identification CP0 register
    using the KVM_GET_ONE_REG and KVM_SET_ONE_REG ioctls. This allows the
    owning process to modify and read back the value that is exposed to the
    guest in this register.

    Signed-off-by: James Hogan
    Cc: Paolo Bonzini
    Cc: Ralf Baechle
    Cc: Gleb Natapov
    Cc: linux-mips@linux-mips.org
    Cc: kvm@vger.kernel.org

    James Hogan
     

17 Mar, 2015

3 commits

  • Provide the KVM_S390_GET_SKEYS and KVM_S390_SET_SKEYS ioctl which can be used
    to get/set guest storage keys. This functionality is needed for live migration
    of s390 guests that use storage keys.

    Signed-off-by: Jason J. Herne
    Reviewed-by: David Hildenbrand
    Signed-off-by: Christian Borntraeger

    Jason J. Herne
     
  • The Store System Information (STSI) instruction currently collects all
    information it relays to the caller in the kernel. Some information,
    however, is only available in user space. An example of this is the
    guest name: The kernel always sets "KVMGuest", but user space knows the
    actual guest name.

    This patch introduces a new exit, KVM_EXIT_S390_STSI, guarded by a
    capability that can be enabled by user space if it wants to be able to
    insert such data. User space will be provided with the target buffer
    and the requested STSI function code.

    Reviewed-by: Eric Farman
    Reviewed-by: Christian Borntraeger
    Signed-off-by: Ekaterina Tumanova
    Signed-off-by: Christian Borntraeger

    Ekaterina Tumanova
     
  • On s390, we've got to make sure to hold the IPTE lock while accessing
    logical memory. So let's add an ioctl for reading and writing logical
    memory to provide this feature for userspace, too.
    The maximum transfer size of this call is limited to 64kB to prevent
    that the guest can trigger huge copy_from/to_user transfers. QEMU
    currently only requests up to one or two pages so far, so 16*4kB seems
    to be a reasonable limit here.

    Signed-off-by: Thomas Huth
    Signed-off-by: Christian Borntraeger

    Thomas Huth
     

14 Mar, 2015

1 commit

  • To cleanly restore an SMP VM we need to ensure that the current pause
    state of each vcpu is correctly recorded. Things could get confused if
    the CPU starts running after migration restore completes when it was
    paused before it state was captured.

    We use the existing KVM_GET/SET_MP_STATE ioctl to do this. The arm/arm64
    interface is a lot simpler as the only valid states are
    KVM_MP_STATE_RUNNABLE and KVM_MP_STATE_STOPPED.

    Signed-off-by: Alex Bennée
    Signed-off-by: Christoffer Dall

    Alex Bennée
     

12 Mar, 2015

1 commit

  • This patch enables irqfd on arm/arm64.

    Both irqfd and resamplefd are supported. Injection is implemented
    in vgic.c without routing.

    This patch enables CONFIG_HAVE_KVM_EVENTFD and CONFIG_HAVE_KVM_IRQFD.

    KVM_CAP_IRQFD is now advertised. KVM_CAP_IRQFD_RESAMPLE capability
    automatically is advertised as soon as CONFIG_HAVE_KVM_IRQFD is set.

    Irqfd injection is restricted to SPI. The rationale behind not
    supporting PPI irqfd injection is that any device using a PPI would
    be a private-to-the-CPU device (timer for instance), so its state
    would have to be context-switched along with the VCPU and would
    require in-kernel wiring anyhow. It is not a relevant use case for
    irqfds.

    Signed-off-by: Eric Auger
    Reviewed-by: Christoffer Dall
    Acked-by: Marc Zyngier
    Signed-off-by: Christoffer Dall

    Eric Auger
     

06 Mar, 2015

1 commit

  • Define and allocate space for both the host and guest views of
    the vector registers for a given vcpu. The 32 vector registers
    occupy 128 bits each (512 bytes total), but architecturally are
    paired with 512 additional bytes of reserved space for future
    expansion.

    The kvm_sync_regs structs containing the registers are union'ed
    with 1024 bytes of padding in the common kvm_run struct. The
    addition of 1024 bytes of new register information clearly exceeds
    the existing union, so an expansion of that padding is required.

    When changing environments, we need to appropriately save and
    restore the vector registers viewed by both the host and guest,
    into and out of the sync_regs space.

    The floating point registers overlay the upper half of vector
    registers 0-15, so there's a bit of data duplication here that
    needs to be carefully avoided.

    Signed-off-by: Eric Farman
    Reviewed-by: Thomas Huth
    Acked-by: Christian Borntraeger
    Signed-off-by: Christian Borntraeger

    Eric Farman
     

19 Feb, 2015

1 commit

  • 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.
    ...

    Linus Torvalds
     

13 Feb, 2015

1 commit

  • The general documentation we have for pv_ops is currenty present
    on the IA64 docs, but since this documentation covers IA64 xen
    enablement and IA64 Xen support got ripped out a while ago
    through commit d52eefb47 present since v3.14-rc1 lets just
    simplify, generalize and move the pv_ops documentation to a
    shared place.

    Cc: Isaku Yamahata
    Cc: Jeremy Fitzhardinge
    Cc: Chris Wright
    Cc: Alok Kataria
    Cc: Rusty Russell
    Cc: virtualization@lists.linux-foundation.org
    Cc: Tony Luck
    Cc: Fenghua Yu
    Cc: Boris Ostrovsky
    Cc: xen-devel@lists.xenproject.org
    Cc: kvm@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Luis R. Rodriguez
    Signed-off-by: Rusty Russell

    Luis R. Rodriguez
     

09 Feb, 2015

1 commit

  • This patch enables cpu model support in kvm/s390 via the vm attribute
    interface.

    During KVM initialization, the host properties cpuid, IBC value and the
    facility list are stored in the architecture specific cpu model structure.

    During vcpu setup, these properties are taken to initialize the related SIE
    state. This mechanism allows to adjust the properties from user space and thus
    to implement different selectable cpu models.

    This patch uses the IBC functionality to block instructions that have not
    been implemented at the requested CPU type and GA level compared to the
    full host capability.

    Userspace has to initialize the cpu model before vcpu creation. A cpu model
    change of running vcpus is not possible.

    Signed-off-by: Michael Mueller
    Reviewed-by: Cornelia Huck
    Reviewed-by: David Hildenbrand
    Signed-off-by: Christian Borntraeger

    Michael Mueller
     

23 Jan, 2015

4 commits

  • …git/kvms390/linux into kvm-next

    KVM: s390: fixes and features for kvm/next (3.20)

    1. Generic
    - sparse warning (make function static)
    - optimize locking
    - bugfixes for interrupt injection
    - fix MVPG addressing modes

    2. hrtimer/wakeup fun
    A recent change can cause KVM hangs if adjtime is used in the host.
    The hrtimer might wake up too early or too late. Too early is fatal
    as vcpu_block will see that the wakeup condition is not met and
    sleep again. This CPU might never wake up again.
    This series addresses this problem. adjclock slowing down the host
    clock will result in too late wakeups. This will require more work.
    In addition to that we also change the hrtimer from REALTIME to
    MONOTONIC to avoid similar problems with timedatectl set-time.

    3. sigp rework
    We will move all "slow" sigps to QEMU (protected with a capability that
    can be enabled) to avoid several races between concurrent SIGP orders.

    4. Optimize the shadow page table
    Provide an interface to announce the maximum guest size. The kernel
    will use that to make the pagetable 2,3,4 (or theoretically) 5 levels.

    5. Provide an interface to set the guest TOD
    We now use two vm attributes instead of two oneregs, as oneregs are
    vcpu ioctl and we don't want to call them from other threads.

    6. Protected key functions
    The real HMC allows to enable/disable protected key CPACF functions.
    Lets provide an implementation + an interface for QEMU to activate
    this the protected key instructions.

    Paolo Bonzini
     
  • Most SIGP orders are handled partially in kernel and partially in
    user space. In order to:
    - Get a correct SIGP SET PREFIX handler that informs user space
    - Avoid race conditions between concurrently executed SIGP orders
    - Serialize SIGP orders per VCPU

    We need to handle all "slow" SIGP orders in user space. The remaining
    ones to be handled completely in kernel are:
    - SENSE
    - SENSE RUNNING
    - EXTERNAL CALL
    - EMERGENCY SIGNAL
    - CONDITIONAL EMERGENCY SIGNAL
    According to the PoP, they have to be fast. They can be executed
    without conflicting to the actions of other pending/concurrently
    executing orders (e.g. STOP vs. START).

    This patch introduces a new capability that will - when enabled -
    forward all but the mentioned SIGP orders to user space. The
    instruction counters in the kernel are still updated.

    Reviewed-by: Cornelia Huck
    Signed-off-by: David Hildenbrand
    Signed-off-by: Christian Borntraeger

    David Hildenbrand
     
  • In order to get rid of the action_flags and to properly migrate pending SIGP
    STOP irqs triggered e.g. by SIGP STOP AND STORE STATUS, we need to remember
    whether to store the status when stopping.

    For this reason, a new parameter (flags) for the SIGP STOP irq is introduced.
    These flags further define details of the requested STOP and can be easily
    migrated.

    Reviewed-by: Thomas Huth
    Acked-by: Cornelia Huck
    Signed-off-by: David Hildenbrand
    Signed-off-by: Christian Borntraeger

    David Hildenbrand
     
  • With commit c6c956b80bdf ("KVM: s390/mm: support gmap page tables with less
    than 5 levels") we are able to define a limit for the guest memory size.

    As we round up the guest size in respect to the levels of page tables
    we get to guest limits of: 2048 MB, 4096 GB, 8192 TB and 16384 PB.
    We currently limit the guest size to 16 TB, which means we end up
    creating a page table structure supporting guest sizes up to 8192 TB.

    This patch introduces an interface that allows userspace to tune
    this limit. This may bring performance improvements for small guests.

    Signed-off-by: Dominik Dingel
    Acked-by: Cornelia Huck
    Signed-off-by: Christian Borntraeger

    Dominik Dingel
     

21 Jan, 2015

2 commits

  • Although the GIC architecture requires us to map the MMIO regions
    only at page aligned addresses, we currently do not enforce this from
    the kernel side.
    Restrict any vGICv2 regions to be 4K aligned and any GICv3 regions
    to be 64K aligned. Document this requirement.

    Signed-off-by: Andre Przywara
    Signed-off-by: Christoffer Dall

    Andre Przywara
     
  • With all of the GICv3 code in place now we allow userland to ask the
    kernel for using a virtual GICv3 in the guest.
    Also we provide the necessary support for guests setting the memory
    addresses for the virtual distributor and redistributors.
    This requires some userland code to make use of that feature and
    explicitly ask for a virtual GICv3.
    Document that KVM_CREATE_IRQCHIP only works for GICv2, but is
    considered legacy and using KVM_CREATE_DEVICE is preferred.

    Signed-off-by: Andre Przywara
    Signed-off-by: Christoffer Dall

    Andre Przywara
     

11 Jan, 2015

1 commit

  • Since the advent of VGIC dynamic initialization, this latter is
    initialized quite late on the first vcpu run or "on-demand", when
    injecting an IRQ or when the guest sets its registers.

    This initialization could be initiated explicitly much earlier
    by the users-space, as soon as it has provided the requested
    dimensioning parameters.

    This patch adds a new entry to the VGIC KVM device that allows
    the user to manually request the VGIC init:
    - a new KVM_DEV_ARM_VGIC_GRP_CTRL group is introduced.
    - Its first attribute is KVM_DEV_ARM_VGIC_CTRL_INIT

    The rationale behind introducing a group is to be able to add other
    controls later on, if needed.

    Signed-off-by: Eric Auger
    Signed-off-by: Christoffer Dall

    Eric Auger
     

15 Dec, 2014

1 commit


13 Dec, 2014

3 commits

  • When a vcpu calls SYSTEM_OFF or SYSTEM_RESET with PSCI v0.2, the vcpus
    should really be turned off for the VM adhering to the suggestions in
    the PSCI spec, and it's the sane thing to do.

    Also, clarify the behavior and expectations for exits to user space with
    the KVM_EXIT_SYSTEM_EVENT case.

    Acked-by: Marc Zyngier
    Signed-off-by: Christoffer Dall

    Christoffer Dall
     
  • It is not clear that this ioctl can be called multiple times for a given
    vcpu. Userspace already does this, so clarify the ABI.

    Also specify that userspace is expected to always make secondary and
    subsequent calls to the ioctl with the same parameters for the VCPU as
    the initial call (which userspace also already does).

    Add code to check that userspace doesn't violate that ABI in the future,
    and move the kvm_vcpu_set_target() function which is currently
    duplicated between the 32-bit and 64-bit versions in guest.c to a common
    static function in arm.c, shared between both architectures.

    Acked-by: Marc Zyngier
    Signed-off-by: Christoffer Dall

    Christoffer Dall
     
  • The implementation of KVM_ARM_VCPU_INIT is currently not doing what
    userspace expects, namely making sure that a vcpu which may have been
    turned off using PSCI is returned to its initial state, which would be
    powered on if userspace does not set the KVM_ARM_VCPU_POWER_OFF flag.

    Implement the expected functionality and clarify the ABI.

    Acked-by: Marc Zyngier
    Signed-off-by: Christoffer Dall

    Christoffer Dall
     

20 Nov, 2014

1 commit


07 Nov, 2014

2 commits


03 Nov, 2014

2 commits

  • No kernel ever reported KVM_CAP_DEVICE_MSIX, KVM_CAP_DEVICE_MSI,
    KVM_CAP_DEVICE_ASSIGNMENT, KVM_CAP_DEVICE_DEASSIGNMENT.

    This makes the documentation wrong, and no application ever
    written to use these capabilities has a chance to work correctly.
    The only way to detect support is to try, and test errno for ENOTTY.
    That's unfortunate, but we can't fix the past.

    Document the actual semantics, and drop the definitions from
    the exported header to make it easier for application
    developers to note and fix the bug.

    Signed-off-by: Michael S. Tsirkin
    Signed-off-by: Paolo Bonzini

    Michael S. Tsirkin
     
  • When commit 6adba5274206 (KVM: Let host know whether the guest can
    handle async PF in non-userspace context.) is introduced, actually
    bit 2 still is reserved and should be zero. Instead, bit 1 is 1 to
    indicate if asynchronous page faults can be injected when vcpu is
    in cpl == 0, and also please see this,

    in the file kvm_para.h, #define KVM_ASYNC_PF_SEND_ALWAYS (1 << 1).

    Signed-off-by: Tiejun Chen
    Signed-off-by: Paolo Bonzini

    Tiejun Chen
     

27 Sep, 2014

1 commit

  • …marm/kvmarm into kvm-next

    Changes for KVM for arm/arm64 for 3.18

    This includes a bunch of changes:
    - Support read-only memory slots on arm/arm64
    - Various changes to fix Sparse warnings
    - Correctly detect write vs. read Stage-2 faults
    - Various VGIC cleanups and fixes
    - Dynamic VGIC data strcuture sizing
    - Fix SGI set_clear_pend offset bug
    - Fix VTTBR_BADDR Mask
    - Correctly report the FSC on Stage-2 faults

    Conflicts:
    virt/kvm/eventfd.c
    [duplicate, different patch where the kvm-arm version broke x86.
    The kvm tree instead has the right one]

    Paolo Bonzini
     

22 Sep, 2014

1 commit