<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/virt/kvm, branch v3.13</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/virt/kvm?h=v3.13</id>
<link rel='self' href='https://git.amat.us/linux/atom/virt/kvm?h=v3.13'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2013-12-12T21:39:33Z</updated>
<entry>
<title>KVM: Improve create VCPU parameter (CVE-2013-4587)</title>
<updated>2013-12-12T21:39:33Z</updated>
<author>
<name>Andy Honig</name>
<email>ahonig@google.com</email>
</author>
<published>2013-11-19T00:09:22Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=338c7dbadd2671189cec7faf64c84d01071b3f96'/>
<id>urn:sha1:338c7dbadd2671189cec7faf64c84d01071b3f96</id>
<content type='text'>
In multiple functions the vcpu_id is used as an offset into a bitfield.  Ag
malicious user could specify a vcpu_id greater than 255 in order to set or
clear bits in kernel memory.  This could be used to elevate priveges in the
kernel.  This patch verifies that the vcpu_id provided is less than 255.
The api documentation already specifies that the vcpu_id must be less than
max_vcpus, but this is currently not checked.

Reported-by: Andrew Honig &lt;ahonig@google.com&gt;
Cc: stable@vger.kernel.org
Signed-off-by: Andrew Honig &lt;ahonig@google.com&gt;
Signed-off-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
</content>
</entry>
<entry>
<title>KVM: kvm_clear_guest_page(): fix empty_zero_page usage</title>
<updated>2013-11-21T09:19:32Z</updated>
<author>
<name>Heiko Carstens</name>
<email>heiko.carstens@de.ibm.com</email>
</author>
<published>2013-11-18T09:35:55Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=8a3caa6d74597c2a083f7c87f866891a0b12540b'/>
<id>urn:sha1:8a3caa6d74597c2a083f7c87f866891a0b12540b</id>
<content type='text'>
Using the address of 'empty_zero_page' as source address in order to
clear a page is wrong. On some architectures empty_zero_page is only the
pointer to the struct page of the empty_zero_page.  Therefore the clear
page operation would copy the contents of a couple of struct pages instead
of clearing a page.  For kvm only arm/arm64 are affected by this bug.

To fix this use the ZERO_PAGE macro instead which will return the struct
page address of the empty_zero_page on all architectures.

Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Signed-off-by: Gleb Natapov &lt;gleb@redhat.com&gt;
</content>
</entry>
<entry>
<title>Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm</title>
<updated>2013-11-15T04:51:36Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2013-11-15T04:51:36Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=f080480488028bcc25357f85e8ae54ccc3bb7173'/>
<id>urn:sha1:f080480488028bcc25357f85e8ae54ccc3bb7173</id>
<content type='text'>
Pull KVM changes from Paolo Bonzini:
 "Here are the 3.13 KVM changes.  There was a lot of work on the PPC
  side: the HV and emulation flavors can now coexist in a single kernel
  is probably the most interesting change from a user point of view.

  On the x86 side there are nested virtualization improvements and a few
  bugfixes.

  ARM got transparent huge page support, improved overcommit, and
  support for big endian guests.

  Finally, there is a new interface to connect KVM with VFIO.  This
  helps with devices that use NoSnoop PCI transactions, letting the
  driver in the guest execute WBINVD instructions.  This includes some
  nVidia cards on Windows, that fail to start without these patches and
  the corresponding userspace changes"

* tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (146 commits)
  kvm, vmx: Fix lazy FPU on nested guest
  arm/arm64: KVM: PSCI: propagate caller endianness to the incoming vcpu
  arm/arm64: KVM: MMIO support for BE guest
  kvm, cpuid: Fix sparse warning
  kvm: Delete prototype for non-existent function kvm_check_iopl
  kvm: Delete prototype for non-existent function complete_pio
  hung_task: add method to reset detector
  pvclock: detect watchdog reset at pvclock read
  kvm: optimize out smp_mb after srcu_read_unlock
  srcu: API for barrier after srcu read unlock
  KVM: remove vm mmap method
  KVM: IOMMU: hva align mapping page size
  KVM: x86: trace cpuid emulation when called from emulator
  KVM: emulator: cleanup decode_register_operand() a bit
  KVM: emulator: check rex prefix inside decode_register()
  KVM: x86: fix emulation of "movzbl %bpl, %eax"
  kvm_host: typo fix
  KVM: x86: emulate SAHF instruction
  MAINTAINERS: add tree for kvm.git
  Documentation/kvm: add a 00-INDEX file
  ...
</content>
</entry>
<entry>
<title>KVM: remove vm mmap method</title>
<updated>2013-11-06T07:28:47Z</updated>
<author>
<name>Gleb Natapov</name>
<email>gleb@redhat.com</email>
</author>
<published>2013-11-05T14:04:18Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=80f5b5e700fa9c58480eafce0d47367bafb70006'/>
<id>urn:sha1:80f5b5e700fa9c58480eafce0d47367bafb70006</id>
<content type='text'>
It was used in conjunction with KVM_SET_MEMORY_REGION ioctl which was
removed by b74a07beed0 in 2010, QEMU stopped using it in 2008, so
it is time to remove the code finally.

Signed-off-by: Gleb Natapov &lt;gleb@redhat.com&gt;
</content>
</entry>
<entry>
<title>KVM: IOMMU: hva align mapping page size</title>
<updated>2013-11-05T07:55:36Z</updated>
<author>
<name>Greg Edwards</name>
<email>gedwards@ddn.com</email>
</author>
<published>2013-11-04T16:08:12Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=27ef63c7e97d1e5dddd85051c03f8d44cc887f34'/>
<id>urn:sha1:27ef63c7e97d1e5dddd85051c03f8d44cc887f34</id>
<content type='text'>
When determining the page size we could use to map with the IOMMU, the
page size should also be aligned with the hva, not just the gfn.  The
gfn may not reflect the real alignment within the hugetlbfs file.

Most of the time, this works fine.  However, if the hugetlbfs file is
backed by non-contiguous huge pages, a multi-huge page memslot starts at
an unaligned offset within the hugetlbfs file, and the gfn is aligned
with respect to the huge page size, kvm_host_page_size() will return the
huge page size and we will use that to map with the IOMMU.

When we later unpin that same memslot, the IOMMU returns the unmap size
as the huge page size, and we happily unpin that many pfns in
monotonically increasing order, not realizing we are spanning
non-contiguous huge pages and partially unpin the wrong huge page.

Ensure the IOMMU mapping page size is aligned with the hva corresponding
to the gfn, which does reflect the alignment within the hugetlbfs file.

Reviewed-by: Marcelo Tosatti &lt;mtosatti@redhat.com&gt;
Signed-off-by: Greg Edwards &lt;gedwards@ddn.com&gt;
Cc: stable@vger.kernel.org
Signed-off-by: Gleb Natapov &lt;gleb@redhat.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'kvm-ppc-queue' of git://github.com/agraf/linux-2.6 into queue</title>
<updated>2013-11-04T08:20:57Z</updated>
<author>
<name>Gleb Natapov</name>
<email>gleb@redhat.com</email>
</author>
<published>2013-11-04T08:20:57Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=95f328d3ad1a8e4e3175a18546fb35c495e31130'/>
<id>urn:sha1:95f328d3ad1a8e4e3175a18546fb35c495e31130</id>
<content type='text'>
Conflicts:
	arch/powerpc/include/asm/processor.h
</content>
</entry>
<entry>
<title>kvm: Create non-coherent DMA registeration</title>
<updated>2013-10-30T18:02:23Z</updated>
<author>
<name>Alex Williamson</name>
<email>alex.williamson@redhat.com</email>
</author>
<published>2013-10-30T17:02:30Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=e0f0bbc527f6e9c0261f1d16b2a0b47612b7f235'/>
<id>urn:sha1:e0f0bbc527f6e9c0261f1d16b2a0b47612b7f235</id>
<content type='text'>
We currently use some ad-hoc arch variables tied to legacy KVM device
assignment to manage emulation of instructions that depend on whether
non-coherent DMA is present.  Create an interface for this, adapting
legacy KVM device assignment and adding VFIO via the KVM-VFIO device.
For now we assume that non-coherent DMA is possible any time we have a
VFIO group.  Eventually an interface can be developed as part of the
VFIO external user interface to query the coherency of a group.

Signed-off-by: Alex Williamson &lt;alex.williamson@redhat.com&gt;
Signed-off-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
</content>
</entry>
<entry>
<title>kvm/x86: Convert iommu_flags to iommu_noncoherent</title>
<updated>2013-10-30T18:02:13Z</updated>
<author>
<name>Alex Williamson</name>
<email>alex.williamson@redhat.com</email>
</author>
<published>2013-10-30T17:02:23Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=d96eb2c6f480769bff32054e78b964860dae4d56'/>
<id>urn:sha1:d96eb2c6f480769bff32054e78b964860dae4d56</id>
<content type='text'>
Default to operating in coherent mode.  This simplifies the logic when
we switch to a model of registering and unregistering noncoherent I/O
with KVM.

Signed-off-by: Alex Williamson &lt;alex.williamson@redhat.com&gt;
Signed-off-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
</content>
</entry>
<entry>
<title>kvm: Add VFIO device</title>
<updated>2013-10-30T18:02:03Z</updated>
<author>
<name>Alex Williamson</name>
<email>alex.williamson@redhat.com</email>
</author>
<published>2013-10-30T17:02:17Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=ec53500fae421e07c5d035918ca454a429732ef4'/>
<id>urn:sha1:ec53500fae421e07c5d035918ca454a429732ef4</id>
<content type='text'>
So far we've succeeded at making KVM and VFIO mostly unaware of each
other, but areas are cropping up where a connection beyond eventfds
and irqfds needs to be made.  This patch introduces a KVM-VFIO device
that is meant to be a gateway for such interaction.  The user creates
the device and can add and remove VFIO groups to it via file
descriptors.  When a group is added, KVM verifies the group is valid
and gets a reference to it via the VFIO external user interface.

Signed-off-by: Alex Williamson &lt;alex.williamson@redhat.com&gt;
Signed-off-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
</content>
</entry>
<entry>
<title>KVM: use a more sensible error number when debugfs directory creation fails</title>
<updated>2013-10-30T11:15:34Z</updated>
<author>
<name>Paolo Bonzini</name>
<email>pbonzini@redhat.com</email>
</author>
<published>2013-10-30T11:12:13Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=0c8eb04a6241da28deb108181213b791c378123b'/>
<id>urn:sha1:0c8eb04a6241da28deb108181213b791c378123b</id>
<content type='text'>
I don't know if this was due to cut and paste, or somebody was really
using a D20 to pick the error code for kvm_init_debugfs as suggested by
Linus (EFAULT is 14, so the possibility cannot be entirely ruled out).

In any case, this patch fixes it.

Reported-by: Tim Gardner &lt;tim.gardner@canonical.com&gt;
Signed-off-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
</content>
</entry>
</feed>
