diff options
| -rw-r--r-- | MAINTAINERS | 12 | ||||
| -rw-r--r-- | block/nbd.c | 2 | ||||
| -rw-r--r-- | docs/tools/qemu-nbd.rst | 12 | ||||
| -rw-r--r-- | hw/i386/amd_iommu.c | 7 | ||||
| -rw-r--r-- | target/i386/kvm/kvm.c | 17 |
5 files changed, 28 insertions, 22 deletions
diff --git a/MAINTAINERS b/MAINTAINERS index 9aed5f3e04..cc364afef7 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -2507,7 +2507,7 @@ F: scsi/* Block Jobs M: John Snow <jsnow@redhat.com> -M: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> +M: Vladimir Sementsov-Ogievskiy <v.sementsov-og@mail.ru> L: qemu-block@nongnu.org S: Supported F: blockjob.c @@ -2546,7 +2546,7 @@ T: git https://repo.or.cz/qemu/armbru.git block-next Dirty Bitmaps M: Eric Blake <eblake@redhat.com> -M: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> +M: Vladimir Sementsov-Ogievskiy <v.sementsov-og@mail.ru> R: John Snow <jsnow@redhat.com> L: qemu-block@nongnu.org S: Supported @@ -2770,13 +2770,13 @@ F: scripts/*.py F: tests/*.py Benchmark util -M: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> +M: Vladimir Sementsov-Ogievskiy <v.sementsov-og@mail.ru> S: Maintained F: scripts/simplebench/ T: git https://src.openvz.org/scm/~vsementsov/qemu.git simplebench Transactions helper -M: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> +M: Vladimir Sementsov-Ogievskiy <v.sementsov-og@mail.ru> S: Maintained F: include/qemu/transactions.h F: util/transactions.c @@ -3360,7 +3360,7 @@ F: block/iscsi-opts.c Network Block Device (NBD) M: Eric Blake <eblake@redhat.com> -M: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> +M: Vladimir Sementsov-Ogievskiy <v.sementsov-og@mail.ru> L: qemu-block@nongnu.org S: Maintained F: block/nbd* @@ -3456,7 +3456,7 @@ F: block/dmg.c parallels M: Stefan Hajnoczi <stefanha@redhat.com> M: Denis V. Lunev <den@openvz.org> -M: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> +M: Vladimir Sementsov-Ogievskiy <v.sementsov-og@mail.ru> L: qemu-block@nongnu.org S: Supported F: block/parallels.c diff --git a/block/nbd.c b/block/nbd.c index 34b9429de3..567872ac53 100644 --- a/block/nbd.c +++ b/block/nbd.c @@ -533,8 +533,8 @@ err: if (i != -1) { s->requests[i].coroutine = NULL; s->in_flight--; - qemu_co_queue_next(&s->free_sema); } + qemu_co_queue_next(&s->free_sema); } qemu_co_mutex_unlock(&s->send_mutex); return rc; diff --git a/docs/tools/qemu-nbd.rst b/docs/tools/qemu-nbd.rst index 2b8c90c354..4c950f6199 100644 --- a/docs/tools/qemu-nbd.rst +++ b/docs/tools/qemu-nbd.rst @@ -27,7 +27,7 @@ Options .. program:: qemu-nbd *filename* is a disk image filename, or a set of block -driver options if ``--image-opts`` is specified. +driver options if :option:`--image-opts` is specified. *dev* is an NBD device. @@ -165,9 +165,9 @@ driver options if ``--image-opts`` is specified. .. option:: --tls-creds=ID Enable mandatory TLS encryption for the server by setting the ID - of the TLS credentials object previously created with the --object - option; or provide the credentials needed for connecting as a client - in list mode. + of the TLS credentials object previously created with the + :option:`--object` option; or provide the credentials needed for + connecting as a client in list mode. .. option:: --tls-hostname=hostname @@ -176,11 +176,11 @@ driver options if ``--image-opts`` is specified. against information in the server provided certificate. Sometimes it might be required to override the hostname used to perform this check. For example, if the NBD client is using a tunnel from localhost - to connect to the remote server, the `--tls-hostname` option should + to connect to the remote server, the :option:`--tls-hostname` option should be used to set the officially expected hostname of the remote NBD server. This can also be used if accessing NBD over a UNIX socket where there is no inherent hostname available. This is only permitted - when acting as a NBD client with the `--list` option. + when acting as a NBD client with the :option:`--list` option. .. option:: --fork diff --git a/hw/i386/amd_iommu.c b/hw/i386/amd_iommu.c index 9dd9b0ecf2..ea8eaeb330 100644 --- a/hw/i386/amd_iommu.c +++ b/hw/i386/amd_iommu.c @@ -913,7 +913,7 @@ static void amdvi_page_walk(AMDVIAddressSpace *as, uint64_t *dte, } /* we are at the leaf page table or page table encodes a huge page */ - while (level > 0) { + do { pte_perms = amdvi_get_perms(pte); present = pte & 1; if (!present || perms != (perms & pte_perms)) { @@ -932,10 +932,7 @@ static void amdvi_page_walk(AMDVIAddressSpace *as, uint64_t *dte, } oldlevel = level; level = get_pte_translation_mode(pte); - if (level == 0x7) { - break; - } - } + } while (level > 0 && level < 7); if (level == 0x7) { page_mask = pte_override_page_mask(pte); diff --git a/target/i386/kvm/kvm.c b/target/i386/kvm/kvm.c index ef2c68a6f4..06901c2a43 100644 --- a/target/i386/kvm/kvm.c +++ b/target/i386/kvm/kvm.c @@ -411,6 +411,12 @@ uint32_t kvm_arch_get_supported_cpuid(KVMState *s, uint32_t function, } } else if (function == 0xd && index == 0 && (reg == R_EAX || reg == R_EDX)) { + /* + * The value returned by KVM_GET_SUPPORTED_CPUID does not include + * features that still have to be enabled with the arch_prctl + * system call. QEMU needs the full value, which is retrieved + * with KVM_GET_DEVICE_ATTR. + */ struct kvm_device_attr attr = { .group = 0, .attr = KVM_X86_XCOMP_GUEST_SUPP, @@ -419,13 +425,16 @@ uint32_t kvm_arch_get_supported_cpuid(KVMState *s, uint32_t function, bool sys_attr = kvm_check_extension(s, KVM_CAP_SYS_ATTRIBUTES); if (!sys_attr) { - warn_report("cannot get sys attribute capabilities %d", sys_attr); + return ret; } int rc = kvm_ioctl(s, KVM_GET_DEVICE_ATTR, &attr); - if (rc == -1 && (errno == ENXIO || errno == EINVAL)) { - warn_report("KVM_GET_DEVICE_ATTR(0, KVM_X86_XCOMP_GUEST_SUPP) " - "error: %d", rc); + if (rc < 0) { + if (rc != -ENXIO) { + warn_report("KVM_GET_DEVICE_ATTR(0, KVM_X86_XCOMP_GUEST_SUPP) " + "error: %d", rc); + } + return ret; } ret = (reg == R_EAX) ? bitmask : bitmask >> 32; } else if (function == 0x80000001 && reg == R_ECX) { |