From c26a5952e88e46f4ee61655a630f83245153d1dd Mon Sep 17 00:00:00 2001 From: xianglai li Date: Fri, 4 Aug 2023 11:18:20 +0800 Subject: [PATCH] Synchronize upstream patches to fix TPM issues. Fix the exception of adding TPM devices via virt-manager by synchronizing upstream patches. Synchronize upstream patches "Use correct tpm device for all non-x86" Synchronize upstream patches "validate: Drop tpm-tis arch validation" Signed-off-by: xianglai li --- libvirt.spec | 8 ++++- ...e-correct-tpm-device-for-all-non-x86.patch | 32 +++++++++++++++++ ...alidate-Drop-tpm-tis-arch-validation.patch | 35 +++++++++++++++++++ 3 files changed, 74 insertions(+), 1 deletion(-) create mode 100644 qemu-command-Use-correct-tpm-device-for-all-non-x86.patch create mode 100644 qemu-validate-Drop-tpm-tis-arch-validation.patch diff --git a/libvirt.spec b/libvirt.spec index 8f19a97..ddf51d1 100644 --- a/libvirt.spec +++ b/libvirt.spec @@ -3,7 +3,7 @@ # This spec file assumes you are building on a Fedora or RHEL version # that's still supported by the vendor. It may work on other distros # or versions, but no effort will be made to ensure that going forward. -%define anolis_release 20 +%define anolis_release 21 %define min_rhel 8 %define min_fedora 33 @@ -311,6 +311,8 @@ Patch1000: libvirt-Add-loongarch-support.patch Patch1001: libvirt-add-loongarch-edit-xml-validate.patch Patch1002: node_device_conf-Avoid-memleak-in-virNodeDeviceGetPCIVPDDynamicCap.patch Patch1003: virpci-Resolve-leak-in-virPCIVirtualFunctionList-cleanup.patch +Patch1004: qemu-validate-Drop-tpm-tis-arch-validation.patch +Patch1005: qemu-command-Use-correct-tpm-device-for-all-non-x86.patch Requires: libvirt-daemon = %{version}-%{release} Requires: libvirt-daemon-config-network = %{version}-%{release} @@ -2190,6 +2192,10 @@ exit 0 %changelog +* Fri Aug 4 2023 xianglai li - 8.0.0-21 +- Synchronize upstream patches "Use correct tpm device for all non-x86" +- Synchronize upstream patches "validate: Drop tpm-tis arch validation" + * Thu Jun 29 2023 Liwei Ge - 8.0.0-20 - Avoid memleak in virNodeDeviceGetPCIVPDDynamicCap (CVE-2023-2700) - Resolve leak in virPCIVirtualFunctionList cleanup (CVE-2023-2700) diff --git a/qemu-command-Use-correct-tpm-device-for-all-non-x86.patch b/qemu-command-Use-correct-tpm-device-for-all-non-x86.patch new file mode 100644 index 0000000..8189141 --- /dev/null +++ b/qemu-command-Use-correct-tpm-device-for-all-non-x86.patch @@ -0,0 +1,32 @@ +From 7c9af5730bc83bde24d6788720f92fceba533124 Mon Sep 17 00:00:00 2001 +From: Cole Robinson +Date: Sat, 18 Jun 2022 12:46:03 -0400 +Subject: [PATCH 2/2] qemu: command: Use correct tpm device for all non-x86 + +The qemu `tpm-tis` device is an ISA device, so only really applicable +to x86 archs. For all non-x86 archs we should use `tpm-tis-device` + +This fixes tpm-tis usage on armv7l and riscv + +Reviewed-by: Michal Privoznik +Signed-off-by: Cole Robinson +--- + src/qemu/qemu_command.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c +index a7855d3..978ce89 100644 +--- a/src/qemu/qemu_command.c ++++ b/src/qemu/qemu_command.c +@@ -9733,7 +9733,7 @@ qemuBuildTPMDevCmd(virCommand *cmd, + const char *model = virDomainTPMModelTypeToString(tpm->model); + g_autofree char *tpmdev = g_strdup_printf("tpm-%s", tpm->info.alias); + +- if (tpm->model == VIR_DOMAIN_TPM_MODEL_TIS && def->os.arch == VIR_ARCH_AARCH64) ++ if (tpm->model == VIR_DOMAIN_TPM_MODEL_TIS && !ARCH_IS_X86(def->os.arch)) + model = "tpm-tis-device"; + + if (virJSONValueObjectAdd(&props, +-- +2.31.1 + diff --git a/qemu-validate-Drop-tpm-tis-arch-validation.patch b/qemu-validate-Drop-tpm-tis-arch-validation.patch new file mode 100644 index 0000000..178a943 --- /dev/null +++ b/qemu-validate-Drop-tpm-tis-arch-validation.patch @@ -0,0 +1,35 @@ +From d45d539a4aab6702710b877816d93d70f81c0165 Mon Sep 17 00:00:00 2001 +From: Cole Robinson +Date: Sat, 18 Jun 2022 12:52:29 -0400 +Subject: [PATCH 1/2] qemu: validate: Drop tpm-tis arch validation + +Checking against qemu capabilities should be enough here + +Resolves: https://gitlab.com/libvirt/libvirt/-/issues/329 + +Reviewed-by: Michal Privoznik +Signed-off-by: Cole Robinson +--- + src/qemu/qemu_validate.c | 6 ------ + 1 file changed, 6 deletions(-) + +diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c +index 7d01d31..6b65ce4 100644 +--- a/src/qemu/qemu_validate.c ++++ b/src/qemu/qemu_validate.c +@@ -4618,12 +4618,6 @@ qemuValidateDomainDeviceDefTPM(virDomainTPMDef *tpm, + + switch (tpm->model) { + case VIR_DOMAIN_TPM_MODEL_TIS: +- if (!ARCH_IS_X86(def->os.arch) && (def->os.arch != VIR_ARCH_AARCH64)) { +- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, +- _("TPM model '%s' is only available for x86 and aarch64 guests"), +- virDomainTPMModelTypeToString(tpm->model)); +- return -1; +- } + flag = QEMU_CAPS_DEVICE_TPM_TIS; + break; + case VIR_DOMAIN_TPM_MODEL_CRB: +-- +2.31.1 + -- Gitee