* [PULL 1/7] meson: fix botched compile check conversions
2021-11-19 14:45 [PULL 0/7] Misc bugfixes for 2021-11-19 Paolo Bonzini
@ 2021-11-19 14:45 ` Paolo Bonzini
2021-11-19 14:45 ` [PULL 2/7] nvmm: Fix support for stable version Paolo Bonzini
` (6 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Paolo Bonzini @ 2021-11-19 14:45 UTC (permalink / raw)
To: qemu-devel; +Cc: Peter Maydell
Fix a bunch of incorrect conversions from configure to Meson, which result
in different outcomes with --extra-cflags=-Werror.
pthread_setname_np needs "#define _GNU_SOURCE" on Linux (which I am using
also for the non-Linux check, so that it correctly fails with an error
about having too few parameters).
Fix struct checks to use has_type instead of has_symbol, and "#define
_GNU_SOURCE" too in the case of struct mmsghdr.
Remove an apostrophe that ended up at the end of a #include line.
Reported-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
meson.build | 24 +++++++++++++++---------
1 file changed, 15 insertions(+), 9 deletions(-)
diff --git a/meson.build b/meson.build
index 2ece4fe088..93a5e50a16 100644
--- a/meson.build
+++ b/meson.build
@@ -1547,8 +1547,6 @@ config_host_data.set('CONFIG_INOTIFY',
cc.has_header_symbol('sys/inotify.h', 'inotify_init'))
config_host_data.set('CONFIG_INOTIFY1',
cc.has_header_symbol('sys/inotify.h', 'inotify_init1'))
-config_host_data.set('CONFIG_IOVEC',
- cc.has_header_symbol('sys/uio.h', 'struct iovec'))
config_host_data.set('CONFIG_MACHINE_BSWAP_H',
cc.has_header_symbol('machine/bswap.h', 'bswap32',
prefix: '''#include <sys/endian.h>
@@ -1561,8 +1559,6 @@ config_host_data.set('CONFIG_SYSMACROS',
cc.has_header_symbol('sys/sysmacros.h', 'makedev'))
config_host_data.set('HAVE_OPTRESET',
cc.has_header_symbol('getopt.h', 'optreset'))
-config_host_data.set('HAVE_UTMPX',
- cc.has_header_symbol('utmpx.h', 'struct utmpx'))
config_host_data.set('HAVE_IPPROTO_MPTCP',
cc.has_header_symbol('netinet/in.h', 'IPPROTO_MPTCP'))
@@ -1574,6 +1570,14 @@ config_host_data.set('HAVE_STRUCT_STAT_ST_ATIM',
cc.has_member('struct stat', 'st_atim',
prefix: '#include <sys/stat.h>'))
+# has_type
+config_host_data.set('CONFIG_IOVEC',
+ cc.has_type('struct iovec',
+ prefix: '#include <sys/uio.h>'))
+config_host_data.set('HAVE_UTMPX',
+ cc.has_type('struct utmpx',
+ prefix: '#include <utmpx.h>'))
+
config_host_data.set('CONFIG_EVENTFD', cc.links('''
#include <sys/eventfd.h>
int main(void) { return eventfd(0, EFD_NONBLOCK | EFD_CLOEXEC); }'''))
@@ -1615,7 +1619,7 @@ config_host_data.set('CONFIG_POSIX_MADVISE', cc.links(gnu_source_prefix + '''
#include <stddef.h>
int main(void) { return posix_madvise(NULL, 0, POSIX_MADV_DONTNEED); }'''))
-config_host_data.set('CONFIG_PTHREAD_SETNAME_NP_W_TID', cc.links('''
+config_host_data.set('CONFIG_PTHREAD_SETNAME_NP_W_TID', cc.links(gnu_source_prefix + '''
#include <pthread.h>
static void *f(void *p) { return NULL; }
@@ -1626,7 +1630,7 @@ config_host_data.set('CONFIG_PTHREAD_SETNAME_NP_W_TID', cc.links('''
pthread_setname_np(thread, "QEMU");
return 0;
}''', dependencies: threads))
-config_host_data.set('CONFIG_PTHREAD_SETNAME_NP_WO_TID', cc.links('''
+config_host_data.set('CONFIG_PTHREAD_SETNAME_NP_WO_TID', cc.links(gnu_source_prefix + '''
#include <pthread.h>
static void *f(void *p) { pthread_setname_np("QEMU"); return NULL; }
@@ -1662,8 +1666,10 @@ config_host_data.set('HAVE_MLOCKALL', cc.links(gnu_source_prefix + '''
have_l2tpv3 = false
if not get_option('l2tpv3').disabled() and have_system
- have_l2tpv3 = (cc.has_header_symbol('sys/socket.h', 'struct mmsghdr')
- and cc.has_header('linux/ip.h'))
+ have_l2tpv3 = cc.has_type('struct mmsghdr',
+ prefix: gnu_source_prefix + '''
+ #include <sys/socket.h>
+ #include <linux/ip.h>''')
endif
config_host_data.set('CONFIG_L2TPV3', have_l2tpv3)
@@ -1689,7 +1695,7 @@ config_host_data.set('CONFIG_NETMAP', have_netmap)
# xfs headers will not try to redefine structs from linux headers
# if this macro is set.
config_host_data.set('HAVE_FSXATTR', cc.links('''
- #include <linux/fs.h>'
+ #include <linux/fs.h>
struct fsxattr foo;
int main(void) {
return 0;
--
2.33.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PULL 2/7] nvmm: Fix support for stable version
2021-11-19 14:45 [PULL 0/7] Misc bugfixes for 2021-11-19 Paolo Bonzini
2021-11-19 14:45 ` [PULL 1/7] meson: fix botched compile check conversions Paolo Bonzini
@ 2021-11-19 14:45 ` Paolo Bonzini
2021-11-19 14:45 ` [PULL 3/7] esp: ensure that async_len is reset to 0 during esp_hard_reset() Paolo Bonzini
` (5 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Paolo Bonzini @ 2021-11-19 14:45 UTC (permalink / raw)
To: qemu-devel; +Cc: nia, Kamil Rytarowski
From: nia <nia@NetBSD.org>
NVMM user version 1 is the version being shipped with netbsd-9,
which is the most recent stable branch of NetBSD. This makes it
possible to use the NVMM accelerator on the most recent NetBSD
release, 9.2, which lacks nvmm_cpu_stop.
(CC'ing maintainers)
Signed-off-by: Nia Alarie <nia@NetBSD.org>
Reviewed-by: Kamil Rytarowski <kamil@netbsd.org>
Message-Id: <YWblCe2J8GwCaV9U@homeworld.netbsd.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
meson.build | 4 +---
target/i386/nvmm/nvmm-all.c | 10 ++++++++++
2 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/meson.build b/meson.build
index 93a5e50a16..582f356209 100644
--- a/meson.build
+++ b/meson.build
@@ -323,9 +323,7 @@ if not get_option('hax').disabled()
endif
endif
if targetos == 'netbsd'
- if cc.has_header_symbol('nvmm.h', 'nvmm_cpu_stop', required: get_option('nvmm'))
- nvmm = cc.find_library('nvmm', required: get_option('nvmm'))
- endif
+ nvmm = cc.find_library('nvmm', required: get_option('nvmm'))
if nvmm.found()
accelerators += 'CONFIG_NVMM'
endif
diff --git a/target/i386/nvmm/nvmm-all.c b/target/i386/nvmm/nvmm-all.c
index 14c996f968..9af261eea3 100644
--- a/target/i386/nvmm/nvmm-all.c
+++ b/target/i386/nvmm/nvmm-all.c
@@ -750,7 +750,11 @@ nvmm_vcpu_loop(CPUState *cpu)
nvmm_vcpu_pre_run(cpu);
if (qatomic_read(&cpu->exit_request)) {
+#if NVMM_USER_VERSION >= 2
nvmm_vcpu_stop(vcpu);
+#else
+ qemu_cpu_kick_self();
+#endif
}
/* Read exit_request before the kernel reads the immediate exit flag */
@@ -767,6 +771,7 @@ nvmm_vcpu_loop(CPUState *cpu)
switch (exit->reason) {
case NVMM_VCPU_EXIT_NONE:
break;
+#if NVMM_USER_VERSION >= 2
case NVMM_VCPU_EXIT_STOPPED:
/*
* The kernel cleared the immediate exit flag; cpu->exit_request
@@ -775,6 +780,7 @@ nvmm_vcpu_loop(CPUState *cpu)
smp_wmb();
qcpu->stop = true;
break;
+#endif
case NVMM_VCPU_EXIT_MEMORY:
ret = nvmm_handle_mem(mach, vcpu);
break;
@@ -888,8 +894,12 @@ nvmm_ipi_signal(int sigcpu)
{
if (current_cpu) {
struct qemu_vcpu *qcpu = get_qemu_vcpu(current_cpu);
+#if NVMM_USER_VERSION >= 2
struct nvmm_vcpu *vcpu = &qcpu->vcpu;
nvmm_vcpu_stop(vcpu);
+#else
+ qcpu->stop = true;
+#endif
}
}
--
2.33.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PULL 3/7] esp: ensure that async_len is reset to 0 during esp_hard_reset()
2021-11-19 14:45 [PULL 0/7] Misc bugfixes for 2021-11-19 Paolo Bonzini
2021-11-19 14:45 ` [PULL 1/7] meson: fix botched compile check conversions Paolo Bonzini
2021-11-19 14:45 ` [PULL 2/7] nvmm: Fix support for stable version Paolo Bonzini
@ 2021-11-19 14:45 ` Paolo Bonzini
2021-11-19 14:45 ` [PULL 4/7] qtest/am53c974-test: add test for reset before transfer Paolo Bonzini
` (4 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Paolo Bonzini @ 2021-11-19 14:45 UTC (permalink / raw)
To: qemu-devel; +Cc: Philippe Mathieu-Daudé, Mark Cave-Ayland
From: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
If a reset command is sent after data has been transferred into the SCSI buffer
ensure that async_len is reset to 0. Otherwise a subsequent TI command assumes
the SCSI buffer contains data to be transferred to the device causing it to
dereference the stale async_buf pointer.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Fixes: https://gitlab.com/qemu-project/qemu/-/issues/724
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20211118100327.29061-2-mark.cave-ayland@ilande.co.uk>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
hw/scsi/esp.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/hw/scsi/esp.c b/hw/scsi/esp.c
index 84f935b549..58d0edbd56 100644
--- a/hw/scsi/esp.c
+++ b/hw/scsi/esp.c
@@ -894,6 +894,7 @@ void esp_hard_reset(ESPState *s)
memset(s->wregs, 0, ESP_REGS);
s->tchi_written = 0;
s->ti_size = 0;
+ s->async_len = 0;
fifo8_reset(&s->fifo);
fifo8_reset(&s->cmdfifo);
s->dma = 0;
--
2.33.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PULL 4/7] qtest/am53c974-test: add test for reset before transfer
2021-11-19 14:45 [PULL 0/7] Misc bugfixes for 2021-11-19 Paolo Bonzini
` (2 preceding siblings ...)
2021-11-19 14:45 ` [PULL 3/7] esp: ensure that async_len is reset to 0 during esp_hard_reset() Paolo Bonzini
@ 2021-11-19 14:45 ` Paolo Bonzini
2021-11-19 14:45 ` [PULL 5/7] docs: Spell QEMU all caps Paolo Bonzini
` (3 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Paolo Bonzini @ 2021-11-19 14:45 UTC (permalink / raw)
To: qemu-devel; +Cc: Thomas Huth, Mark Cave-Ayland
From: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Based upon the qtest reproducer posted to Gitlab issue #724 at
https://gitlab.com/qemu-project/qemu/-/issues/724.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Acked-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20211118100327.29061-3-mark.cave-ayland@ilande.co.uk>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
tests/qtest/am53c974-test.c | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)
diff --git a/tests/qtest/am53c974-test.c b/tests/qtest/am53c974-test.c
index 9b1e4211bd..d214a912b3 100644
--- a/tests/qtest/am53c974-test.c
+++ b/tests/qtest/am53c974-test.c
@@ -223,6 +223,34 @@ static void test_inflight_cancel_ok(void)
qtest_quit(s);
}
+static void test_reset_before_transfer_ok(void)
+{
+ QTestState *s = qtest_init(
+ "-device am53c974,id=scsi "
+ "-device scsi-hd,drive=disk0 -drive "
+ "id=disk0,if=none,file=null-co://,format=raw -nodefaults");
+
+ qtest_outl(s, 0xcf8, 0x80001010);
+ qtest_outl(s, 0xcfc, 0xc000);
+ qtest_outl(s, 0xcf8, 0x80001004);
+ qtest_outw(s, 0xcfc, 0x01);
+ qtest_outl(s, 0xc007, 0x2500);
+ qtest_outl(s, 0xc00a, 0x410000);
+ qtest_outl(s, 0xc00a, 0x410000);
+ qtest_outw(s, 0xc00b, 0x0200);
+ qtest_outw(s, 0xc040, 0x03);
+ qtest_outw(s, 0xc009, 0x00);
+ qtest_outw(s, 0xc00b, 0x00);
+ qtest_outw(s, 0xc009, 0x00);
+ qtest_outw(s, 0xc00b, 0x00);
+ qtest_outw(s, 0xc009, 0x00);
+ qtest_outw(s, 0xc003, 0x1000);
+ qtest_outw(s, 0xc00b, 0x1000);
+ qtest_outl(s, 0xc00b, 0x9000);
+ qtest_outw(s, 0xc00b, 0x1000);
+ qtest_quit(s);
+}
+
int main(int argc, char **argv)
{
const char *arch = qtest_get_arch();
@@ -248,6 +276,8 @@ int main(int argc, char **argv)
test_cancelled_request_ok);
qtest_add_func("am53c974/test_inflight_cancel_ok",
test_inflight_cancel_ok);
+ qtest_add_func("am53c974/test_reset_before_transfer_ok",
+ test_reset_before_transfer_ok);
}
return g_test_run();
--
2.33.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PULL 5/7] docs: Spell QEMU all caps
2021-11-19 14:45 [PULL 0/7] Misc bugfixes for 2021-11-19 Paolo Bonzini
` (3 preceding siblings ...)
2021-11-19 14:45 ` [PULL 4/7] qtest/am53c974-test: add test for reset before transfer Paolo Bonzini
@ 2021-11-19 14:45 ` Paolo Bonzini
2021-11-19 14:45 ` [PULL 6/7] meson.build: Support ncurses on MacOS and OpenBSD Paolo Bonzini
` (2 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Paolo Bonzini @ 2021-11-19 14:45 UTC (permalink / raw)
To: qemu-devel; +Cc: Darren Kenny, Philippe Mathieu-Daudé, Markus Armbruster
From: Philippe Mathieu-Daudé <philmd@redhat.com>
Replace Qemu -> QEMU.
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Darren Kenny <darren.kenny@oracle.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <20211118143401.4101497-1-philmd@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
docs/devel/modules.rst | 2 +-
docs/devel/multi-thread-tcg.rst | 2 +-
docs/devel/style.rst | 2 +-
docs/devel/ui.rst | 4 ++--
docs/interop/nbd.txt | 6 +++---
docs/interop/qcow2.txt | 8 ++++----
docs/multiseat.txt | 2 +-
docs/system/device-url-syntax.rst.inc | 2 +-
docs/system/i386/sgx.rst | 26 +++++++++++++-------------
docs/u2f.txt | 2 +-
10 files changed, 28 insertions(+), 28 deletions(-)
diff --git a/docs/devel/modules.rst b/docs/devel/modules.rst
index 066f347b89..8e999c4fa4 100644
--- a/docs/devel/modules.rst
+++ b/docs/devel/modules.rst
@@ -1,5 +1,5 @@
============
-Qemu modules
+QEMU modules
============
.. kernel-doc:: include/qemu/module.h
diff --git a/docs/devel/multi-thread-tcg.rst b/docs/devel/multi-thread-tcg.rst
index 5b446ee08b..c9541a7b20 100644
--- a/docs/devel/multi-thread-tcg.rst
+++ b/docs/devel/multi-thread-tcg.rst
@@ -228,7 +228,7 @@ Emulated hardware state
Currently thanks to KVM work any access to IO memory is automatically
protected by the global iothread mutex, also known as the BQL (Big
-Qemu Lock). Any IO region that doesn't use global mutex is expected to
+QEMU Lock). Any IO region that doesn't use global mutex is expected to
do its own locking.
However IO memory isn't the only way emulated hardware state can be
diff --git a/docs/devel/style.rst b/docs/devel/style.rst
index 260e3263fa..e00af62e76 100644
--- a/docs/devel/style.rst
+++ b/docs/devel/style.rst
@@ -686,7 +686,7 @@ Rationale: hex numbers are hard to read in logs when there is no 0x prefix,
especially when (occasionally) the representation doesn't contain any letters
and especially in one line with other decimal numbers. Number groups are allowed
to not use '0x' because for some things notations like %x.%x.%x are used not
-only in Qemu. Also dumping raw data bytes with '0x' is less readable.
+only in QEMU. Also dumping raw data bytes with '0x' is less readable.
'#' printf flag
---------------
diff --git a/docs/devel/ui.rst b/docs/devel/ui.rst
index 06c7d622ce..17fb667dec 100644
--- a/docs/devel/ui.rst
+++ b/docs/devel/ui.rst
@@ -1,8 +1,8 @@
=================
-Qemu UI subsystem
+QEMU UI subsystem
=================
-Qemu Clipboard
+QEMU Clipboard
--------------
.. kernel-doc:: include/ui/clipboard.h
diff --git a/docs/interop/nbd.txt b/docs/interop/nbd.txt
index 10ce098a29..bdb0f2a41a 100644
--- a/docs/interop/nbd.txt
+++ b/docs/interop/nbd.txt
@@ -1,4 +1,4 @@
-Qemu supports the NBD protocol, and has an internal NBD client (see
+QEMU supports the NBD protocol, and has an internal NBD client (see
block/nbd.c), an internal NBD server (see blockdev-nbd.c), and an
external NBD server tool (see qemu-nbd.c). The common code is placed
in nbd/*.
@@ -7,11 +7,11 @@ The NBD protocol is specified here:
https://github.com/NetworkBlockDevice/nbd/blob/master/doc/proto.md
The following paragraphs describe some specific properties of NBD
-protocol realization in Qemu.
+protocol realization in QEMU.
= Metadata namespaces =
-Qemu supports the "base:allocation" metadata context as defined in the
+QEMU supports the "base:allocation" metadata context as defined in the
NBD protocol specification, and also defines an additional metadata
namespace "qemu".
diff --git a/docs/interop/qcow2.txt b/docs/interop/qcow2.txt
index 0463f761ef..f7dc304ff6 100644
--- a/docs/interop/qcow2.txt
+++ b/docs/interop/qcow2.txt
@@ -313,7 +313,7 @@ The fields of the bitmaps extension are:
The number of bitmaps contained in the image. Must be
greater than or equal to 1.
- Note: Qemu currently only supports up to 65535 bitmaps per
+ Note: QEMU currently only supports up to 65535 bitmaps per
image.
4 - 7: Reserved, must be zero.
@@ -775,7 +775,7 @@ Structure of a bitmap directory entry:
2: extra_data_compatible
This flags is meaningful when the extra data is
unknown to the software (currently any extra data is
- unknown to Qemu).
+ unknown to QEMU).
If it is set, the bitmap may be used as expected, extra
data must be left as is.
If it is not set, the bitmap must not be used, but
@@ -793,7 +793,7 @@ Structure of a bitmap directory entry:
17: granularity_bits
Granularity bits. Valid values: 0 - 63.
- Note: Qemu currently supports only values 9 - 31.
+ Note: QEMU currently supports only values 9 - 31.
Granularity is calculated as
granularity = 1 << granularity_bits
@@ -804,7 +804,7 @@ Structure of a bitmap directory entry:
18 - 19: name_size
Size of the bitmap name. Must be non-zero.
- Note: Qemu currently doesn't support values greater than
+ Note: QEMU currently doesn't support values greater than
1023.
20 - 23: extra_data_size
diff --git a/docs/multiseat.txt b/docs/multiseat.txt
index 11850c96ff..2b297e979d 100644
--- a/docs/multiseat.txt
+++ b/docs/multiseat.txt
@@ -123,7 +123,7 @@ Background info is here:
guest side with pci-bridge-seat
-------------------------------
-Qemu version 2.4 and newer has a new pci-bridge-seat device which
+QEMU version 2.4 and newer has a new pci-bridge-seat device which
can be used instead of pci-bridge. Just swap the device name in the
qemu command line above. The only difference between the two devices
is the pci id. We can match the pci id instead of the device path
diff --git a/docs/system/device-url-syntax.rst.inc b/docs/system/device-url-syntax.rst.inc
index d15a021508..7dbc525fa8 100644
--- a/docs/system/device-url-syntax.rst.inc
+++ b/docs/system/device-url-syntax.rst.inc
@@ -15,7 +15,7 @@ These are specified using a special URL syntax.
'iqn.2008-11.org.linux-kvm[:<name>]' but this can also be set from
the command line or a configuration file.
- Since version Qemu 2.4 it is possible to specify a iSCSI request
+ Since version QEMU 2.4 it is possible to specify a iSCSI request
timeout to detect stalled requests and force a reestablishment of the
session. The timeout is specified in seconds. The default is 0 which
means no timeout. Libiscsi 1.15.0 or greater is required for this
diff --git a/docs/system/i386/sgx.rst b/docs/system/i386/sgx.rst
index 9aa161af1a..f8fade5ac2 100644
--- a/docs/system/i386/sgx.rst
+++ b/docs/system/i386/sgx.rst
@@ -20,13 +20,13 @@ report the same CPUID info to guest as on host for most of SGX CPUID. With
reporting the same CPUID guest is able to use full capacity of SGX, and KVM
doesn't need to emulate those info.
-The guest's EPC base and size are determined by Qemu, and KVM needs Qemu to
+The guest's EPC base and size are determined by QEMU, and KVM needs QEMU to
notify such info to it before it can initialize SGX for guest.
Virtual EPC
~~~~~~~~~~~
-By default, Qemu does not assign EPC to a VM, i.e. fully enabling SGX in a VM
+By default, QEMU does not assign EPC to a VM, i.e. fully enabling SGX in a VM
requires explicit allocation of EPC to the VM. Similar to other specialized
memory types, e.g. hugetlbfs, EPC is exposed as a memory backend.
@@ -35,12 +35,12 @@ prior to realizing the vCPUs themselves, which occurs long before generic
devices are parsed and realized. This limitation means that EPC does not
require -maxmem as EPC is not treated as {cold,hot}plugged memory.
-Qemu does not artificially restrict the number of EPC sections exposed to a
-guest, e.g. Qemu will happily allow you to create 64 1M EPC sections. Be aware
+QEMU does not artificially restrict the number of EPC sections exposed to a
+guest, e.g. QEMU will happily allow you to create 64 1M EPC sections. Be aware
that some kernels may not recognize all EPC sections, e.g. the Linux SGX driver
is hardwired to support only 8 EPC sections.
-The following Qemu snippet creates two EPC sections, with 64M pre-allocated
+The following QEMU snippet creates two EPC sections, with 64M pre-allocated
to the VM and an additional 28M mapped but not allocated::
-object memory-backend-epc,id=mem1,size=64M,prealloc=on \
@@ -54,7 +54,7 @@ to physical EPC. Because physical EPC is protected via range registers,
the size of the physical EPC must be a power of two (though software sees
a subset of the full EPC, e.g. 92M or 128M) and the EPC must be naturally
aligned. KVM SGX's virtual EPC is purely a software construct and only
-requires the size and location to be page aligned. Qemu enforces the EPC
+requires the size and location to be page aligned. QEMU enforces the EPC
size is a multiple of 4k and will ensure the base of the EPC is 4k aligned.
To simplify the implementation, EPC is always located above 4g in the guest
physical address space.
@@ -62,7 +62,7 @@ physical address space.
Migration
~~~~~~~~~
-Qemu/KVM doesn't prevent live migrating SGX VMs, although from hardware's
+QEMU/KVM doesn't prevent live migrating SGX VMs, although from hardware's
perspective, SGX doesn't support live migration, since both EPC and the SGX
key hierarchy are bound to the physical platform. However live migration
can be supported in the sense if guest software stack can support recreating
@@ -76,7 +76,7 @@ CPUID
~~~~~
Due to its myriad dependencies, SGX is currently not listed as supported
-in any of Qemu's built-in CPU configuration. To expose SGX (and SGX Launch
+in any of QEMU's built-in CPU configuration. To expose SGX (and SGX Launch
Control) to a guest, you must either use ``-cpu host`` to pass-through the
host CPU model, or explicitly enable SGX when using a built-in CPU model,
e.g. via ``-cpu <model>,+sgx`` or ``-cpu <model>,+sgx,+sgxlc``.
@@ -101,7 +101,7 @@ controlled via -cpu are prefixed with "sgx", e.g.::
sgx2
sgxlc
-The following Qemu snippet passes through the host CPU but restricts access to
+The following QEMU snippet passes through the host CPU but restricts access to
the provision and EINIT token keys::
-cpu host,-sgx-provisionkey,-sgx-tokenkey
@@ -112,11 +112,11 @@ in hardware cannot be forced on via '-cpu'.
Virtualize SGX Launch Control
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-Qemu SGX support for Launch Control (LC) is passive, in the sense that it
-does not actively change the LC configuration. Qemu SGX provides the user
+QEMU SGX support for Launch Control (LC) is passive, in the sense that it
+does not actively change the LC configuration. QEMU SGX provides the user
the ability to set/clear the CPUID flag (and by extension the associated
IA32_FEATURE_CONTROL MSR bit in fw_cfg) and saves/restores the LE Hash MSRs
-when getting/putting guest state, but Qemu does not add new controls to
+when getting/putting guest state, but QEMU does not add new controls to
directly modify the LC configuration. Similar to hardware behavior, locking
the LC configuration to a non-Intel value is left to guest firmware. Unlike
host bios setting for SGX launch control(LC), there is no special bios setting
@@ -126,7 +126,7 @@ creating VM with SGX.
Feature Control
~~~~~~~~~~~~~~~
-Qemu SGX updates the ``etc/msr_feature_control`` fw_cfg entry to set the SGX
+QEMU SGX updates the ``etc/msr_feature_control`` fw_cfg entry to set the SGX
(bit 18) and SGX LC (bit 17) flags based on their respective CPUID support,
i.e. existing guest firmware will automatically set SGX and SGX LC accordingly,
assuming said firmware supports fw_cfg.msr_feature_control.
diff --git a/docs/u2f.txt b/docs/u2f.txt
index 8f44994818..7f5813a0b7 100644
--- a/docs/u2f.txt
+++ b/docs/u2f.txt
@@ -21,7 +21,7 @@ The second factor is materialized by a device implementing the U2F
protocol. In case of a USB U2F security key, it is a USB HID device
that implements the U2F protocol.
-In Qemu, the USB U2F key device offers a dedicated support of U2F, allowing
+In QEMU, the USB U2F key device offers a dedicated support of U2F, allowing
guest USB FIDO/U2F security keys operating in two possible modes:
pass-through and emulated.
--
2.33.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PULL 6/7] meson.build: Support ncurses on MacOS and OpenBSD
2021-11-19 14:45 [PULL 0/7] Misc bugfixes for 2021-11-19 Paolo Bonzini
` (4 preceding siblings ...)
2021-11-19 14:45 ` [PULL 5/7] docs: Spell QEMU all caps Paolo Bonzini
@ 2021-11-19 14:45 ` Paolo Bonzini
2021-11-19 14:45 ` [PULL 7/7] chardev/wctable: don't free the instance in wctablet_chr_finalize Paolo Bonzini
2021-11-19 18:14 ` [PULL 0/7] Misc bugfixes for 2021-11-19 Richard Henderson
7 siblings, 0 replies; 9+ messages in thread
From: Paolo Bonzini @ 2021-11-19 14:45 UTC (permalink / raw)
To: qemu-devel; +Cc: Stefan Weil, Daniel P . Berrangé, Brad Smith
From: Stefan Weil <sw@weilnetz.de>
MacOS provides header files for curses 5.7 with support
for wide characters, but requires _XOPEN_SOURCE_EXTENDED=1
to activate that.
By default those old header files are used even if there
is a newer Homebrew installation of ncurses 6.2 available.
Change also the old macro definition of NCURSES_WIDECHAR
and set it to 1 like it is done in newer versions of
curses.h when _XOPEN_SOURCE_EXTENDED=1 is defined.
OpenBSD has the same version of ncurses and needs the same fix.
Suggested-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Stefan Weil <sw@weilnetz.de>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Tested-by: Brad Smith <brad@comstyle.com>
Message-Id: <20211117205355.1392292-1-sw@weilnetz.de>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
meson.build | 5 ++++-
ui/curses.c | 4 ++++
2 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/meson.build b/meson.build
index 582f356209..fbdd415376 100644
--- a/meson.build
+++ b/meson.build
@@ -679,6 +679,9 @@ iconv = not_found
curses = not_found
if have_system and not get_option('curses').disabled()
curses_test = '''
+ #if defined(__APPLE__) || defined(__OpenBSD__)
+ #define _XOPEN_SOURCE_EXTENDED 1
+ #endif
#include <locale.h>
#include <curses.h>
#include <wchar.h>
@@ -702,7 +705,7 @@ if have_system and not get_option('curses').disabled()
endif
endforeach
msg = get_option('curses').enabled() ? 'curses library not found' : ''
- curses_compile_args = ['-DNCURSES_WIDECHAR']
+ curses_compile_args = ['-DNCURSES_WIDECHAR=1']
if curses.found()
if cc.links(curses_test, args: curses_compile_args, dependencies: [curses])
curses = declare_dependency(compile_args: curses_compile_args, dependencies: [curses])
diff --git a/ui/curses.c b/ui/curses.c
index e4f9588c3e..861d63244c 100644
--- a/ui/curses.c
+++ b/ui/curses.c
@@ -38,6 +38,10 @@
#include "ui/input.h"
#include "sysemu/sysemu.h"
+#if defined(__APPLE__) || defined(__OpenBSD__)
+#define _XOPEN_SOURCE_EXTENDED 1
+#endif
+
/* KEY_EVENT is defined in wincon.h and in curses.h. Avoid redefinition. */
#undef KEY_EVENT
#include <curses.h>
--
2.33.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PULL 7/7] chardev/wctable: don't free the instance in wctablet_chr_finalize
2021-11-19 14:45 [PULL 0/7] Misc bugfixes for 2021-11-19 Paolo Bonzini
` (5 preceding siblings ...)
2021-11-19 14:45 ` [PULL 6/7] meson.build: Support ncurses on MacOS and OpenBSD Paolo Bonzini
@ 2021-11-19 14:45 ` Paolo Bonzini
2021-11-19 18:14 ` [PULL 0/7] Misc bugfixes for 2021-11-19 Richard Henderson
7 siblings, 0 replies; 9+ messages in thread
From: Paolo Bonzini @ 2021-11-19 14:45 UTC (permalink / raw)
To: qemu-devel; +Cc: Marc-André Lureau, Daniil Tatianin
From: Daniil Tatianin <d-tatianin@yandex-team.ru>
Object is supposed to be freed by invoking obj->free, and not
obj->instance_finalize. This would lead to use-after-free followed by
double free in object_unref/object_finalize.
Signed-off-by: Daniil Tatianin <d-tatianin@yandex-team.ru>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20211117142349.836279-1-d-tatianin@yandex-team.ru>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
chardev/wctablet.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/chardev/wctablet.c b/chardev/wctablet.c
index 95e005f5a5..e8b292c43c 100644
--- a/chardev/wctablet.c
+++ b/chardev/wctablet.c
@@ -320,7 +320,6 @@ static void wctablet_chr_finalize(Object *obj)
TabletChardev *tablet = WCTABLET_CHARDEV(obj);
qemu_input_handler_unregister(tablet->hs);
- g_free(tablet);
}
static void wctablet_chr_open(Chardev *chr,
--
2.33.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PULL 0/7] Misc bugfixes for 2021-11-19
2021-11-19 14:45 [PULL 0/7] Misc bugfixes for 2021-11-19 Paolo Bonzini
` (6 preceding siblings ...)
2021-11-19 14:45 ` [PULL 7/7] chardev/wctable: don't free the instance in wctablet_chr_finalize Paolo Bonzini
@ 2021-11-19 18:14 ` Richard Henderson
7 siblings, 0 replies; 9+ messages in thread
From: Richard Henderson @ 2021-11-19 18:14 UTC (permalink / raw)
To: Paolo Bonzini, qemu-devel
On 11/19/21 3:45 PM, Paolo Bonzini wrote:
> The following changes since commit 42f6c9179be4401974dd3a75ee72defd16b5092d:
>
> Merge tag 'pull-ppc-20211112' of https://github.com/legoater/qemu into staging (2021-11-12 12:28:25 +0100)
>
> are available in the Git repository at:
>
> https://gitlab.com/bonzini/qemu.git tags/for-upstream
>
> for you to fetch changes up to fdc6e168181d06391711171b7c409b34f2981ced:
>
> chardev/wctable: don't free the instance in wctablet_chr_finalize (2021-11-19 10:24:50 +0100)
>
> ----------------------------------------------------------------
> Bugfixes for 6.2.
>
> ----------------------------------------------------------------
> Daniil Tatianin (1):
> chardev/wctable: don't free the instance in wctablet_chr_finalize
>
> Mark Cave-Ayland (2):
> esp: ensure that async_len is reset to 0 during esp_hard_reset()
> qtest/am53c974-test: add test for reset before transfer
>
> Paolo Bonzini (1):
> meson: fix botched compile check conversions
>
> Philippe Mathieu-Daudé (1):
> docs: Spell QEMU all caps
>
> Stefan Weil (1):
> meson.build: Support ncurses on MacOS and OpenBSD
>
> nia (1):
> nvmm: Fix support for stable version
>
> chardev/wctablet.c | 1 -
> docs/devel/modules.rst | 2 +-
> docs/devel/multi-thread-tcg.rst | 2 +-
> docs/devel/style.rst | 2 +-
> docs/devel/ui.rst | 4 ++--
> docs/interop/nbd.txt | 6 +++---
> docs/interop/qcow2.txt | 8 ++++----
> docs/multiseat.txt | 2 +-
> docs/system/device-url-syntax.rst.inc | 2 +-
> docs/system/i386/sgx.rst | 26 +++++++++++++-------------
> docs/u2f.txt | 2 +-
> hw/scsi/esp.c | 1 +
> meson.build | 33 ++++++++++++++++++++-------------
> target/i386/nvmm/nvmm-all.c | 10 ++++++++++
> tests/qtest/am53c974-test.c | 30 ++++++++++++++++++++++++++++++
> ui/curses.c | 4 ++++
> 16 files changed, 93 insertions(+), 42 deletions(-)
Applied, thanks.
r~
^ permalink raw reply [flat|nested] 9+ messages in thread