QEMU update to version 6.2.0-83(master)
- hw/virtio/virtio-pmem: Replace impossible check by assertion - tests: Fix printf format string in acpi-utils.c - softmmu/dirtylimit: Add parameter check for hmp "set_vcpu_dirty_limit" - disas/riscv: Fix the typo of inverted order of pmpaddr13 and pmpaddr14 - qga: Fix memory leak when output stream is unused - ui/vnc-clipboard: fix infinite loop in inflate_buffer (CVE-2023-3255) - target/i386: Add few security fix bits in ARCH_CAPABILITIES into SapphireRapids CPU model - target/i386: Add new bit definitions of MSR_IA32_ARCH_CAPABILITIES - target/i386: Allow MCDT_NO if host supports - target/i386: Add support for MCDT_NO in CPUID enumeration - target/i386: Export MSR_ARCH_CAPABILITIES bits to guests - target/i386: add support for FB_CLEAR feature - target/i386: add support for FLUSH_L1D feature - crypto: remove shadowed 'ret' variable - hw/i2c/pmbus_device: Fix modifying QOM class internals from instance - hw/arm/xlnx-zynqmp: fix unsigned error when checking the RPUs number Signed-off-by: Jiabo Feng <fengjiabo1@huawei.com>
This commit is contained in:
parent
0b0e518312
commit
80a22cff37
36
crypto-remove-shadowed-ret-variable.patch
Normal file
36
crypto-remove-shadowed-ret-variable.patch
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
From b055bedb3fba592ab7e73615faf29854a18b0abc Mon Sep 17 00:00:00 2001
|
||||||
|
From: qihao <qihao_yewu@cmss.chinamobile.com>
|
||||||
|
Date: Tue, 10 Oct 2023 15:24:35 +0800
|
||||||
|
Subject: [PATCH] crypto: remove shadowed 'ret' variable
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
cheery-pick from 3cc9fe177f412494f084923149338c51dd232b9b
|
||||||
|
|
||||||
|
Both instances of 'ret' are used to store a gnutls API return code.
|
||||||
|
|
||||||
|
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||||
|
Message-ID: <20230922160644.438631-2-berrange@redhat.com>
|
||||||
|
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
|
||||||
|
Signed-off-by: Markus Armbruster <armbru@redhat.com>
|
||||||
|
Signed-off-by: qihao_yewu <qihao_yewu@cmss.chinamobile.com>
|
||||||
|
---
|
||||||
|
crypto/tls-cipher-suites.c | 1 -
|
||||||
|
1 file changed, 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/crypto/tls-cipher-suites.c b/crypto/tls-cipher-suites.c
|
||||||
|
index 5e4f597464..d0df4badc0 100644
|
||||||
|
--- a/crypto/tls-cipher-suites.c
|
||||||
|
+++ b/crypto/tls-cipher-suites.c
|
||||||
|
@@ -52,7 +52,6 @@ GByteArray *qcrypto_tls_cipher_suites_get_data(QCryptoTLSCipherSuites *obj,
|
||||||
|
byte_array = g_byte_array_new();
|
||||||
|
|
||||||
|
for (i = 0;; i++) {
|
||||||
|
- int ret;
|
||||||
|
unsigned idx;
|
||||||
|
const char *name;
|
||||||
|
IANA_TLS_CIPHER cipher;
|
||||||
|
--
|
||||||
|
2.41.0.windows.1
|
||||||
|
|
||||||
37
disas-riscv-Fix-the-typo-of-inverted-order-of-pmpadd.patch
Normal file
37
disas-riscv-Fix-the-typo-of-inverted-order-of-pmpadd.patch
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
From 80fd3d8f92b8a2c3b640d1dfa436da8331b37b01 Mon Sep 17 00:00:00 2001
|
||||||
|
From: qihao <qihao_yewu@cmss.chinamobile.com>
|
||||||
|
Date: Mon, 16 Oct 2023 09:47:25 +0800
|
||||||
|
Subject: [PATCH] disas/riscv: Fix the typo of inverted order of pmpaddr13 and
|
||||||
|
pmpaddr14
|
||||||
|
|
||||||
|
cheery-pick from cffa9954908830276c93b430681f66cc0e599aef
|
||||||
|
|
||||||
|
Fix the inverted order of pmpaddr13 and pmpaddr14 in csr_name().
|
||||||
|
|
||||||
|
Signed-off-by: Alvin Chang <alvinga@andestech.com>
|
||||||
|
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
|
||||||
|
Message-ID: <20230907084500.328-1-alvinga@andestech.com>
|
||||||
|
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
|
||||||
|
Signed-off-by: qihao_yewu <qihao_yewu@cmss.chinamobile.com>
|
||||||
|
---
|
||||||
|
disas/riscv.c | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/disas/riscv.c b/disas/riscv.c
|
||||||
|
index 6768ec8188..ad7b978815 100644
|
||||||
|
--- a/disas/riscv.c
|
||||||
|
+++ b/disas/riscv.c
|
||||||
|
@@ -1307,8 +1307,8 @@ static const char *csr_name(int csrno)
|
||||||
|
case 0x03ba: return "pmpaddr10";
|
||||||
|
case 0x03bb: return "pmpaddr11";
|
||||||
|
case 0x03bc: return "pmpaddr12";
|
||||||
|
- case 0x03bd: return "pmpaddr14";
|
||||||
|
- case 0x03be: return "pmpaddr13";
|
||||||
|
+ case 0x03bd: return "pmpaddr13";
|
||||||
|
+ case 0x03be: return "pmpaddr14";
|
||||||
|
case 0x03bf: return "pmpaddr15";
|
||||||
|
case 0x0780: return "mtohost";
|
||||||
|
case 0x0781: return "mfromhost";
|
||||||
|
--
|
||||||
|
2.41.0.windows.1
|
||||||
|
|
||||||
47
hw-arm-xlnx-zynqmp-fix-unsigned-error-when-checking-.patch
Normal file
47
hw-arm-xlnx-zynqmp-fix-unsigned-error-when-checking-.patch
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
From a1ecbf056603b4fabf8b5ab8a79f70a27fef06ee Mon Sep 17 00:00:00 2001
|
||||||
|
From: jipengfei_yewu <jipengfei_yewu@cmss.chinamobile.com>
|
||||||
|
Date: Sun, 24 Sep 2023 19:39:33 +0800
|
||||||
|
Subject: [PATCH] hw/arm/xlnx-zynqmp: fix unsigned error when checking the RPUs
|
||||||
|
number
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
When passing --smp with a number lower than XLNX_ZYNQMP_NUM_APU_CPUS,
|
||||||
|
the expression (ms->smp.cpus - XLNX_ZYNQMP_NUM_APU_CPUS) will result
|
||||||
|
in a positive number as ms->smp.cpus is a unsigned int.
|
||||||
|
This will raise the following error afterwards, as Qemu will try to
|
||||||
|
instantiate some additional RPUs.
|
||||||
|
| $ qemu-system-aarch64 --smp 1 -M xlnx-zcu102
|
||||||
|
| **
|
||||||
|
| ERROR:../src/tcg/tcg.c:777:tcg_register_thread:
|
||||||
|
| assertion failed: (n < tcg_max_ctxs)
|
||||||
|
|
||||||
|
cheery-pick from c9ba1c9f02cfede5329f504cdda6fd3a256e0434
|
||||||
|
|
||||||
|
Signed-off-by: jipengfei_yewu <jipengfei_yewu@cmss.chinamobile.com>
|
||||||
|
Signed-off-by: Clément Chigot <chigot@adacore.com>
|
||||||
|
Reviewed-by: Francisco Iglesias <frasse.iglesias@gmail.com>
|
||||||
|
Tested-by: Francisco Iglesias <frasse.iglesias@gmail.com>
|
||||||
|
Message-id: 20230524143714.565792-1-chigot@adacore.com
|
||||||
|
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
|
||||||
|
---
|
||||||
|
hw/arm/xlnx-zynqmp.c | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/hw/arm/xlnx-zynqmp.c b/hw/arm/xlnx-zynqmp.c
|
||||||
|
index 1c52a575aa..2ffc6df70b 100644
|
||||||
|
--- a/hw/arm/xlnx-zynqmp.c
|
||||||
|
+++ b/hw/arm/xlnx-zynqmp.c
|
||||||
|
@@ -194,7 +194,7 @@ static void xlnx_zynqmp_create_rpu(MachineState *ms, XlnxZynqMPState *s,
|
||||||
|
const char *boot_cpu, Error **errp)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
- int num_rpus = MIN(ms->smp.cpus - XLNX_ZYNQMP_NUM_APU_CPUS,
|
||||||
|
+ int num_rpus = MIN((int)(ms->smp.cpus - XLNX_ZYNQMP_NUM_APU_CPUS),
|
||||||
|
XLNX_ZYNQMP_NUM_RPU_CPUS);
|
||||||
|
|
||||||
|
if (num_rpus <= 0) {
|
||||||
|
--
|
||||||
|
2.41.0.windows.1
|
||||||
|
|
||||||
63
hw-i2c-pmbus_device-Fix-modifying-QOM-class-internal.patch
Normal file
63
hw-i2c-pmbus_device-Fix-modifying-QOM-class-internal.patch
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
From b2314562968c124503dbd08529a2bef39701aaa7 Mon Sep 17 00:00:00 2001
|
||||||
|
From: qihao <qihao_yewu@cmss.chinamobile.com>
|
||||||
|
Date: Wed, 6 Sep 2023 20:30:27 +0800
|
||||||
|
Subject: [PATCH] hw/i2c/pmbus_device: Fix modifying QOM class internals from
|
||||||
|
instance
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
cheery-pick from f0e4588fd4ae39d1ad46f19c76ed298f89e61d6a
|
||||||
|
|
||||||
|
QOM object instance should not modify its class state (because
|
||||||
|
all other objects instanciated from this class get affected).
|
||||||
|
|
||||||
|
Instead of modifying the PMBusDeviceClass 'device_num_pages' field
|
||||||
|
the first time a instance is initialized (in pmbus_pages_alloc),
|
||||||
|
introduce a new pmbus_pages_num() helper which returns the page
|
||||||
|
number from the class without modifying the class state.
|
||||||
|
|
||||||
|
The code logic become slighly simplified.
|
||||||
|
|
||||||
|
Inspired-by: Bernhard Beschow <shentey@gmail.com>
|
||||||
|
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
|
||||||
|
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
|
||||||
|
Message-Id: <20230523064408.57941-4-philmd@linaro.org>
|
||||||
|
Signed-off-by: qihao_yewu <qihao_yewu@cmss.chinamobile.com>
|
||||||
|
---
|
||||||
|
hw/i2c/pmbus_device.c | 17 ++++++++++-------
|
||||||
|
1 file changed, 10 insertions(+), 7 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/hw/i2c/pmbus_device.c b/hw/i2c/pmbus_device.c
|
||||||
|
index 24f8f522d9..f39cd532de 100644
|
||||||
|
--- a/hw/i2c/pmbus_device.c
|
||||||
|
+++ b/hw/i2c/pmbus_device.c
|
||||||
|
@@ -166,15 +166,18 @@ static void pmbus_quick_cmd(SMBusDevice *smd, uint8_t read)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
-static void pmbus_pages_alloc(PMBusDevice *pmdev)
|
||||||
|
+static uint8_t pmbus_pages_num(PMBusDevice *pmdev)
|
||||||
|
{
|
||||||
|
+ const PMBusDeviceClass *k = PMBUS_DEVICE_GET_CLASS(pmdev);
|
||||||
|
+
|
||||||
|
/* some PMBus devices don't use the PAGE command, so they get 1 page */
|
||||||
|
- PMBusDeviceClass *k = PMBUS_DEVICE_GET_CLASS(pmdev);
|
||||||
|
- if (k->device_num_pages == 0) {
|
||||||
|
- k->device_num_pages = 1;
|
||||||
|
- }
|
||||||
|
- pmdev->num_pages = k->device_num_pages;
|
||||||
|
- pmdev->pages = g_new0(PMBusPage, k->device_num_pages);
|
||||||
|
+ return k->device_num_pages ? : 1;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static void pmbus_pages_alloc(PMBusDevice *pmdev)
|
||||||
|
+{
|
||||||
|
+ pmdev->num_pages = pmbus_pages_num(pmdev);
|
||||||
|
+ pmdev->pages = g_new0(PMBusPage, pmdev->num_pages);
|
||||||
|
}
|
||||||
|
|
||||||
|
void pmbus_check_limits(PMBusDevice *pmdev)
|
||||||
|
--
|
||||||
|
2.41.0.windows.1
|
||||||
|
|
||||||
45
hw-virtio-virtio-pmem-Replace-impossible-check-by-as.patch
Normal file
45
hw-virtio-virtio-pmem-Replace-impossible-check-by-as.patch
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
From 12eed71f72cbb5d81b14f66fde254058f121979a Mon Sep 17 00:00:00 2001
|
||||||
|
From: qihao <qihao_yewu@cmss.chinamobile.com>
|
||||||
|
Date: Wed, 25 Oct 2023 17:44:42 +0800
|
||||||
|
Subject: [PATCH] hw/virtio/virtio-pmem: Replace impossible check by assertion
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
cheery-pick from 184256d261cfc773360f14a80092ace5a716bb8f
|
||||||
|
|
||||||
|
The get_memory_region() handler is used when (un)plugging the
|
||||||
|
device, which can only occur *after* it is realized.
|
||||||
|
|
||||||
|
virtio_pmem_realize() ensure the instance can not be realized
|
||||||
|
without 'memdev'. Remove the superfluous check, replacing it
|
||||||
|
by an assertion.
|
||||||
|
|
||||||
|
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
|
||||||
|
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
|
||||||
|
Reviewed-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
|
||||||
|
Message-Id: <20231017140150.44995-2-philmd@linaro.org>
|
||||||
|
Signed-off-by: qihao_yewu <qihao_yewu@cmss.chinamobile.com>
|
||||||
|
---
|
||||||
|
hw/virtio/virtio-pmem.c | 5 +----
|
||||||
|
1 file changed, 1 insertion(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/hw/virtio/virtio-pmem.c b/hw/virtio/virtio-pmem.c
|
||||||
|
index d1aeb90a31..39f3949a3b 100644
|
||||||
|
--- a/hw/virtio/virtio-pmem.c
|
||||||
|
+++ b/hw/virtio/virtio-pmem.c
|
||||||
|
@@ -149,10 +149,7 @@ static void virtio_pmem_fill_device_info(const VirtIOPMEM *pmem,
|
||||||
|
static MemoryRegion *virtio_pmem_get_memory_region(VirtIOPMEM *pmem,
|
||||||
|
Error **errp)
|
||||||
|
{
|
||||||
|
- if (!pmem->memdev) {
|
||||||
|
- error_setg(errp, "'%s' property must be set", VIRTIO_PMEM_MEMDEV_PROP);
|
||||||
|
- return NULL;
|
||||||
|
- }
|
||||||
|
+ assert(pmem->memdev);
|
||||||
|
|
||||||
|
return &pmem->memdev->mr;
|
||||||
|
}
|
||||||
|
--
|
||||||
|
2.41.0.windows.1
|
||||||
|
|
||||||
36
qemu.spec
36
qemu.spec
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
Name: qemu
|
Name: qemu
|
||||||
Version: 6.2.0
|
Version: 6.2.0
|
||||||
Release: 82
|
Release: 83
|
||||||
Epoch: 10
|
Epoch: 10
|
||||||
Summary: QEMU is a generic and open source machine emulator and virtualizer
|
Summary: QEMU is a generic and open source machine emulator and virtualizer
|
||||||
License: GPLv2 and BSD and MIT and CC-BY-SA-4.0
|
License: GPLv2 and BSD and MIT and CC-BY-SA-4.0
|
||||||
@ -583,6 +583,22 @@ Patch0568: hw-vfio-pci-quirks-Sanitize-capability-pointer.patch
|
|||||||
Patch0569: vhost-user-fs-Back-up-vqs-before-cleaning-up-vhost_d.patch
|
Patch0569: vhost-user-fs-Back-up-vqs-before-cleaning-up-vhost_d.patch
|
||||||
Patch0570: migration-rdma-zore-out-head.repeat-to-make-the-erro.patch
|
Patch0570: migration-rdma-zore-out-head.repeat-to-make-the-erro.patch
|
||||||
Patch0571: thread-pool-optimize-scheduling-of-completion-bottom.patch
|
Patch0571: thread-pool-optimize-scheduling-of-completion-bottom.patch
|
||||||
|
Patch0572: hw-arm-xlnx-zynqmp-fix-unsigned-error-when-checking-.patch
|
||||||
|
Patch0573: hw-i2c-pmbus_device-Fix-modifying-QOM-class-internal.patch
|
||||||
|
Patch0574: crypto-remove-shadowed-ret-variable.patch
|
||||||
|
Patch0575: target-i386-add-support-for-FLUSH_L1D-feature.patch
|
||||||
|
Patch0576: target-i386-add-support-for-FB_CLEAR-feature.patch
|
||||||
|
Patch0577: target-i386-Export-MSR_ARCH_CAPABILITIES-bits-to-gue.patch
|
||||||
|
Patch0578: target-i386-Add-support-for-MCDT_NO-in-CPUID-enumera.patch
|
||||||
|
Patch0579: target-i386-Allow-MCDT_NO-if-host-supports.patch
|
||||||
|
Patch0580: target-i386-Add-new-bit-definitions-of-MSR_IA32_ARCH.patch
|
||||||
|
Patch0581: target-i386-Add-few-security-fix-bits-in-ARCH_CAPABI.patch
|
||||||
|
Patch0582: ui-vnc-clipboard-fix-infinite-loop-in-inflate_buffer.patch
|
||||||
|
Patch0583: qga-Fix-memory-leak-when-output-stream-is-unused.patch
|
||||||
|
Patch0584: disas-riscv-Fix-the-typo-of-inverted-order-of-pmpadd.patch
|
||||||
|
Patch0585: softmmu-dirtylimit-Add-parameter-check-for-hmp-set_v.patch
|
||||||
|
Patch0586: tests-Fix-printf-format-string-in-acpi-utils.c.patch
|
||||||
|
Patch0587: hw-virtio-virtio-pmem-Replace-impossible-check-by-as.patch
|
||||||
|
|
||||||
BuildRequires: flex
|
BuildRequires: flex
|
||||||
BuildRequires: gcc
|
BuildRequires: gcc
|
||||||
@ -1156,6 +1172,24 @@ getent passwd qemu >/dev/null || \
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Oct 30 2023 <fengjiabo1@huawei.com> - 10:6.2.0-83
|
||||||
|
- hw/virtio/virtio-pmem: Replace impossible check by assertion
|
||||||
|
- tests: Fix printf format string in acpi-utils.c
|
||||||
|
- softmmu/dirtylimit: Add parameter check for hmp "set_vcpu_dirty_limit"
|
||||||
|
- disas/riscv: Fix the typo of inverted order of pmpaddr13 and pmpaddr14
|
||||||
|
- qga: Fix memory leak when output stream is unused
|
||||||
|
- ui/vnc-clipboard: fix infinite loop in inflate_buffer (CVE-2023-3255)
|
||||||
|
- target/i386: Add few security fix bits in ARCH_CAPABILITIES into SapphireRapids CPU model
|
||||||
|
- target/i386: Add new bit definitions of MSR_IA32_ARCH_CAPABILITIES
|
||||||
|
- target/i386: Allow MCDT_NO if host supports
|
||||||
|
- target/i386: Add support for MCDT_NO in CPUID enumeration
|
||||||
|
- target/i386: Export MSR_ARCH_CAPABILITIES bits to guests
|
||||||
|
- target/i386: add support for FB_CLEAR feature
|
||||||
|
- target/i386: add support for FLUSH_L1D feature
|
||||||
|
- crypto: remove shadowed 'ret' variable
|
||||||
|
- hw/i2c/pmbus_device: Fix modifying QOM class internals from instance
|
||||||
|
- hw/arm/xlnx-zynqmp: fix unsigned error when checking the RPUs number
|
||||||
|
|
||||||
* Mon Oct 30 2023 <fengjiabo1@huawei.com> - 10:6.2.0-82
|
* Mon Oct 30 2023 <fengjiabo1@huawei.com> - 10:6.2.0-82
|
||||||
- thread-pool: optimize scheduling of completion bottom half
|
- thread-pool: optimize scheduling of completion bottom half
|
||||||
- migration/rdma: zore out head.repeat to make the error more clear
|
- migration/rdma: zore out head.repeat to make the error more clear
|
||||||
|
|||||||
56
qga-Fix-memory-leak-when-output-stream-is-unused.patch
Normal file
56
qga-Fix-memory-leak-when-output-stream-is-unused.patch
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
From 877d97f7e7b88c9cb8754bece152dc27a2a0f47a Mon Sep 17 00:00:00 2001
|
||||||
|
From: qihao <qihao_yewu@cmss.chinamobile.com>
|
||||||
|
Date: Mon, 16 Oct 2023 10:22:03 +0800
|
||||||
|
Subject: [PATCH] qga: Fix memory leak when output stream is unused
|
||||||
|
|
||||||
|
cheery-pick from d6f67b83b81bf49b5c62e77143ed39c020e51830
|
||||||
|
|
||||||
|
If capture-output is requested but one of the channels goes unused (eg.
|
||||||
|
we attempt to capture stderr but the command never writes to stderr), we
|
||||||
|
can leak memory.
|
||||||
|
|
||||||
|
guest_exec_output_watch() is (from what I understand) unconditionally
|
||||||
|
called for both streams if output capture is requested. The first call
|
||||||
|
will always pass the `p->size == p->length` check b/c both values are
|
||||||
|
0. Then GUEST_EXEC_IO_SIZE bytes will be allocated for the stream.
|
||||||
|
|
||||||
|
But when we reap the exited process there's a `gei->err.length > 0`
|
||||||
|
check to actually free the buffer. Which does not get run if the command
|
||||||
|
doesn't write to the stream.
|
||||||
|
|
||||||
|
Fix by making free() unconditional.
|
||||||
|
|
||||||
|
Reviewed-by: Konstantin Kostiuk <kkostiuk@redhat.com>
|
||||||
|
Signed-off-by: Daniel Xu <dxu@dxuuu.xyz>
|
||||||
|
Signed-off-by: Konstantin Kostiuk <kkostiuk@redhat.com>
|
||||||
|
Signed-off-by: qihao_yewu <qihao_yewu@cmss.chinamobile.com>
|
||||||
|
---
|
||||||
|
qga/commands.c | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/qga/commands.c b/qga/commands.c
|
||||||
|
index 80501e4a73..05f89725be 100644
|
||||||
|
--- a/qga/commands.c
|
||||||
|
+++ b/qga/commands.c
|
||||||
|
@@ -210,16 +210,16 @@ GuestExecStatus *qmp_guest_exec_status(int64_t pid, Error **errp)
|
||||||
|
if (gei->out.length > 0) {
|
||||||
|
ges->has_out_data = true;
|
||||||
|
ges->out_data = g_base64_encode(gei->out.data, gei->out.length);
|
||||||
|
- g_free(gei->out.data);
|
||||||
|
ges->has_out_truncated = gei->out.truncated;
|
||||||
|
}
|
||||||
|
+ g_free(gei->out.data);
|
||||||
|
|
||||||
|
if (gei->err.length > 0) {
|
||||||
|
ges->has_err_data = true;
|
||||||
|
ges->err_data = g_base64_encode(gei->err.data, gei->err.length);
|
||||||
|
- g_free(gei->err.data);
|
||||||
|
ges->has_err_truncated = gei->err.truncated;
|
||||||
|
}
|
||||||
|
+ g_free(gei->err.data);
|
||||||
|
|
||||||
|
QTAILQ_REMOVE(&guest_exec_state.processes, gei, next);
|
||||||
|
g_free(gei);
|
||||||
|
--
|
||||||
|
2.41.0.windows.1
|
||||||
|
|
||||||
55
softmmu-dirtylimit-Add-parameter-check-for-hmp-set_v.patch
Normal file
55
softmmu-dirtylimit-Add-parameter-check-for-hmp-set_v.patch
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
From 381500cc0b96e85165ae0314839c34976a4da1b2 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Hyman=20Huang=28=E9=BB=84=E5=8B=87=29?=
|
||||||
|
<yong.huang@smartx.com>
|
||||||
|
Date: Fri, 18 Nov 2022 10:08:54 +0800
|
||||||
|
Subject: [PATCH] softmmu/dirtylimit: Add parameter check for hmp
|
||||||
|
"set_vcpu_dirty_limit"
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
dirty_rate paraemter of hmp command "set_vcpu_dirty_limit" is invalid
|
||||||
|
if less than 0, so add parameter check for it.
|
||||||
|
|
||||||
|
Note that this patch also delete the unsolicited help message and
|
||||||
|
clean up the code.
|
||||||
|
|
||||||
|
Signed-off-by: Hyman Huang(黄勇) <yong.huang@smartx.com>
|
||||||
|
Reviewed-by: Markus Armbruster <armbru@redhat.com>
|
||||||
|
Reviewed-by: Peter Xu <peterx@redhat.com>
|
||||||
|
Reviewed-by: Juan Quintela <quintela@redhat.com>
|
||||||
|
Message-Id: <168618975839.6361.17407633874747688653-1@git.sr.ht>
|
||||||
|
Signed-off-by: Juan Quintela <quintela@redhat.com>
|
||||||
|
---
|
||||||
|
softmmu/dirtylimit.c | 13 +++++++------
|
||||||
|
1 file changed, 7 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/softmmu/dirtylimit.c b/softmmu/dirtylimit.c
|
||||||
|
index 8d98cb7f2c..5041c230d0 100644
|
||||||
|
--- a/softmmu/dirtylimit.c
|
||||||
|
+++ b/softmmu/dirtylimit.c
|
||||||
|
@@ -515,14 +515,15 @@ void hmp_set_vcpu_dirty_limit(Monitor *mon, const QDict *qdict)
|
||||||
|
int64_t cpu_index = qdict_get_try_int(qdict, "cpu_index", -1);
|
||||||
|
Error *err = NULL;
|
||||||
|
|
||||||
|
- qmp_set_vcpu_dirty_limit(!!(cpu_index != -1), cpu_index, dirty_rate, &err);
|
||||||
|
- if (err) {
|
||||||
|
- hmp_handle_error(mon, err);
|
||||||
|
- return;
|
||||||
|
+ if (dirty_rate < 0) {
|
||||||
|
+ error_setg(&err, "invalid dirty page limit %" PRId64, dirty_rate);
|
||||||
|
+ goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
- monitor_printf(mon, "[Please use 'info vcpu_dirty_limit' to query "
|
||||||
|
- "dirty limit for virtual CPU]\n");
|
||||||
|
+ qmp_set_vcpu_dirty_limit(!!(cpu_index != -1), cpu_index, dirty_rate, &err);
|
||||||
|
+
|
||||||
|
+out:
|
||||||
|
+ hmp_handle_error(mon, err);
|
||||||
|
}
|
||||||
|
|
||||||
|
static struct DirtyLimitInfo *dirtylimit_query_vcpu(int cpu_index)
|
||||||
|
--
|
||||||
|
2.41.0.windows.1
|
||||||
|
|
||||||
53
target-i386-Add-few-security-fix-bits-in-ARCH_CAPABI.patch
Normal file
53
target-i386-Add-few-security-fix-bits-in-ARCH_CAPABI.patch
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
From 732cb06c9b652cf899e9f329ad74ec3dae3d18b2 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Lei Wang <lei4.wang@intel.com>
|
||||||
|
Date: Thu, 6 Jul 2023 13:49:48 +0800
|
||||||
|
Subject: [PATCH] target/i386: Add few security fix bits in ARCH_CAPABILITIES
|
||||||
|
into SapphireRapids CPU model
|
||||||
|
|
||||||
|
commit 3baf7ae63505eb1652d1e52d65798307fead8539 upstream.
|
||||||
|
|
||||||
|
SapphireRapids has bit 13, 14 and 15 of MSR_IA32_ARCH_CAPABILITIES
|
||||||
|
enabled, which are related to some security fixes.
|
||||||
|
|
||||||
|
Add version 2 of SapphireRapids CPU model with those bits enabled also.
|
||||||
|
|
||||||
|
Intel-SIG: commit 3baf7ae63505 ("target/i386: Add few security fix bits in ARCH_CAPABILITIES into SapphireRapids CPU model")
|
||||||
|
Backport support of SapphireRapids CPU Model version 2
|
||||||
|
|
||||||
|
Signed-off-by: Lei Wang <lei4.wang@intel.com>
|
||||||
|
Signed-off-by: Tao Su <tao1.su@linux.intel.com>
|
||||||
|
Message-ID: <20230706054949.66556-6-tao1.su@linux.intel.com>
|
||||||
|
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||||
|
[ jason: amend commit log ]
|
||||||
|
Signed-off-by: Jason Zeng <jason.zeng@intel.com>
|
||||||
|
---
|
||||||
|
target/i386/cpu.c | 13 +++++++++++--
|
||||||
|
1 file changed, 11 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/target/i386/cpu.c b/target/i386/cpu.c
|
||||||
|
index 685bfca37e..eb911b12fa 100644
|
||||||
|
--- a/target/i386/cpu.c
|
||||||
|
+++ b/target/i386/cpu.c
|
||||||
|
@@ -3675,8 +3675,17 @@ static const X86CPUDefinition builtin_x86_defs[] = {
|
||||||
|
.model_id = "Intel Xeon Processor (SapphireRapids)",
|
||||||
|
.versions = (X86CPUVersionDefinition[]) {
|
||||||
|
{ .version = 1 },
|
||||||
|
- { /* end of list */ },
|
||||||
|
- },
|
||||||
|
+ {
|
||||||
|
+ .version = 2,
|
||||||
|
+ .props = (PropValue[]) {
|
||||||
|
+ { "sbdr-ssdp-no", "on" },
|
||||||
|
+ { "fbsdp-no", "on" },
|
||||||
|
+ { "psdp-no", "on" },
|
||||||
|
+ { /* end of list */ }
|
||||||
|
+ }
|
||||||
|
+ },
|
||||||
|
+ { /* end of list */ }
|
||||||
|
+ }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.name = "Denverton",
|
||||||
|
--
|
||||||
|
2.41.0.windows.1
|
||||||
|
|
||||||
43
target-i386-Add-new-bit-definitions-of-MSR_IA32_ARCH.patch
Normal file
43
target-i386-Add-new-bit-definitions-of-MSR_IA32_ARCH.patch
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
From cdd89390a5e8fb55515798ab4ec5ec5fd6fed32b Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tao Su <tao1.su@linux.intel.com>
|
||||||
|
Date: Thu, 6 Jul 2023 13:49:47 +0800
|
||||||
|
Subject: [PATCH] target/i386: Add new bit definitions of
|
||||||
|
MSR_IA32_ARCH_CAPABILITIES
|
||||||
|
|
||||||
|
commit 6c43ec3b206956a8a3008accafe9eb2dfd885190 upstream.
|
||||||
|
|
||||||
|
Currently, bit 13, 14, 15 and 24 of MSR_IA32_ARCH_CAPABILITIES are
|
||||||
|
disclosed for fixing security issues, so add those bit definitions.
|
||||||
|
|
||||||
|
Intel-SIG: commit 6c43ec3b2069 ("target/i386: Add new bit definitions of MSR_IA32_ARCH_CAPABILITIES")
|
||||||
|
Backport new bit definitions of MSR_IA32_ARCH_CAPABILITIES
|
||||||
|
|
||||||
|
Signed-off-by: Tao Su <tao1.su@linux.intel.com>
|
||||||
|
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
|
||||||
|
Message-ID: <20230706054949.66556-5-tao1.su@linux.intel.com>
|
||||||
|
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||||
|
[ jason: amend commit log ]
|
||||||
|
Signed-off-by: Jason Zeng <jason zeng@intel.com>
|
||||||
|
---
|
||||||
|
target/i386/cpu.h | 4 ++++
|
||||||
|
1 file changed, 4 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/target/i386/cpu.h b/target/i386/cpu.h
|
||||||
|
index edbaba0d62..37c687d4d8 100644
|
||||||
|
--- a/target/i386/cpu.h
|
||||||
|
+++ b/target/i386/cpu.h
|
||||||
|
@@ -966,7 +966,11 @@ uint64_t x86_cpu_get_supported_feature_word(FeatureWord w,
|
||||||
|
#define MSR_ARCH_CAP_PSCHANGE_MC_NO (1U << 6)
|
||||||
|
#define MSR_ARCH_CAP_TSX_CTRL_MSR (1U << 7)
|
||||||
|
#define MSR_ARCH_CAP_TAA_NO (1U << 8)
|
||||||
|
+#define MSR_ARCH_CAP_SBDR_SSDP_NO (1U << 13)
|
||||||
|
+#define MSR_ARCH_CAP_FBSDP_NO (1U << 14)
|
||||||
|
+#define MSR_ARCH_CAP_PSDP_NO (1U << 15)
|
||||||
|
#define MSR_ARCH_CAP_FB_CLEAR (1U << 17)
|
||||||
|
+#define MSR_ARCH_CAP_PBRSB_NO (1U << 24)
|
||||||
|
|
||||||
|
#define MSR_CORE_CAP_SPLIT_LOCK_DETECT (1U << 5)
|
||||||
|
|
||||||
|
--
|
||||||
|
2.41.0.windows.1
|
||||||
|
|
||||||
112
target-i386-Add-support-for-MCDT_NO-in-CPUID-enumera.patch
Normal file
112
target-i386-Add-support-for-MCDT_NO-in-CPUID-enumera.patch
Normal file
@ -0,0 +1,112 @@
|
|||||||
|
From a7329b80a2c8a50e53da17aa4eff0ef50aa21413 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tao Su <tao1.su@linux.intel.com>
|
||||||
|
Date: Thu, 6 Jul 2023 13:49:45 +0800
|
||||||
|
Subject: [PATCH] target/i386: Add support for MCDT_NO in CPUID enumeration
|
||||||
|
|
||||||
|
commit 9dd8b71091f47bac395f543779269c14d8d93c60 upstream.
|
||||||
|
|
||||||
|
CPUID.(EAX=7,ECX=2):EDX[bit 5] enumerates MCDT_NO. Processors enumerate
|
||||||
|
this bit as 1 do not exhibit MXCSR Configuration Dependent Timing (MCDT)
|
||||||
|
behavior and do not need to be mitigated to avoid data-dependent behavior
|
||||||
|
for certain instructions.
|
||||||
|
|
||||||
|
Since MCDT_NO is in a new sub-leaf, add a new CPUID feature word
|
||||||
|
FEAT_7_2_EDX. Also update cpuid_level_func7 by FEAT_7_2_EDX.
|
||||||
|
|
||||||
|
Intel-SIG: commit 9dd8b71091f4 ("target/i386: Add support for MCDT_NO in CPUID enumeration")
|
||||||
|
Backport support for MCDT_NO in CPUID enumeration
|
||||||
|
|
||||||
|
Signed-off-by: Tao Su <tao1.su@linux.intel.com>
|
||||||
|
Reviewed-by: Xiaoyao Li <xiaoyao.li@intel.com>
|
||||||
|
Message-ID: <20230706054949.66556-3-tao1.su@linux.intel.com>
|
||||||
|
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||||
|
[ jason: resolve conflict with FEAT_7_1_EDX which not backported yet ]
|
||||||
|
Signed-off-by: Jason Zeng <jason.zeng@intel.com>
|
||||||
|
---
|
||||||
|
target/i386/cpu.c | 26 ++++++++++++++++++++++++++
|
||||||
|
target/i386/cpu.h | 4 ++++
|
||||||
|
2 files changed, 30 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/target/i386/cpu.c b/target/i386/cpu.c
|
||||||
|
index b878a1bf20..685bfca37e 100644
|
||||||
|
--- a/target/i386/cpu.c
|
||||||
|
+++ b/target/i386/cpu.c
|
||||||
|
@@ -663,6 +663,7 @@ void x86_cpu_vendor_words2str(char *dst, uint32_t vendor1,
|
||||||
|
#define TCG_7_0_EDX_FEATURES CPUID_7_0_EDX_FSRM
|
||||||
|
#define TCG_7_1_EAX_FEATURES (CPUID_7_1_EAX_FZRM | CPUID_7_1_EAX_FSRS | \
|
||||||
|
CPUID_7_1_EAX_FSRC)
|
||||||
|
+#define TCG_7_2_EDX_FEATURES 0
|
||||||
|
#define TCG_APM_FEATURES 0
|
||||||
|
#define TCG_6_EAX_FEATURES CPUID_6_EAX_ARAT
|
||||||
|
#define TCG_XSAVE_FEATURES (CPUID_XSAVE_XSAVEOPT | CPUID_XSAVE_XGETBV1)
|
||||||
|
@@ -886,6 +887,25 @@ FeatureWordInfo feature_word_info[FEATURE_WORDS] = {
|
||||||
|
},
|
||||||
|
.tcg_features = TCG_7_1_EAX_FEATURES,
|
||||||
|
},
|
||||||
|
+ [FEAT_7_2_EDX] = {
|
||||||
|
+ .type = CPUID_FEATURE_WORD,
|
||||||
|
+ .feat_names = {
|
||||||
|
+ NULL, NULL, NULL, NULL,
|
||||||
|
+ NULL, "mcdt-no", NULL, NULL,
|
||||||
|
+ NULL, NULL, NULL, NULL,
|
||||||
|
+ NULL, NULL, NULL, NULL,
|
||||||
|
+ NULL, NULL, NULL, NULL,
|
||||||
|
+ NULL, NULL, NULL, NULL,
|
||||||
|
+ NULL, NULL, NULL, NULL,
|
||||||
|
+ NULL, NULL, NULL, NULL,
|
||||||
|
+ },
|
||||||
|
+ .cpuid = {
|
||||||
|
+ .eax = 7,
|
||||||
|
+ .needs_ecx = true, .ecx = 2,
|
||||||
|
+ .reg = R_EDX,
|
||||||
|
+ },
|
||||||
|
+ .tcg_features = TCG_7_2_EDX_FEATURES,
|
||||||
|
+ },
|
||||||
|
[FEAT_8000_0007_EDX] = {
|
||||||
|
.type = CPUID_FEATURE_WORD,
|
||||||
|
.feat_names = {
|
||||||
|
@@ -5531,6 +5551,11 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index, uint32_t count,
|
||||||
|
*ebx = 0;
|
||||||
|
*ecx = 0;
|
||||||
|
*edx = 0;
|
||||||
|
+ } else if (count == 2) {
|
||||||
|
+ *edx = env->features[FEAT_7_2_EDX];
|
||||||
|
+ *eax = 0;
|
||||||
|
+ *ebx = 0;
|
||||||
|
+ *ecx = 0;
|
||||||
|
} else {
|
||||||
|
*eax = 0;
|
||||||
|
*ebx = 0;
|
||||||
|
@@ -6361,6 +6386,7 @@ void x86_cpu_expand_features(X86CPU *cpu, Error **errp)
|
||||||
|
x86_cpu_adjust_feat_level(cpu, FEAT_6_EAX);
|
||||||
|
x86_cpu_adjust_feat_level(cpu, FEAT_7_0_ECX);
|
||||||
|
x86_cpu_adjust_feat_level(cpu, FEAT_7_1_EAX);
|
||||||
|
+ x86_cpu_adjust_feat_level(cpu, FEAT_7_2_EDX);
|
||||||
|
x86_cpu_adjust_feat_level(cpu, FEAT_8000_0001_EDX);
|
||||||
|
x86_cpu_adjust_feat_level(cpu, FEAT_8000_0001_ECX);
|
||||||
|
x86_cpu_adjust_feat_level(cpu, FEAT_8000_0007_EDX);
|
||||||
|
diff --git a/target/i386/cpu.h b/target/i386/cpu.h
|
||||||
|
index d9aac5acd2..edbaba0d62 100644
|
||||||
|
--- a/target/i386/cpu.h
|
||||||
|
+++ b/target/i386/cpu.h
|
||||||
|
@@ -601,6 +601,7 @@ typedef enum FeatureWord {
|
||||||
|
FEAT_SGX_12_0_EAX, /* CPUID[EAX=0x12,ECX=0].EAX (SGX) */
|
||||||
|
FEAT_SGX_12_0_EBX, /* CPUID[EAX=0x12,ECX=0].EBX (SGX MISCSELECT[31:0]) */
|
||||||
|
FEAT_SGX_12_1_EAX, /* CPUID[EAX=0x12,ECX=1].EAX (SGX ATTRIBUTES[31:0]) */
|
||||||
|
+ FEAT_7_2_EDX, /* CPUID[EAX=7,ECX=2].EDX */
|
||||||
|
FEATURE_WORDS,
|
||||||
|
} FeatureWord;
|
||||||
|
|
||||||
|
@@ -889,6 +890,9 @@ uint64_t x86_cpu_get_supported_feature_word(FeatureWord w,
|
||||||
|
/* Fast Short REP CMPS/SCAS */
|
||||||
|
#define CPUID_7_1_EAX_FSRC (1U << 12)
|
||||||
|
|
||||||
|
+/* Do not exhibit MXCSR Configuration Dependent Timing (MCDT) behavior */
|
||||||
|
+#define CPUID_7_2_EDX_MCDT_NO (1U << 5)
|
||||||
|
+
|
||||||
|
/* XFD Extend Feature Disabled */
|
||||||
|
#define CPUID_D_1_EAX_XFD (1U << 4)
|
||||||
|
|
||||||
|
--
|
||||||
|
2.41.0.windows.1
|
||||||
|
|
||||||
43
target-i386-Allow-MCDT_NO-if-host-supports.patch
Normal file
43
target-i386-Allow-MCDT_NO-if-host-supports.patch
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
From 6beadcde4d28a1e4ad3267b7702162ecf9d4541b Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tao Su <tao1.su@linux.intel.com>
|
||||||
|
Date: Thu, 6 Jul 2023 13:49:46 +0800
|
||||||
|
Subject: [PATCH] target/i386: Allow MCDT_NO if host supports
|
||||||
|
|
||||||
|
commit ba3709feaab44631315e02cd793cfccae4c6bd2a upstream.
|
||||||
|
|
||||||
|
MCDT_NO bit indicates HW contains the security fix and doesn't need to
|
||||||
|
be mitigated to avoid data-dependent behaviour for certain instructions.
|
||||||
|
It needs no hypervisor support. Treat it as supported regardless of what
|
||||||
|
KVM reports.
|
||||||
|
|
||||||
|
Intel-SIG: commit ba3709feaab4 ("target/i386: Allow MCDT_NO if host supports")
|
||||||
|
Backport allowing MCDT_NO if host supports
|
||||||
|
|
||||||
|
Signed-off-by: Tao Su <tao1.su@linux.intel.com>
|
||||||
|
Reviewed-by: Xiaoyao Li <xiaoyao.li@intel.com>
|
||||||
|
Message-ID: <20230706054949.66556-4-tao1.su@linux.intel.com>
|
||||||
|
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||||
|
[ jason: amend commit log ]
|
||||||
|
Signed-off-by: Jason Zeng <jason.zeng@intel.com>
|
||||||
|
---
|
||||||
|
target/i386/kvm/kvm.c | 4 ++++
|
||||||
|
1 file changed, 4 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/target/i386/kvm/kvm.c b/target/i386/kvm/kvm.c
|
||||||
|
index d323d08dcb..55ee75e844 100644
|
||||||
|
--- a/target/i386/kvm/kvm.c
|
||||||
|
+++ b/target/i386/kvm/kvm.c
|
||||||
|
@@ -424,6 +424,10 @@ uint32_t kvm_arch_get_supported_cpuid(KVMState *s, uint32_t function,
|
||||||
|
uint32_t eax;
|
||||||
|
host_cpuid(7, 1, &eax, &unused, &unused, &unused);
|
||||||
|
ret |= eax & (CPUID_7_1_EAX_FZRM | CPUID_7_1_EAX_FSRS | CPUID_7_1_EAX_FSRC);
|
||||||
|
+ } else if (function == 7 && index == 2 && reg == R_EDX) {
|
||||||
|
+ uint32_t edx;
|
||||||
|
+ host_cpuid(7, 2, &unused, &unused, &unused, &edx);
|
||||||
|
+ ret |= edx & CPUID_7_2_EDX_MCDT_NO;
|
||||||
|
} else if (function == 0xd && index == 0 &&
|
||||||
|
(reg == R_EAX || reg == R_EDX)) {
|
||||||
|
/*
|
||||||
|
--
|
||||||
|
2.41.0.windows.1
|
||||||
|
|
||||||
47
target-i386-Export-MSR_ARCH_CAPABILITIES-bits-to-gue.patch
Normal file
47
target-i386-Export-MSR_ARCH_CAPABILITIES-bits-to-gue.patch
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
From 93551bb8747ffc9ef26fc3ced7be310d9aa805d6 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
|
||||||
|
Date: Fri, 23 Jun 2023 13:26:25 -0700
|
||||||
|
Subject: [PATCH] target/i386: Export MSR_ARCH_CAPABILITIES bits to guests
|
||||||
|
|
||||||
|
commit 5bef742cc4f0e21c80a31611af7881ba811e507f upstream.
|
||||||
|
|
||||||
|
On Intel CPUs there are certain bits in MSR_ARCH_CAPABILITIES that
|
||||||
|
indicates if the CPU is not affected by a vulnerability. Without these
|
||||||
|
bits guests may try to deploy the mitigation even if the CPU is not
|
||||||
|
affected.
|
||||||
|
|
||||||
|
Export the bits to guests that indicate immunity to hardware
|
||||||
|
vulnerabilities.
|
||||||
|
|
||||||
|
Intel-SIG: commit 5bef742cc4f0 ("target/i386: Export MSR_ARCH_CAPABILITIES bits to guests")
|
||||||
|
Backport exporting MSR_ARCH_CAPABILITIES bits to guests
|
||||||
|
|
||||||
|
Signed-off-by: Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
|
||||||
|
Message-ID: <63d85cc76d4cdc51e6c732478b81d8f13be11e5a.1687551881.git.pawan.kumar.gupta@linux.intel.com>
|
||||||
|
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||||
|
[ jason: amend commit log ]
|
||||||
|
Signed-off-by: Jason Zeng <jason.zeng@intel.com>
|
||||||
|
---
|
||||||
|
target/i386/cpu.c | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/target/i386/cpu.c b/target/i386/cpu.c
|
||||||
|
index 8adc84b7f9..b878a1bf20 100644
|
||||||
|
--- a/target/i386/cpu.c
|
||||||
|
+++ b/target/i386/cpu.c
|
||||||
|
@@ -981,10 +981,10 @@ FeatureWordInfo feature_word_info[FEATURE_WORDS] = {
|
||||||
|
"rdctl-no", "ibrs-all", "rsba", "skip-l1dfl-vmentry",
|
||||||
|
"ssb-no", "mds-no", "pschange-mc-no", "tsx-ctrl",
|
||||||
|
"taa-no", NULL, NULL, NULL,
|
||||||
|
- NULL, NULL, NULL, NULL,
|
||||||
|
+ NULL, "sbdr-ssdp-no", "fbsdp-no", "psdp-no",
|
||||||
|
NULL, "fb-clear", NULL, NULL,
|
||||||
|
NULL, NULL, NULL, NULL,
|
||||||
|
- NULL, NULL, NULL, NULL,
|
||||||
|
+ "pbrsb-no", NULL, NULL, NULL,
|
||||||
|
NULL, NULL, NULL, NULL,
|
||||||
|
},
|
||||||
|
.msr = {
|
||||||
|
--
|
||||||
|
2.41.0.windows.1
|
||||||
|
|
||||||
62
target-i386-add-support-for-FB_CLEAR-feature.patch
Normal file
62
target-i386-add-support-for-FB_CLEAR-feature.patch
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
From fb84b9baa665ffa4596fd871537e0544d60e40fc Mon Sep 17 00:00:00 2001
|
||||||
|
From: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||||
|
Date: Wed, 1 Feb 2023 08:57:59 -0500
|
||||||
|
Subject: [PATCH] target/i386: add support for FB_CLEAR feature
|
||||||
|
|
||||||
|
commit 22e1094ca82d5518c1b69aff3e87c550776ae1eb upstream.
|
||||||
|
|
||||||
|
As reported by the Intel's doc:
|
||||||
|
"FB_CLEAR: The processor will overwrite fill buffer values as part of
|
||||||
|
MD_CLEAR operations with the VERW instruction.
|
||||||
|
On these processors, L1D_FLUSH does not overwrite fill buffer values."
|
||||||
|
|
||||||
|
If this cpu feature is present in host, allow QEMU to choose whether to
|
||||||
|
show it to the guest too.
|
||||||
|
One disadvantage of not exposing it is that the guest will report
|
||||||
|
a non existing vulnerability in
|
||||||
|
/sys/devices/system/cpu/vulnerabilities/mmio_stale_data
|
||||||
|
because the mitigation is present only when the cpu has
|
||||||
|
(FLUSH_L1D and MD_CLEAR) or FB_CLEAR
|
||||||
|
features enabled.
|
||||||
|
|
||||||
|
Intel-SIG: commit 22e1094ca82d ("target/i386: add support for FB_CLEAR feature")
|
||||||
|
Backport support for FB_CLEAR feature
|
||||||
|
|
||||||
|
Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||||
|
Message-Id: <20230201135759.555607-3-eesposit@redhat.com>
|
||||||
|
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||||
|
[ jason: amend commit log ]
|
||||||
|
Signed-off-by: Jason Zeng <jason.zeng@intel.com>
|
||||||
|
---
|
||||||
|
target/i386/cpu.c | 2 +-
|
||||||
|
target/i386/cpu.h | 1 +
|
||||||
|
2 files changed, 2 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/target/i386/cpu.c b/target/i386/cpu.c
|
||||||
|
index 512bec3ca3..8adc84b7f9 100644
|
||||||
|
--- a/target/i386/cpu.c
|
||||||
|
+++ b/target/i386/cpu.c
|
||||||
|
@@ -982,7 +982,7 @@ FeatureWordInfo feature_word_info[FEATURE_WORDS] = {
|
||||||
|
"ssb-no", "mds-no", "pschange-mc-no", "tsx-ctrl",
|
||||||
|
"taa-no", NULL, NULL, NULL,
|
||||||
|
NULL, NULL, NULL, NULL,
|
||||||
|
- NULL, NULL, NULL, NULL,
|
||||||
|
+ NULL, "fb-clear", NULL, NULL,
|
||||||
|
NULL, NULL, NULL, NULL,
|
||||||
|
NULL, NULL, NULL, NULL,
|
||||||
|
NULL, NULL, NULL, NULL,
|
||||||
|
diff --git a/target/i386/cpu.h b/target/i386/cpu.h
|
||||||
|
index 9e094ef934..d9aac5acd2 100644
|
||||||
|
--- a/target/i386/cpu.h
|
||||||
|
+++ b/target/i386/cpu.h
|
||||||
|
@@ -962,6 +962,7 @@ uint64_t x86_cpu_get_supported_feature_word(FeatureWord w,
|
||||||
|
#define MSR_ARCH_CAP_PSCHANGE_MC_NO (1U << 6)
|
||||||
|
#define MSR_ARCH_CAP_TSX_CTRL_MSR (1U << 7)
|
||||||
|
#define MSR_ARCH_CAP_TAA_NO (1U << 8)
|
||||||
|
+#define MSR_ARCH_CAP_FB_CLEAR (1U << 17)
|
||||||
|
|
||||||
|
#define MSR_CORE_CAP_SPLIT_LOCK_DETECT (1U << 5)
|
||||||
|
|
||||||
|
--
|
||||||
|
2.41.0.windows.1
|
||||||
|
|
||||||
61
target-i386-add-support-for-FLUSH_L1D-feature.patch
Normal file
61
target-i386-add-support-for-FLUSH_L1D-feature.patch
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
From dd635e4b0340a426333b466a2222e5848dfda42c Mon Sep 17 00:00:00 2001
|
||||||
|
From: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||||
|
Date: Wed, 1 Feb 2023 08:57:58 -0500
|
||||||
|
Subject: [PATCH] target/i386: add support for FLUSH_L1D feature
|
||||||
|
|
||||||
|
commit 0e7e3bf1a552c178924867fa7c2f30ccc8a179e0 upstream.
|
||||||
|
|
||||||
|
As reported by Intel's doc:
|
||||||
|
"L1D_FLUSH: Writeback and invalidate the L1 data cache"
|
||||||
|
|
||||||
|
If this cpu feature is present in host, allow QEMU to choose whether to
|
||||||
|
show it to the guest too.
|
||||||
|
One disadvantage of not exposing it is that the guest will report
|
||||||
|
a non existing vulnerability in
|
||||||
|
/sys/devices/system/cpu/vulnerabilities/mmio_stale_data
|
||||||
|
because the mitigation is present only when the cpu has
|
||||||
|
(FLUSH_L1D and MD_CLEAR) or FB_CLEAR
|
||||||
|
features enabled.
|
||||||
|
|
||||||
|
Intel-SIG: commit 0e7e3bf1a552 ("target/i386: add support for FLUSH_L1D feature")
|
||||||
|
Backport support for FLUSH_L1D feature
|
||||||
|
|
||||||
|
Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||||
|
Message-Id: <20230201135759.555607-2-eesposit@redhat.com>
|
||||||
|
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||||
|
[ jason: amend commit log ]
|
||||||
|
Signed-off-by: Jason Zeng <jason.zeng@intel.com>
|
||||||
|
---
|
||||||
|
target/i386/cpu.c | 2 +-
|
||||||
|
target/i386/cpu.h | 2 ++
|
||||||
|
2 files changed, 3 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/target/i386/cpu.c b/target/i386/cpu.c
|
||||||
|
index 66b5eaa14e..512bec3ca3 100644
|
||||||
|
--- a/target/i386/cpu.c
|
||||||
|
+++ b/target/i386/cpu.c
|
||||||
|
@@ -858,7 +858,7 @@ FeatureWordInfo feature_word_info[FEATURE_WORDS] = {
|
||||||
|
"tsx-ldtrk", NULL, NULL /* pconfig */, NULL,
|
||||||
|
NULL, NULL, "amx-bf16", "avx512-fp16",
|
||||||
|
"amx-tile", "amx-int8", "spec-ctrl", "stibp",
|
||||||
|
- NULL, "arch-capabilities", "core-capability", "ssbd",
|
||||||
|
+ "flush-l1d", "arch-capabilities", "core-capability", "ssbd",
|
||||||
|
},
|
||||||
|
.cpuid = {
|
||||||
|
.eax = 7,
|
||||||
|
diff --git a/target/i386/cpu.h b/target/i386/cpu.h
|
||||||
|
index d0c7791a1e..9e094ef934 100644
|
||||||
|
--- a/target/i386/cpu.h
|
||||||
|
+++ b/target/i386/cpu.h
|
||||||
|
@@ -869,6 +869,8 @@ uint64_t x86_cpu_get_supported_feature_word(FeatureWord w,
|
||||||
|
#define CPUID_7_0_EDX_SPEC_CTRL (1U << 26)
|
||||||
|
/* Single Thread Indirect Branch Predictors */
|
||||||
|
#define CPUID_7_0_EDX_STIBP (1U << 27)
|
||||||
|
+/* Flush L1D cache */
|
||||||
|
+#define CPUID_7_0_EDX_FLUSH_L1D (1U << 28)
|
||||||
|
/* Arch Capabilities */
|
||||||
|
#define CPUID_7_0_EDX_ARCH_CAPABILITIES (1U << 29)
|
||||||
|
/* Core Capability */
|
||||||
|
--
|
||||||
|
2.41.0.windows.1
|
||||||
|
|
||||||
30
tests-Fix-printf-format-string-in-acpi-utils.c.patch
Normal file
30
tests-Fix-printf-format-string-in-acpi-utils.c.patch
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
From 847becf4850bc244b140644cb577e17e5ba5e732 Mon Sep 17 00:00:00 2001
|
||||||
|
From: zhujun2 <zhujun2_yewu@cmss.chinamobile.com>
|
||||||
|
Date: Thu, 26 Oct 2023 19:52:59 -0700
|
||||||
|
Subject: [PATCH] tests: Fix printf format string in acpi-utils.c
|
||||||
|
|
||||||
|
Inside of acpi_fetch_table() arguments are
|
||||||
|
printed via fprintf but '%d' is used to print @flags (of type
|
||||||
|
uint). Use '%u' instead.
|
||||||
|
|
||||||
|
Signed-off-by: zhujun2 <zhujun2_yewu@cmss.chinamobile.com>
|
||||||
|
---
|
||||||
|
tests/qtest/acpi-utils.c | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/tests/qtest/acpi-utils.c b/tests/qtest/acpi-utils.c
|
||||||
|
index 766c48e3a6..c6f5169b80 100644
|
||||||
|
--- a/tests/qtest/acpi-utils.c
|
||||||
|
+++ b/tests/qtest/acpi-utils.c
|
||||||
|
@@ -103,7 +103,7 @@ void acpi_fetch_table(QTestState *qts, uint8_t **aml, uint32_t *aml_len,
|
||||||
|
char *fname = NULL;
|
||||||
|
GError *error = NULL;
|
||||||
|
|
||||||
|
- fprintf(stderr, "Invalid '%.4s'(%d)\n", *aml, *aml_len);
|
||||||
|
+ fprintf(stderr, "Invalid '%.4s'(%u)\n", *aml, *aml_len);
|
||||||
|
fd = g_file_open_tmp("malformed-XXXXXX.dat", &fname, &error);
|
||||||
|
g_assert_no_error(error);
|
||||||
|
fprintf(stderr, "Dumping invalid table into '%s'\n", fname);
|
||||||
|
--
|
||||||
|
2.41.0.windows.1
|
||||||
|
|
||||||
58
ui-vnc-clipboard-fix-infinite-loop-in-inflate_buffer.patch
Normal file
58
ui-vnc-clipboard-fix-infinite-loop-in-inflate_buffer.patch
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
From 2858029a5dbdd3fab73b1884e296daa3f3f0b1a1 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Mauro Matteo Cascella <mcascell@redhat.com>
|
||||||
|
Date: Tue, 4 Jul 2023 10:41:22 +0200
|
||||||
|
Subject: [PATCH] ui/vnc-clipboard: fix infinite loop in inflate_buffer
|
||||||
|
(CVE-2023-3255)
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
A wrong exit condition may lead to an infinite loop when inflating a
|
||||||
|
valid zlib buffer containing some extra bytes in the `inflate_buffer`
|
||||||
|
function. The bug only occurs post-authentication. Return the buffer
|
||||||
|
immediately if the end of the compressed data has been reached
|
||||||
|
(Z_STREAM_END).
|
||||||
|
|
||||||
|
Fixes: CVE-2023-3255
|
||||||
|
Fixes: 0bf41cab ("ui/vnc: clipboard support")
|
||||||
|
Reported-by: Kevin Denis <kevin.denis@synacktiv.com>
|
||||||
|
Signed-off-by: Mauro Matteo Cascella <mcascell@redhat.com>
|
||||||
|
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
|
||||||
|
Tested-by: Marc-André Lureau <marcandre.lureau@redhat.com>
|
||||||
|
Message-ID: <20230704084210.101822-1-mcascell@redhat.com>
|
||||||
|
---
|
||||||
|
ui/vnc-clipboard.c | 10 ++++------
|
||||||
|
1 file changed, 4 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/ui/vnc-clipboard.c b/ui/vnc-clipboard.c
|
||||||
|
index 67284b556c..c84599cfdb 100644
|
||||||
|
--- a/ui/vnc-clipboard.c
|
||||||
|
+++ b/ui/vnc-clipboard.c
|
||||||
|
@@ -51,8 +51,11 @@ static uint8_t *inflate_buffer(uint8_t *in, uint32_t in_len, uint32_t *size)
|
||||||
|
ret = inflate(&stream, Z_FINISH);
|
||||||
|
switch (ret) {
|
||||||
|
case Z_OK:
|
||||||
|
- case Z_STREAM_END:
|
||||||
|
break;
|
||||||
|
+ case Z_STREAM_END:
|
||||||
|
+ *size = stream.total_out;
|
||||||
|
+ inflateEnd(&stream);
|
||||||
|
+ return out;
|
||||||
|
case Z_BUF_ERROR:
|
||||||
|
out_len <<= 1;
|
||||||
|
if (out_len > (1 << 20)) {
|
||||||
|
@@ -67,11 +70,6 @@ static uint8_t *inflate_buffer(uint8_t *in, uint32_t in_len, uint32_t *size)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- *size = stream.total_out;
|
||||||
|
- inflateEnd(&stream);
|
||||||
|
-
|
||||||
|
- return out;
|
||||||
|
-
|
||||||
|
err_end:
|
||||||
|
inflateEnd(&stream);
|
||||||
|
err:
|
||||||
|
--
|
||||||
|
2.41.0.windows.1
|
||||||
|
|
||||||
Loading…
x
Reference in New Issue
Block a user