<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/virt, branch v5.5</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/
</subtitle>
<id>https://git.shady.money/linux/atom?h=v5.5</id>
<link rel='self' href='https://git.shady.money/linux/atom?h=v5.5'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/'/>
<updated>2019-12-22T12:18:15Z</updated>
<entry>
<title>Merge tag 'kvm-ppc-fixes-5.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc into kvm-master</title>
<updated>2019-12-22T12:18:15Z</updated>
<author>
<name>Paolo Bonzini</name>
<email>pbonzini@redhat.com</email>
</author>
<published>2019-12-22T12:18:15Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=d68321dec1b2234fb32f423e32c3af5915eae36c'/>
<id>urn:sha1:d68321dec1b2234fb32f423e32c3af5915eae36c</id>
<content type='text'>
PPC KVM fix for 5.5

- Fix a bug where we try to do an ultracall on a system without an
  ultravisor.
</content>
</entry>
<entry>
<title>Merge tag 'kvmarm-fixes-5.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into kvm-master</title>
<updated>2019-12-18T16:47:38Z</updated>
<author>
<name>Paolo Bonzini</name>
<email>pbonzini@redhat.com</email>
</author>
<published>2019-12-18T16:47:38Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=f5d5f5fae4605b66fd17e3c46feb14c6c3372e5c'/>
<id>urn:sha1:f5d5f5fae4605b66fd17e3c46feb14c6c3372e5c</id>
<content type='text'>
KVM/arm fixes for .5.5, take #1

- Fix uninitialised sysreg accessor
- Fix handling of demand-paged device mappings
- Stop spamming the console on IMPDEF sysregs
- Relax mappings of writable memslots
- Assorted cleanups
</content>
</entry>
<entry>
<title>KVM: arm/arm64: Properly handle faulting of device mappings</title>
<updated>2019-12-12T16:22:40Z</updated>
<author>
<name>Marc Zyngier</name>
<email>maz@kernel.org</email>
</author>
<published>2019-12-11T16:56:48Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=6d674e28f642e3ff676fbae2d8d1b872814d32b6'/>
<id>urn:sha1:6d674e28f642e3ff676fbae2d8d1b872814d32b6</id>
<content type='text'>
A device mapping is normally always mapped at Stage-2, since there
is very little gain in having it faulted in.

Nonetheless, it is possible to end-up in a situation where the device
mapping has been removed from Stage-2 (userspace munmaped the VFIO
region, and the MMU notifier did its job), but present in a userspace
mapping (userpace has mapped it back at the same address). In such
a situation, the device mapping will be demand-paged as the guest
performs memory accesses.

This requires to be careful when dealing with mapping size, cache
management, and to handle potential execution of a device mapping.

Reported-by: Alexandru Elisei &lt;alexandru.elisei@arm.com&gt;
Signed-off-by: Marc Zyngier &lt;maz@kernel.org&gt;
Tested-by: Alexandru Elisei &lt;alexandru.elisei@arm.com&gt;
Reviewed-by: James Morse &lt;james.morse@arm.com&gt;
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20191211165651.7889-2-maz@kernel.org
</content>
</entry>
<entry>
<title>KVM: arm/arm64: Remove excessive permission check in kvm_arch_prepare_memory_region</title>
<updated>2019-12-06T19:37:48Z</updated>
<author>
<name>Jia He</name>
<email>justin.he@arm.com</email>
</author>
<published>2019-12-06T02:08:02Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=97418e968b01ba8e3ad41c38b42106c48bc19544'/>
<id>urn:sha1:97418e968b01ba8e3ad41c38b42106c48bc19544</id>
<content type='text'>
In kvm_arch_prepare_memory_region, arm kvm regards the memory region as
writable if the flag has no KVM_MEM_READONLY, and the vm is readonly if
!VM_WRITE.

But there is common usage for setting kvm memory region as follows:
e.g. qemu side (see the PROT_NONE flag)
1. mmap(NULL, size, PROT_NONE, MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);
   memory_region_init_ram_ptr()
2. re mmap the above area with read/write authority.

Such example is used in virtio-fs qemu codes which hasn't been upstreamed
[1]. But seems we can't forbid this example.

Without this patch, it will cause an EPERM during kvm_set_memory_region()
and cause qemu boot crash.

As told by Ard, "the underlying assumption is incorrect, i.e., that the
value of vm_flags at this point in time defines how the VMA is used
during its lifetime. There may be other cases where a VMA is created
with VM_READ vm_flags that are changed to VM_READ|VM_WRITE later, and
we are currently rejecting this use case as well."

[1] https://gitlab.com/virtio-fs/qemu/blob/5a356e/hw/virtio/vhost-user-fs.c#L488

Suggested-by: Ard Biesheuvel &lt;ard.biesheuvel@linaro.org&gt;
Signed-off-by: Jia He &lt;justin.he@arm.com&gt;
Signed-off-by: Marc Zyngier &lt;maz@kernel.org&gt;
Reviewed-by: Christoffer Dall &lt;christoffer.dall@arm.com&gt;
Link: https://lore.kernel.org/r/20191206020802.196108-1-justin.he@arm.com
</content>
</entry>
<entry>
<title>KVM: arm/arm64: vgic: Use wrapper function to lock/unlock all vcpus in kvm_vgic_create()</title>
<updated>2019-12-06T11:41:38Z</updated>
<author>
<name>Miaohe Lin</name>
<email>linmiaohe@huawei.com</email>
</author>
<published>2019-11-30T02:45:18Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=72a610f32e1f1664803218ec654a8e3b8fb2081a'/>
<id>urn:sha1:72a610f32e1f1664803218ec654a8e3b8fb2081a</id>
<content type='text'>
Use wrapper function lock_all_vcpus()/unlock_all_vcpus()
in kvm_vgic_create() to remove duplicated code dealing
with locking and unlocking all vcpus in a vm.

Signed-off-by: Miaohe Lin &lt;linmiaohe@huawei.com&gt;
Signed-off-by: Marc Zyngier &lt;maz@kernel.org&gt;
Reviewed-by: Eric Auger &lt;eric.auger@redhat.com&gt;
Reviewed-by: Steven Price &lt;steven.price@arm.com&gt;
Link: https://lore.kernel.org/r/1575081918-11401-1-git-send-email-linmiaohe@huawei.com
</content>
</entry>
<entry>
<title>KVM: arm/arm64: vgic: Fix potential double free dist-&gt;spis in __kvm_vgic_destroy()</title>
<updated>2019-12-06T11:41:29Z</updated>
<author>
<name>Miaohe Lin</name>
<email>linmiaohe@huawei.com</email>
</author>
<published>2019-11-28T06:38:48Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=0bda9498dd45280e334bfe88b815ebf519602cc3'/>
<id>urn:sha1:0bda9498dd45280e334bfe88b815ebf519602cc3</id>
<content type='text'>
In kvm_vgic_dist_init() called from kvm_vgic_map_resources(), if
dist-&gt;vgic_model is invalid, dist-&gt;spis will be freed without set
dist-&gt;spis = NULL. And in vgicv2 resources clean up path,
__kvm_vgic_destroy() will be called to free allocated resources.
And dist-&gt;spis will be freed again in clean up chain because we
forget to set dist-&gt;spis = NULL in kvm_vgic_dist_init() failed
path. So double free would happen.

Signed-off-by: Miaohe Lin &lt;linmiaohe@huawei.com&gt;
Signed-off-by: Marc Zyngier &lt;maz@kernel.org&gt;
Reviewed-by: Eric Auger &lt;eric.auger@redhat.com&gt;
Link: https://lore.kernel.org/r/1574923128-19956-1-git-send-email-linmiaohe@huawei.com
</content>
</entry>
<entry>
<title>KVM: arm/arm64: Get rid of unused arg in cpu_init_hyp_mode()</title>
<updated>2019-12-06T11:41:18Z</updated>
<author>
<name>Miaohe Lin</name>
<email>linmiaohe@huawei.com</email>
</author>
<published>2019-11-21T07:15:59Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=7e0befd521b6d40af1d08fcdb29d4dbf30236624'/>
<id>urn:sha1:7e0befd521b6d40af1d08fcdb29d4dbf30236624</id>
<content type='text'>
As arg dummy is not really needed, there's no need to pass
NULL when calling cpu_init_hyp_mode(). So clean it up.

Fixes: 67f691976662 ("arm64: kvm: allows kvm cpu hotplug")
Reviewed-by: Steven Price &lt;steven.price@arm.com&gt;
Signed-off-by: Miaohe Lin &lt;linmiaohe@huawei.com&gt;
Signed-off-by: Marc Zyngier &lt;maz@kernel.org&gt;
Link: https://lore.kernel.org/r/1574320559-5662-1-git-send-email-linmiaohe@huawei.com
</content>
</entry>
<entry>
<title>KVM: Fix jump label out_free_* in kvm_init()</title>
<updated>2019-11-23T10:29:17Z</updated>
<author>
<name>Miaohe Lin</name>
<email>linmiaohe@huawei.com</email>
</author>
<published>2019-11-23T02:45:50Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=faf0be22167486feb1ee386f0e819a336e829d0a'/>
<id>urn:sha1:faf0be22167486feb1ee386f0e819a336e829d0a</id>
<content type='text'>
The jump label out_free_1 and out_free_2 deal with
the same stuff, so git rid of one and rename the
label out_free_0a to retain the label name order.

Signed-off-by: Miaohe Lin &lt;linmiaohe@huawei.com&gt;
Signed-off-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'kvm-tsx-ctrl' into HEAD</title>
<updated>2019-11-21T11:03:40Z</updated>
<author>
<name>Paolo Bonzini</name>
<email>pbonzini@redhat.com</email>
</author>
<published>2019-11-21T09:01:51Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=46f4f0aabc61bfd365e1eb3c8a6d766d1a49cf32'/>
<id>urn:sha1:46f4f0aabc61bfd365e1eb3c8a6d766d1a49cf32</id>
<content type='text'>
Conflicts:
	arch/x86/kvm/vmx/vmx.c
</content>
</entry>
<entry>
<title>Merge tag 'kvmarm-5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into HEAD</title>
<updated>2019-11-21T08:58:35Z</updated>
<author>
<name>Paolo Bonzini</name>
<email>pbonzini@redhat.com</email>
</author>
<published>2019-11-21T08:58:35Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=14edff88315add29099fd8eebb9ef989c2e47c18'/>
<id>urn:sha1:14edff88315add29099fd8eebb9ef989c2e47c18</id>
<content type='text'>
KVM/arm updates for Linux 5.5:

- Allow non-ISV data aborts to be reported to userspace
- Allow injection of data aborts from userspace
- Expose stolen time to guests
- GICv4 performance improvements
- vgic ITS emulation fixes
- Simplify FWB handling
- Enable halt pool counters
- Make the emulated timer PREEMPT_RT compliant

Conflicts:
	include/uapi/linux/kvm.h
</content>
</entry>
</feed>
