From 28f2e10c8bbd65f6c9c30141b07b2a8c2816170c Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Feb 07 2022 18:05:50 +0000 Subject: import qemu-kvm-6.2.0-5.module+el8.6.0+14025+ca131e0a --- diff --git a/.gitignore b/.gitignore index 558e0ee..f5dae2e 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/qemu-6.1.0.tar.xz +SOURCES/qemu-6.2.0.tar.xz diff --git a/.qemu-kvm.metadata b/.qemu-kvm.metadata index 1cd8296..6f39e05 100644 --- a/.qemu-kvm.metadata +++ b/.qemu-kvm.metadata @@ -1 +1 @@ -aae5ef7761b5f2fc45f0076219f1249da86f94b5 SOURCES/qemu-6.1.0.tar.xz +68cd61a466170115b88817e2d52db2cd7a92f43a SOURCES/qemu-6.2.0.tar.xz diff --git a/SOURCES/0001-redhat-Adding-slirp-to-the-exploded-tree.patch b/SOURCES/0001-redhat-Adding-slirp-to-the-exploded-tree.patch index 41d63c9..43fbac3 100644 --- a/SOURCES/0001-redhat-Adding-slirp-to-the-exploded-tree.patch +++ b/SOURCES/0001-redhat-Adding-slirp-to-the-exploded-tree.patch @@ -1,4 +1,4 @@ -From 94b5698846611388888bc16f392a4a4e26f921df Mon Sep 17 00:00:00 2001 +From 0a17d5f6abf800e88069738904e3fcd8427ab28a Mon Sep 17 00:00:00 2001 From: Miroslav Rezanina Date: Thu, 5 Aug 2021 01:07:55 -0400 Subject: redhat: Adding slirp to the exploded tree @@ -64,8 +64,6 @@ Merged commits (weekly-210714): - 76f81fc22c tftp: introduce a header structure - 6903e9ba25 udp: check upd_input buffer size - 8aa4fe0b6d Fix "DHCP broken in libslirp v4.6.0" - -Signed-off-by: Danilo C. L. de Paula --- .gitmodules | 3 - slirp/.clang-format | 58 ++ @@ -17929,5 +17927,5 @@ index 0000000000..94c6a4bc7b + +#endif -- -2.31.1 +2.27.0 diff --git a/SOURCES/0005-Initial-redhat-build.patch b/SOURCES/0005-Initial-redhat-build.patch index 5478101..ddae98d 100644 --- a/SOURCES/0005-Initial-redhat-build.patch +++ b/SOURCES/0005-Initial-redhat-build.patch @@ -1,4 +1,4 @@ -From 19aac3bf72e5b3d0599da32452e72fc32be311d5 Mon Sep 17 00:00:00 2001 +From 19ce5ff93ddd6b8a998348f2a5f59f603c5e11b7 Mon Sep 17 00:00:00 2001 From: Miroslav Rezanina Date: Fri, 12 Oct 2018 07:31:11 +0200 Subject: Initial redhat build @@ -11,7 +11,7 @@ several issues are fixed in QEMU tree: - Man page renamed from qemu to qemu-kvm - man page is installed using make install so we have to fix it in qemu tree -This rebase includes changes up to qemu-kvm-6.0.0-28.el8 +This rebase includes changes up to qemu-kvm-6.1.0-5.el9 Rebase notes (3.1.0): - added new configure options @@ -89,64 +89,44 @@ Rebase notes (5.2.0 rc3): - Added new configure options - Update qemu-kiwi patches to v4 -Rebase notes (weekly-210106): +Rebase notes (6.0.0): - update tracetool usage in spec file - remove qemu-storage-daemon-qmp-ref man page - -Rebase notes (weekly-210113): - remove qemu-storage-daemon man page - -Rebase notes (weekly-210120): - Added devel documentation - -Rebase notes (weeky-210127): - do not package virtfs-proxy-helper files - -Rebase notes (weekly-210203): - Use --with-git-submodules instead of --(enable|disable)-git-update - -Rebase notes (weekly-210217): - Minor build fixes for sending upstream - -Rebase notes (6.0.0 rc0): - g_autofree initialization fixed upstream - Updated rc information usage - -Rebase notes (6.0.0 rc1): - do not package package hw-s390x-virtio-gpu-ccw.so - -Rebase note (6.0.0 rc2): - Disable new switch options -Rebase note (weekly-210505): +Rebase notes (6.1.0): - Fix warning issue in block.c - -Rebase note (weekly-210512): - Download tarball from dist-git cache - -Rebase note (weekly-210519): - Removed sheepdog driver - Added new display modules: - hw-display-virtio-gpu-gl.so - hw-display-virtio-gpu-pci-gl.so - hw-display-virtio-vga-gl.so - -Rebase note (weekly-210623): - sasl fix moved from ui/vnc.c to ui/vnc-auth-sasl.c - -Rebase note (weekly-210714): - Added accel-qtest-%{kvm_target} and accel-tcg-%{kvm_target} - -Rebase note (6.1.0-rc0): - Added about docs - Use -q option for setup - -Rebase note (6.1.0-rc1): - Added hw-usb-host.so - -Rebase note (6.1.0-rc4): - Disable new options (bpf, nvmm, slirp-smbd) +Rebase notes (6.2.0): +- Using internal meson +- removed --disable-jemalloc and --disable-tcmalloc configure options +- added audio-oss.so +- added fdt requirement for x86_64 +- tests/acceptance renamed to tests/avocado +- added multiboot_dma.bin +- Removed conflict relics +- Updated configure options + Merged patches (3.1.0): - 01f0c9f RHEL8: Add disable configure options to qemu spec file - Spec file cleanups @@ -194,49 +174,37 @@ Merged patches (5.2.0 rc3): - pjw 99887 - redhat: allow Makefile rh-prep builddep to fail - pjw 99885 - redhat: adding rh-rpm target -Merged patches (weekly-210120): +Merged patches (6.0.0): - 5ab9954a3b spec: find system python via meson - cd0f7db11f build-system: use b_staticpic=false - 80d2dec42c udev-kvm-check: remove the "exceeded subscription limit" message - -Merged patches (weekly-210203): - 38959d51c0 redhat: Allow make to inherit params from parent make for rh-local - -Merged patches (weekly-210210): - 1e0cfe458f redhat: moving all documentation files to qemu-kvm-docs - d7a594d02b redhat: makes qemu respect system's crypto profile - -Merged patches (weekly-210303): - e2bbf1572b spec: Package qemu-storage-daemon - -Merged patches (6.0.0 rc0): - 92f10993ba spec: ui-spice sub-package - 8931e46069 spec: ui-opengl sub-package -Merged patches (weekly-210616): +Merged patches (6.1.0): - 7bb57541b3 redhat: Install the s390-netboot.img that we've built - -Merged patches (weekly-210714): - b4a8531f41 redhat: Fix "unversioned Obsoletes" warning - 141a1693c7 redhat: Move qemu-kvm-docs dependency to qemu-kvm - d75f59c6f9 redhat: introducting qemu-kvm-hw-usbredir - a934d8bf44 redhat: use the standard vhost-user JSON path -Signed-off-by: Danilo C. L. de Paula +Merged patches (6.2.0): +- 4f3f04bbb6 spec: Remove qemu-kiwi build --- .gitignore | 1 + .gitlab-ci.yml | 24 - .gitlab/issue_templates/bug.md | 64 - .gitlab/issue_templates/feature_request.md | 32 - README.systemtap | 43 + - configure | 5 - - hw/remote/memory.c | 5 + - hw/remote/proxy.c | 4 + - meson.build | 8 +- + meson.build | 4 +- redhat/Makefile | 90 + - redhat/Makefile.common | 50 + + redhat/Makefile.common | 48 + redhat/README.tests | 39 + - redhat/qemu-kvm.spec.template | 3977 ++++++++++++++++++++ + redhat/qemu-kvm.spec.template | 3896 ++++++++++++++++++++ redhat/scripts/extract_build_cmd.py | 5 +- redhat/scripts/process-patches.sh | 20 +- redhat/scripts/tarball_checksum.sh | 2 +- @@ -246,7 +214,7 @@ Signed-off-by: Danilo C. L. de Paula scripts/systemtap/script.d/qemu_kvm.stp | 1 + tests/check-block.sh | 2 + ui/vnc-auth-sasl.c | 2 +- - 22 files changed, 4236 insertions(+), 163 deletions(-) + 19 files changed, 4142 insertions(+), 156 deletions(-) delete mode 100644 .gitlab-ci.yml delete mode 100644 .gitlab/issue_templates/bug.md delete mode 100644 .gitlab/issue_templates/feature_request.md @@ -307,77 +275,11 @@ index 0000000000..ad913fc990 + +3. Translate the trace record to readable format. + # /usr/share/qemu-kvm/simpletrace.py --no-header /usr/share/qemu-kvm/trace-events /tmp/trace.log -diff --git a/configure b/configure -index 9a79a004d7..97a815d493 100755 ---- a/configure -+++ b/configure -@@ -5166,10 +5166,6 @@ if test "$skip_meson" = no; then - mv $cross config-meson.cross - - rm -rf meson-private meson-info meson-logs -- unset staticpic -- if ! version_ge "$($meson --version)" 0.56.0; then -- staticpic=$(if test "$pie" = yes; then echo true; else echo false; fi) -- fi - NINJA=$ninja $meson setup \ - --prefix "$prefix" \ - --libdir "$libdir" \ -@@ -5189,7 +5185,6 @@ if test "$skip_meson" = no; then - -Dwerror=$(if test "$werror" = yes; then echo true; else echo false; fi) \ - -Dstrip=$(if test "$strip_opt" = yes; then echo true; else echo false; fi) \ - -Db_pie=$(if test "$pie" = yes; then echo true; else echo false; fi) \ -- ${staticpic:+-Db_staticpic=$staticpic} \ - -Db_coverage=$(if test "$gcov" = yes; then echo true; else echo false; fi) \ - -Db_lto=$lto -Dcfi=$cfi -Dcfi_debug=$cfi_debug \ - -Dmalloc=$malloc -Dmalloc_trim=$malloc_trim -Dsparse=$sparse \ -diff --git a/hw/remote/memory.c b/hw/remote/memory.c -index 6e21ab1a45..1188680ca0 100644 ---- a/hw/remote/memory.c -+++ b/hw/remote/memory.c -@@ -41,8 +41,13 @@ void remote_sysmem_reconfig(MPQemuMsg *msg, Error **errp) - - remote_sysmem_reset(); - -+<<<<<<< HEAD - for (region = 0; region < msg->num_fds; region++, suffix++) { - g_autofree char *name = g_strdup_printf("remote-mem-%u", suffix); -+======= -+ for (region = 0; region < msg->num_fds; region++) { -+ g_autofree char *name = NULL; -+>>>>>>> e0233e3bb3... Initial redhat build - subregion = g_new(MemoryRegion, 1); - memory_region_init_ram_from_fd(subregion, NULL, - name, sysmem_info->sizes[region], -diff --git a/hw/remote/proxy.c b/hw/remote/proxy.c -index 6dda705fc2..bb6636be7d 100644 ---- a/hw/remote/proxy.c -+++ b/hw/remote/proxy.c -@@ -347,7 +347,11 @@ static void probe_pci_info(PCIDevice *dev, Error **errp) - PCI_BASE_ADDRESS_SPACE_IO : PCI_BASE_ADDRESS_SPACE_MEMORY; - - if (size) { -+<<<<<<< HEAD - g_autofree char *name = g_strdup_printf("bar-region-%d", i); -+======= -+ g_autofree char *name = NULL; -+>>>>>>> e0233e3bb3... Initial redhat build - pdev->region[i].dev = pdev; - pdev->region[i].present = true; - if (type == PCI_BASE_ADDRESS_SPACE_MEMORY) { diff --git a/meson.build b/meson.build -index b3e7ec0e92..f626ed9c14 100644 +index 96de1a6ef9..5f6ba86dbb 100644 --- a/meson.build +++ b/meson.build -@@ -1,6 +1,6 @@ - project('qemu', ['c'], meson_version: '>=0.55.0', -- default_options: ['warning_level=1', 'c_std=gnu11', 'cpp_std=gnu++11', 'b_colorout=auto'] + -- (meson.version().version_compare('>=0.56.0') ? [ 'b_staticpic=false' ] : []), -+ default_options: ['warning_level=1', 'c_std=gnu11', 'cpp_std=gnu++11', 'b_colorout=auto', -+ 'b_staticpic=false' ], - version: run_command('head', meson.source_root() / 'VERSION').stdout().strip()) - - not_found = dependency('', required: false) -@@ -1790,7 +1790,9 @@ if capstone_opt == 'internal' +@@ -2108,7 +2108,9 @@ if capstone_opt == 'internal' # Include all configuration defines via a header file, which will wind up # as a dependency on the object file, and thus changes here will result # in a rebuild. @@ -445,5 +347,5 @@ index 47fdae5b21..2a950caa2a 100644 if (saslErr != SASL_OK) { error_setg(errp, "Failed to initialize SASL auth: %s", -- -2.31.1 +2.27.0 diff --git a/SOURCES/0006-Enable-disable-devices-for-RHEL.patch b/SOURCES/0006-Enable-disable-devices-for-RHEL.patch index 86f2b90..a3fa5d1 100644 --- a/SOURCES/0006-Enable-disable-devices-for-RHEL.patch +++ b/SOURCES/0006-Enable-disable-devices-for-RHEL.patch @@ -1,4 +1,4 @@ -From 570ba131d06fafd349b754357414fa322ac53c36 Mon Sep 17 00:00:00 2001 +From 3d5a82d172345d17e300672909835262ff9dc917 Mon Sep 17 00:00:00 2001 From: Miroslav Rezanina Date: Wed, 2 Sep 2020 09:11:07 +0200 Subject: Enable/disable devices for RHEL @@ -81,6 +81,8 @@ Rebase notes (weekly-210714): Rebase notes (6.1.0 rc2): - Use --with-device-ARCH configure option to use redhat config files +Rebase notes (6.2.0 rc3): +- Do not remove -no-hpet documentation Merged patches (qemu 3.1.0): - d51e082 Re-enable CONFIG_HYPERV_TESTDEV - 4b889f3 Declare cirrus-vga as deprecated @@ -122,8 +124,6 @@ Merged patches (weekly-210630): Merged patches (6.1.0 rc2): - 86f0025f16 aarch64: Add USB storage devices - -Signed-off-by: Danilo C. L. de Paula --- .../aarch64-softmmu/aarch64-rh-devices.mak | 31 ++++++ .../ppc64-softmmu/ppc64-rh-devices.mak | 36 ++++++ @@ -143,13 +143,12 @@ Signed-off-by: Danilo C. L. de Paula hw/ppc/spapr_cpu_core.c | 2 + hw/timer/hpet.c | 8 ++ hw/usb/meson.build | 2 +- - qemu-options.hx | 4 - - redhat/qemu-kvm.spec.template | 13 ++- + redhat/qemu-kvm.spec.template | 9 +- target/arm/cpu_tcg.c | 10 ++ target/ppc/cpu-models.c | 10 ++ target/s390x/cpu_models_sysemu.c | 3 + target/s390x/kvm/kvm.c | 8 ++ - 24 files changed, 289 insertions(+), 14 deletions(-) + 23 files changed, 286 insertions(+), 9 deletions(-) create mode 100644 configs/devices/aarch64-softmmu/aarch64-rh-devices.mak create mode 100644 configs/devices/ppc64-softmmu/ppc64-rh-devices.mak create mode 100644 configs/devices/rh-virtio.mak @@ -395,10 +394,10 @@ index 0000000000..2cd20f54d2 +# We need "hpet" +CONFIG_HPET=y diff --git a/hw/acpi/ich9.c b/hw/acpi/ich9.c -index 778e27b659..802501881f 100644 +index ebe08ed831..381ef2ddcf 100644 --- a/hw/acpi/ich9.c +++ b/hw/acpi/ich9.c -@@ -424,8 +424,8 @@ void ich9_pm_add_properties(Object *obj, ICH9LPCPMRegs *pm) +@@ -438,8 +438,8 @@ void ich9_pm_add_properties(Object *obj, ICH9LPCPMRegs *pm) static const uint32_t gpe0_len = ICH9_PMIO_GPE0_LEN; pm->acpi_memory_hotplug.is_enabled = true; pm->cpu_hotplug_legacy = true; @@ -408,7 +407,7 @@ index 778e27b659..802501881f 100644 + pm->disable_s4 = 1; pm->s4_val = 2; pm->use_acpi_hotplug_bridge = true; - + pm->keep_pci_slot_hpc = true; diff --git a/hw/arm/meson.build b/hw/arm/meson.build index 721a8eb8be..87ed4dd914 100644 --- a/hw/arm/meson.build @@ -423,7 +422,7 @@ index 721a8eb8be..87ed4dd914 100644 arm_ss.add(when: 'CONFIG_PXA2XX', if_true: files('pxa2xx.c', 'pxa2xx_gpio.c', 'pxa2xx_pic.c')) arm_ss.add(when: 'CONFIG_DIGIC', if_true: files('digic.c')) diff --git a/hw/block/fdc.c b/hw/block/fdc.c -index 9014cd30b3..46cee8c544 100644 +index 21d18ac2e3..97fa6de423 100644 --- a/hw/block/fdc.c +++ b/hw/block/fdc.c @@ -48,6 +48,8 @@ @@ -435,7 +434,7 @@ index 9014cd30b3..46cee8c544 100644 /********************************************************/ /* debug Floppy devices */ -@@ -2320,6 +2322,14 @@ void fdctrl_realize_common(DeviceState *dev, FDCtrl *fdctrl, Error **errp) +@@ -2337,6 +2339,14 @@ void fdctrl_realize_common(DeviceState *dev, FDCtrl *fdctrl, Error **errp) FDrive *drive; static int command_tables_inited = 0; @@ -506,7 +505,7 @@ index fdca6ca659..fa1a7eee51 100644 Also accept 8 MB/16 MB for backward compatibility. */ if (s->vga.vram_size_mb != 4 && s->vga.vram_size_mb != 8 && diff --git a/hw/ide/piix.c b/hw/ide/piix.c -index d3e738320b..7c77312463 100644 +index ce89fd0aa3..fbcf802b13 100644 --- a/hw/ide/piix.c +++ b/hw/ide/piix.c @@ -232,7 +232,8 @@ static void piix3_ide_class_init(ObjectClass *klass, void *data) @@ -542,10 +541,10 @@ index baba62f357..bc360347ea 100644 static const TypeInfo i8042_info = { diff --git a/hw/net/e1000.c b/hw/net/e1000.c -index a30546c5d5..c2877978d9 100644 +index f5bc81296d..282d01e374 100644 --- a/hw/net/e1000.c +++ b/hw/net/e1000.c -@@ -1814,6 +1814,7 @@ static const E1000Info e1000_devices[] = { +@@ -1821,6 +1821,7 @@ static const E1000Info e1000_devices[] = { .revision = 0x03, .phy_id2 = E1000_PHY_ID2_8254xx_DEFAULT, }, @@ -553,7 +552,7 @@ index a30546c5d5..c2877978d9 100644 { .name = "e1000-82544gc", .device_id = E1000_DEV_ID_82544GC_COPPER, -@@ -1826,6 +1827,7 @@ static const E1000Info e1000_devices[] = { +@@ -1833,6 +1834,7 @@ static const E1000Info e1000_devices[] = { .revision = 0x03, .phy_id2 = E1000_PHY_ID2_8254xx_DEFAULT, }, @@ -562,7 +561,7 @@ index a30546c5d5..c2877978d9 100644 static void e1000_register_types(void) diff --git a/hw/ppc/spapr_cpu_core.c b/hw/ppc/spapr_cpu_core.c -index 4f316a6f9d..64178f0f9a 100644 +index 58e7341cb7..8ba34f6a1d 100644 --- a/hw/ppc/spapr_cpu_core.c +++ b/hw/ppc/spapr_cpu_core.c @@ -370,10 +370,12 @@ static const TypeInfo spapr_cpu_core_type_infos[] = { @@ -610,23 +609,8 @@ index de853d780d..0776ae6a20 100644 hw_usb_modules += {'smartcard': usbsmartcard_ss} endif -diff --git a/qemu-options.hx b/qemu-options.hx -index 83aa59a920..ac596e01a1 100644 ---- a/qemu-options.hx -+++ b/qemu-options.hx -@@ -2412,10 +2412,6 @@ ERST - - DEF("no-hpet", 0, QEMU_OPTION_no_hpet, - "-no-hpet disable HPET\n", QEMU_ARCH_I386) --SRST --``-no-hpet`` -- Disable HPET support. --ERST - - DEF("acpitable", HAS_ARG, QEMU_OPTION_acpitable, - "-acpitable [sig=str][,rev=n][,oem_id=str][,oem_table_id=str][,oem_rev=n][,asl_compiler_id=str][,asl_compiler_rev=n][,{data|file}=file1[:file2]...]\n" diff --git a/target/arm/cpu_tcg.c b/target/arm/cpu_tcg.c -index ed444bf436..fafd019539 100644 +index 13d0e9b195..3826fa5122 100644 --- a/target/arm/cpu_tcg.c +++ b/target/arm/cpu_tcg.c @@ -22,6 +22,7 @@ @@ -634,7 +618,7 @@ index ed444bf436..fafd019539 100644 #if !defined(CONFIG_USER_ONLY) || !defined(TARGET_AARCH64) +#if 0 /* Disabled for Red Hat Enterprise Linux */ - #ifdef CONFIG_TCG + #if !defined(CONFIG_USER_ONLY) && defined(CONFIG_TCG) static bool arm_v7m_cpu_exec_interrupt(CPUState *cs, int interrupt_request) { @@ -375,6 +376,7 @@ static void cortex_a9_initfn(Object *obj) @@ -704,7 +688,7 @@ index ed444bf436..fafd019539 100644 { .name = "max", .initfn = arm_max_initfn }, #endif diff --git a/target/ppc/cpu-models.c b/target/ppc/cpu-models.c -index 87e4228614..6eaa65efff 100644 +index 4baa111713..d779c4d1d5 100644 --- a/target/ppc/cpu-models.c +++ b/target/ppc/cpu-models.c @@ -66,6 +66,7 @@ @@ -734,7 +718,7 @@ index 87e4228614..6eaa65efff 100644 POWERPC_DEF("power7_v2.3", CPU_POWERPC_POWER7_v23, POWER7, "POWER7 v2.3") POWERPC_DEF("power7+_v2.1", CPU_POWERPC_POWER7P_v21, POWER7, -@@ -782,6 +786,7 @@ +@@ -784,6 +788,7 @@ /* PowerPC CPU aliases */ PowerPCCPUAlias ppc_cpu_aliases[] = { @@ -742,7 +726,7 @@ index 87e4228614..6eaa65efff 100644 { "403", "403gc" }, { "405", "405d4" }, { "405cr", "405crc" }, -@@ -940,12 +945,15 @@ PowerPCCPUAlias ppc_cpu_aliases[] = { +@@ -942,12 +947,15 @@ PowerPCCPUAlias ppc_cpu_aliases[] = { { "7447a", "7447a_v1.2" }, { "7457a", "7457a_v1.2" }, { "apollo7pm", "7457a_v1.0" }, @@ -758,15 +742,15 @@ index 87e4228614..6eaa65efff 100644 { "power7", "power7_v2.3" }, { "power7+", "power7+_v2.1" }, { "power8e", "power8e_v2.1" }, -@@ -955,6 +963,7 @@ PowerPCCPUAlias ppc_cpu_aliases[] = { - { "power10", "power10_v1.0" }, +@@ -957,6 +965,7 @@ PowerPCCPUAlias ppc_cpu_aliases[] = { + { "power10", "power10_v2.0" }, #endif +#if 0 /* Disabled for Red Hat Enterprise Linux */ /* Generic PowerPCs */ #if defined(TARGET_PPC64) { "ppc64", "970fx_v3.1" }, -@@ -962,5 +971,6 @@ PowerPCCPUAlias ppc_cpu_aliases[] = { +@@ -964,5 +973,6 @@ PowerPCCPUAlias ppc_cpu_aliases[] = { { "ppc32", "604" }, { "ppc", "604" }, { "default", "604" }, @@ -807,5 +791,5 @@ index 5b1fdb55c4..c52434985b 100644 prop.ibc = s390_ibc_from_cpu_model(model); /* configure cpu features indicated via STFL(e) */ -- -2.31.1 +2.27.0 diff --git a/SOURCES/0007-Machine-type-related-general-changes.patch b/SOURCES/0007-Machine-type-related-general-changes.patch index e83c6cb..f7bd665 100644 --- a/SOURCES/0007-Machine-type-related-general-changes.patch +++ b/SOURCES/0007-Machine-type-related-general-changes.patch @@ -1,4 +1,4 @@ -From 4ff7102cb75e8501c6657ccef0f7009e1c18cb5f Mon Sep 17 00:00:00 2001 +From adca046d9db670637b9bf2b24f7a4349a9fe2628 Mon Sep 17 00:00:00 2001 From: Miroslav Rezanina Date: Fri, 11 Jan 2019 09:54:45 +0100 Subject: Machine type related general changes @@ -23,6 +23,9 @@ Rebase changes (4.1.0): Rebase changes (weekly-210303): - Added rhel 8.4.0 compat based on 5.2 compat +Rebase changes (weekly-211103): +- Do not duplicate minimal_version_id for piix4_pm + Merged patches (4.0.0): - d4c0957 compat: Generic HW_COMPAT_RHEL7_6 - cbac773 virtio: Make disable-legacy/disable-modern compat properties optional @@ -55,20 +58,21 @@ Merged patches (6.0.0): Merged patches (weekly-210602): - 26f25108c1 redhat: add missing entries in hw_compat_rhel_8_4 -Signed-off-by: Danilo C. L. de Paula +Merged patches (weekly-211006): +- 43c4b9bea6 redhat: Define hw_compat_rhel_8_5 --- - hw/acpi/ich9.c | 15 +++ - hw/acpi/piix4.c | 5 +- + hw/acpi/ich9.c | 15 ++ + hw/acpi/piix4.c | 6 +- hw/arm/virt.c | 2 +- hw/char/serial.c | 16 +++ - hw/core/machine.c | 255 +++++++++++++++++++++++++++++++++++ + hw/core/machine.c | 272 +++++++++++++++++++++++++++++++++++ hw/display/vga-isa.c | 2 +- hw/i386/pc_piix.c | 2 + hw/i386/pc_q35.c | 2 + hw/net/e1000e.c | 22 +++ hw/net/rtl8139.c | 4 +- hw/rtc/mc146818rtc.c | 6 + - hw/smbios/smbios.c | 46 ++++++- + hw/smbios/smbios.c | 46 +++++- hw/timer/i8254_common.c | 2 +- hw/usb/hcd-uhci.c | 4 +- hw/usb/hcd-xhci-pci.c | 59 ++++++-- @@ -76,20 +80,20 @@ Signed-off-by: Danilo C. L. de Paula hw/usb/hcd-xhci.c | 20 +++ hw/usb/hcd-xhci.h | 2 + include/hw/acpi/ich9.h | 3 + - include/hw/boards.h | 33 +++++ + include/hw/boards.h | 36 +++++ include/hw/firmware/smbios.h | 5 +- include/hw/i386/pc.h | 3 + include/hw/usb.h | 3 + migration/migration.c | 2 + migration/migration.h | 5 + - 25 files changed, 494 insertions(+), 25 deletions(-) + 25 files changed, 514 insertions(+), 26 deletions(-) diff --git a/hw/acpi/ich9.c b/hw/acpi/ich9.c -index 802501881f..147b5d9815 100644 +index 381ef2ddcf..82bd805b55 100644 --- a/hw/acpi/ich9.c +++ b/hw/acpi/ich9.c -@@ -419,6 +419,18 @@ static void ich9_pm_set_acpi_pci_hotplug(Object *obj, bool value, Error **errp) - s->pm.use_acpi_hotplug_bridge = value; +@@ -433,6 +433,18 @@ static void ich9_pm_set_keep_pci_slot_hpc(Object *obj, bool value, Error **errp) + s->pm.keep_pci_slot_hpc = value; } +static bool ich9_pm_get_force_rev1_fadt(Object *obj, Error **errp) @@ -107,7 +111,7 @@ index 802501881f..147b5d9815 100644 void ich9_pm_add_properties(Object *obj, ICH9LPCPMRegs *pm) { static const uint32_t gpe0_len = ICH9_PMIO_GPE0_LEN; -@@ -442,6 +454,9 @@ void ich9_pm_add_properties(Object *obj, ICH9LPCPMRegs *pm) +@@ -457,6 +469,9 @@ void ich9_pm_add_properties(Object *obj, ICH9LPCPMRegs *pm) object_property_add_bool(obj, "cpu-hotplug-legacy", ich9_pm_get_cpu_hotplug_legacy, ich9_pm_set_cpu_hotplug_legacy); @@ -118,18 +122,19 @@ index 802501881f..147b5d9815 100644 &pm->disable_s3, OBJ_PROP_FLAG_READWRITE); object_property_add_uint8_ptr(obj, ACPI_PM_PROP_S4_DISABLED, diff --git a/hw/acpi/piix4.c b/hw/acpi/piix4.c -index 48f7a1edbc..af21cb4ac3 100644 +index f0b5fac44a..8d6011c0a3 100644 --- a/hw/acpi/piix4.c +++ b/hw/acpi/piix4.c -@@ -279,6 +279,7 @@ static const VMStateDescription vmstate_acpi = { +@@ -278,7 +278,7 @@ static bool piix4_vmstate_need_smbus(void *opaque, int version_id) + static const VMStateDescription vmstate_acpi = { .name = "piix4_pm", .version_id = 3, - .minimum_version_id = 3, +- .minimum_version_id = 3, + .minimum_version_id = 2, .post_load = vmstate_acpi_post_load, .fields = (VMStateField[]) { VMSTATE_PCI_DEVICE(parent_obj, PIIX4PMState), -@@ -644,8 +645,8 @@ static void piix4_send_gpe(AcpiDeviceIf *adev, AcpiEventStatusBits ev) +@@ -644,8 +644,8 @@ static void piix4_send_gpe(AcpiDeviceIf *adev, AcpiEventStatusBits ev) static Property piix4_pm_properties[] = { DEFINE_PROP_UINT32("smb_io_base", PIIX4PMState, smb_io_base, 0), @@ -138,13 +143,13 @@ index 48f7a1edbc..af21cb4ac3 100644 + DEFINE_PROP_UINT8(ACPI_PM_PROP_S3_DISABLED, PIIX4PMState, disable_s3, 1), + DEFINE_PROP_UINT8(ACPI_PM_PROP_S4_DISABLED, PIIX4PMState, disable_s4, 1), DEFINE_PROP_UINT8(ACPI_PM_PROP_S4_VAL, PIIX4PMState, s4_val, 2), - DEFINE_PROP_BOOL("acpi-pci-hotplug-with-bridge-support", PIIX4PMState, + DEFINE_PROP_BOOL(ACPI_PM_PROP_ACPI_PCIHP_BRIDGE, PIIX4PMState, use_acpi_hotplug_bridge, true), diff --git a/hw/arm/virt.c b/hw/arm/virt.c -index 81eda46b0b..cd1a2d985d 100644 +index 30da05dfe0..5de4d9d73b 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c -@@ -1524,7 +1524,7 @@ static void virt_build_smbios(VirtMachineState *vms) +@@ -1590,7 +1590,7 @@ static void virt_build_smbios(VirtMachineState *vms) smbios_set_defaults("QEMU", product, vmc->smbios_old_sys_ver ? "1.0" : mc->name, false, @@ -209,14 +214,31 @@ index 7061aacbce..fe8d0afbb0 100644 } diff --git a/hw/core/machine.c b/hw/core/machine.c -index 54e040587d..c7ddca1778 100644 +index 53a99abc56..be4f9864cd 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c -@@ -37,6 +37,261 @@ +@@ -37,6 +37,278 @@ #include "hw/virtio/virtio.h" #include "hw/virtio/virtio-pci.h" +/* ++ * Mostly the same as hw_compat_6_0 ++ */ ++GlobalProperty hw_compat_rhel_8_5[] = { ++ /* hw_compat_rhel_8_5 from hw_compat_6_0 */ ++ { "gpex-pcihost", "allow-unmapped-accesses", "false" }, ++ /* hw_compat_rhel_8_5 from hw_compat_6_0 */ ++ { "i8042", "extended-state", "false"}, ++ /* hw_compat_rhel_8_5 from hw_compat_6_0 */ ++ { "nvme-ns", "eui64-default", "off"}, ++ /* hw_compat_rhel_8_5 from hw_compat_6_0 */ ++ { "e1000", "init-vet", "off" }, ++ /* hw_compat_rhel_8_5 from hw_compat_6_0 */ ++ { "e1000e", "init-vet", "off" }, ++}; ++const size_t hw_compat_rhel_8_5_len = G_N_ELEMENTS(hw_compat_rhel_8_5); ++ ++/* + * Mostly the same as hw_compat_5_2 + */ +GlobalProperty hw_compat_rhel_8_4[] = { @@ -471,9 +493,9 @@ index 54e040587d..c7ddca1778 100644 +}; +const size_t hw_compat_rhel_7_1_len = G_N_ELEMENTS(hw_compat_rhel_7_1); + - GlobalProperty hw_compat_6_0[] = { - { "gpex-pcihost", "allow-unmapped-accesses", "false" }, - { "i8042", "extended-state", "false"}, + GlobalProperty hw_compat_6_1[] = { + { "vhost-user-vsock-device", "seqpacket", "off" }, + { "nvme-ns", "shared", "off" }, diff --git a/hw/display/vga-isa.c b/hw/display/vga-isa.c index 90851e730b..a91c5d7467 100644 --- a/hw/display/vga-isa.c @@ -488,7 +510,7 @@ index 90851e730b..a91c5d7467 100644 }; diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c -index 30b8bd6ea9..eebb4f3141 100644 +index 223dd3e05d..dda3f64f19 100644 --- a/hw/i386/pc_piix.c +++ b/hw/i386/pc_piix.c @@ -177,6 +177,8 @@ static void pc_init1(MachineState *machine, @@ -501,10 +523,10 @@ index 30b8bd6ea9..eebb4f3141 100644 } diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c -index 04b4a4788d..e7724fd02c 100644 +index e1e100316d..235054a643 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c -@@ -199,6 +199,8 @@ static void pc_q35_init(MachineState *machine) +@@ -200,6 +200,8 @@ static void pc_q35_init(MachineState *machine) smbios_set_defaults("QEMU", "Standard PC (Q35 + ICH9, 2009)", mc->name, pcmc->smbios_legacy_mode, pcmc->smbios_uuid_encoded, @@ -731,10 +753,10 @@ index 050875b497..32935da46c 100644 vmstate_pit_channel, PITChannelState), VMSTATE_INT64(channels[0].next_transition_time, diff --git a/hw/usb/hcd-uhci.c b/hw/usb/hcd-uhci.c -index 0cb02a6432..962a9622e5 100644 +index d1b5657d72..7930b868fa 100644 --- a/hw/usb/hcd-uhci.c +++ b/hw/usb/hcd-uhci.c -@@ -1167,12 +1167,14 @@ void usb_uhci_common_realize(PCIDevice *dev, Error **errp) +@@ -1166,11 +1166,13 @@ void usb_uhci_common_realize(PCIDevice *dev, Error **errp) UHCIState *s = UHCI(dev); uint8_t *pci_conf = s->dev.config; int i; @@ -742,14 +764,13 @@ index 0cb02a6432..962a9622e5 100644 pci_conf[PCI_CLASS_PROG] = 0x00; /* TODO: reset value should be 0. */ - pci_conf[USB_SBRN] = USB_RELEASE_1; // release number - + pci_conf[USB_SBRN] = USB_RELEASE_1; /* release number */ - pci_config_set_interrupt_pin(pci_conf, u->info.irq_pin + 1); + irq_pin = u->info.irq_pin; + pci_config_set_interrupt_pin(pci_conf, irq_pin + 1); + s->irq = pci_allocate_irq(dev); if (s->masterbus) { - USBPort *ports[NB_PORTS]; diff --git a/hw/usb/hcd-xhci-pci.c b/hw/usb/hcd-xhci-pci.c index e934b1a5b1..e18b05e528 100644 --- a/hw/usb/hcd-xhci-pci.c @@ -916,10 +937,10 @@ index 98f598382a..50a7b6f6c4 100644 typedef struct XHCIInterrupter { diff --git a/include/hw/acpi/ich9.h b/include/hw/acpi/ich9.h -index a329ce43ab..6aa02f2d8f 100644 +index 7ca92843c6..21abfd8447 100644 --- a/include/hw/acpi/ich9.h +++ b/include/hw/acpi/ich9.h -@@ -67,6 +67,9 @@ typedef struct ICH9LPCPMRegs { +@@ -68,6 +68,9 @@ typedef struct ICH9LPCPMRegs { bool smm_compat; bool enable_tco; TCOIORegs tco_regs; @@ -930,13 +951,16 @@ index a329ce43ab..6aa02f2d8f 100644 #define ACPI_PM_PROP_TCO_ENABLED "enable_tco" diff --git a/include/hw/boards.h b/include/hw/boards.h -index accd6eff35..ff4674474f 100644 +index 9c1c190104..8bba96ef2b 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h -@@ -416,4 +416,37 @@ extern const size_t hw_compat_2_2_len; +@@ -441,4 +441,40 @@ extern const size_t hw_compat_2_2_len; extern GlobalProperty hw_compat_2_1[]; extern const size_t hw_compat_2_1_len; ++extern GlobalProperty hw_compat_rhel_8_5[]; ++extern const size_t hw_compat_rhel_8_5_len; ++ +extern GlobalProperty hw_compat_rhel_8_4[]; +extern const size_t hw_compat_rhel_8_4_len; + @@ -988,7 +1012,7 @@ index 5a0dd0c8cf..2cb1ec2bab 100644 void smbios_get_tables(MachineState *ms, const struct smbios_phys_mem_area *mem_array, diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h -index 88dffe7517..17ad7bfc3a 100644 +index 9ab39e428f..7ccc9a1a07 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -107,6 +107,9 @@ struct PCMachineClass { @@ -1014,7 +1038,7 @@ index 33668dd0a9..e6b2fe72da 100644 + #endif diff --git a/migration/migration.c b/migration/migration.c -index 041b8451a6..dc5f2df00a 100644 +index abaf6f9e3d..a87ff01b81 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -164,6 +164,8 @@ INITIALIZE_MIGRATE_CAPS_SET(check_caps_background_snapshot, @@ -1027,7 +1051,7 @@ index 041b8451a6..dc5f2df00a 100644 migrations at once. For now we don't need to add dynamic creation of migration */ diff --git a/migration/migration.h b/migration/migration.h -index 7a5aa8c2fd..e06778f3a4 100644 +index 8130b703eb..d016cedd9d 100644 --- a/migration/migration.h +++ b/migration/migration.h @@ -381,6 +381,11 @@ bool check_dirty_bitmap_mig_alias_map(const BitmapMigrationNodeAliasList *bbm, @@ -1043,5 +1067,5 @@ index 7a5aa8c2fd..e06778f3a4 100644 #define qemu_ram_foreach_block \ #warning "Use foreach_not_ignored_block in migration code" -- -2.31.1 +2.27.0 diff --git a/SOURCES/0008-Add-aarch64-machine-types.patch b/SOURCES/0008-Add-aarch64-machine-types.patch index 6a2039a..2e8c417 100644 --- a/SOURCES/0008-Add-aarch64-machine-types.patch +++ b/SOURCES/0008-Add-aarch64-machine-types.patch @@ -1,4 +1,4 @@ -From 2e90ba946088b23ff8fdc8067e6ba8c3cc463679 Mon Sep 17 00:00:00 2001 +From 670e90f5cbd92189155e079b8c6e2aafdf82d162 Mon Sep 17 00:00:00 2001 From: Miroslav Rezanina Date: Fri, 19 Oct 2018 12:53:31 +0200 Subject: Add aarch64 machine types @@ -74,18 +74,19 @@ Merged patches (weekly-210609): - 5333038d11 hw/arm/virt: Disable PL011 clock migration through hw_compat_rhel_8_3 - 63adb8ae86 arm/virt: Register highmem and gic-version as class properties -Signed-off-by: Danilo C. L. de Paula +Merged patches (weekly-211027): +- 86e3057c0a hw: arm: virt: Add hw_compat_rhel_8_5 to 8.5 machine type --- - hw/arm/virt.c | 225 +++++++++++++++++++++++++++++++++++++++++- + hw/arm/virt.c | 226 +++++++++++++++++++++++++++++++++++++++++- hw/core/machine.c | 2 + include/hw/arm/virt.h | 8 ++ - 3 files changed, 234 insertions(+), 1 deletion(-) + 3 files changed, 235 insertions(+), 1 deletion(-) diff --git a/hw/arm/virt.c b/hw/arm/virt.c -index cd1a2d985d..07f9e64b23 100644 +index 5de4d9d73b..c77d26ab13 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c -@@ -78,6 +78,7 @@ +@@ -79,6 +79,7 @@ #include "hw/char/pl011.h" #include "qemu/guest-random.h" @@ -93,7 +94,7 @@ index cd1a2d985d..07f9e64b23 100644 #define DEFINE_VIRT_MACHINE_LATEST(major, minor, latest) \ static void virt_##major##_##minor##_class_init(ObjectClass *oc, \ void *data) \ -@@ -104,7 +105,48 @@ +@@ -105,7 +106,48 @@ DEFINE_VIRT_MACHINE_LATEST(major, minor, true) #define DEFINE_VIRT_MACHINE(major, minor) \ DEFINE_VIRT_MACHINE_LATEST(major, minor, false) @@ -143,7 +144,7 @@ index cd1a2d985d..07f9e64b23 100644 /* Number of external interrupt lines to configure the GIC with */ #define NUM_IRQS 256 -@@ -2117,6 +2159,7 @@ static void machvirt_init(MachineState *machine) +@@ -2180,6 +2222,7 @@ static void machvirt_init(MachineState *machine) qemu_add_machine_init_done_notifier(&vms->machine_done); } @@ -151,7 +152,7 @@ index cd1a2d985d..07f9e64b23 100644 static bool virt_get_secure(Object *obj, Error **errp) { VirtMachineState *vms = VIRT_MACHINE(obj); -@@ -2144,6 +2187,7 @@ static void virt_set_virt(Object *obj, bool value, Error **errp) +@@ -2207,6 +2250,7 @@ static void virt_set_virt(Object *obj, bool value, Error **errp) vms->virt = value; } @@ -159,7 +160,7 @@ index cd1a2d985d..07f9e64b23 100644 static bool virt_get_highmem(Object *obj, Error **errp) { -@@ -2241,6 +2285,7 @@ static void virt_set_acpi(Object *obj, Visitor *v, const char *name, +@@ -2304,6 +2348,7 @@ static void virt_set_acpi(Object *obj, Visitor *v, const char *name, visit_type_OnOffAuto(v, name, &vms->acpi, errp); } @@ -167,7 +168,7 @@ index cd1a2d985d..07f9e64b23 100644 static bool virt_get_ras(Object *obj, Error **errp) { VirtMachineState *vms = VIRT_MACHINE(obj); -@@ -2268,6 +2313,7 @@ static void virt_set_mte(Object *obj, bool value, Error **errp) +@@ -2331,6 +2376,7 @@ static void virt_set_mte(Object *obj, bool value, Error **errp) vms->mte = value; } @@ -175,7 +176,7 @@ index cd1a2d985d..07f9e64b23 100644 static char *virt_get_gic_version(Object *obj, Error **errp) { -@@ -2603,6 +2649,7 @@ static int virt_kvm_type(MachineState *ms, const char *type_str) +@@ -2666,6 +2712,7 @@ static int virt_kvm_type(MachineState *ms, const char *type_str) return fixed_ipa ? 0 : requested_pa_size; } @@ -183,7 +184,7 @@ index cd1a2d985d..07f9e64b23 100644 static void virt_machine_class_init(ObjectClass *oc, void *data) { MachineClass *mc = MACHINE_CLASS(oc); -@@ -2948,3 +2995,179 @@ static void virt_machine_2_6_options(MachineClass *mc) +@@ -3031,3 +3078,180 @@ static void virt_machine_2_6_options(MachineClass *mc) vmc->no_pmu = true; } DEFINE_VIRT_MACHINE(2, 6) @@ -335,6 +336,7 @@ index cd1a2d985d..07f9e64b23 100644 +static void rhel850_virt_options(MachineClass *mc) +{ + compat_props_add(mc->compat_props, arm_rhel_compat, arm_rhel_compat_len); ++ compat_props_add(mc->compat_props, hw_compat_rhel_8_5, hw_compat_rhel_8_5_len); +} +DEFINE_RHEL_MACHINE_AS_LATEST(8, 5, 0) + @@ -364,10 +366,10 @@ index cd1a2d985d..07f9e64b23 100644 +} +DEFINE_RHEL_MACHINE(8, 2, 0) diff --git a/hw/core/machine.c b/hw/core/machine.c -index c7ddca1778..4601281b9c 100644 +index be4f9864cd..62febde5aa 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c -@@ -70,6 +70,8 @@ GlobalProperty hw_compat_rhel_8_3[] = { +@@ -87,6 +87,8 @@ GlobalProperty hw_compat_rhel_8_3[] = { { "nvme", "use-intel-id", "on"}, /* hw_compat_rhel_8_3 from hw_compat_5_1 */ { "pvpanic", "events", "1"}, /* PVPANIC_PANICKED */ @@ -377,10 +379,10 @@ index c7ddca1778..4601281b9c 100644 { "pci-xhci", "x-rh-late-msi-cap", "off" }, /* hw_compat_rhel_8_3 from hw_compat_5_1 */ diff --git a/include/hw/arm/virt.h b/include/hw/arm/virt.h -index 9661c46699..ac21ca712a 100644 +index dc6b66ffc8..9364628847 100644 --- a/include/hw/arm/virt.h +++ b/include/hw/arm/virt.h -@@ -171,9 +171,17 @@ struct VirtMachineState { +@@ -175,9 +175,17 @@ struct VirtMachineState { #define VIRT_ECAM_ID(high) (high ? VIRT_HIGH_PCIE_ECAM : VIRT_PCIE_ECAM) @@ -399,5 +401,5 @@ index 9661c46699..ac21ca712a 100644 bool virt_is_acpi_enabled(VirtMachineState *vms); -- -2.31.1 +2.27.0 diff --git a/SOURCES/0009-Add-ppc64-machine-types.patch b/SOURCES/0009-Add-ppc64-machine-types.patch index 866f1a8..f5ce09a 100644 --- a/SOURCES/0009-Add-ppc64-machine-types.patch +++ b/SOURCES/0009-Add-ppc64-machine-types.patch @@ -1,4 +1,4 @@ -From 4f1bb8496cbd7b1dd40a97762f4d1d2ddfcc3968 Mon Sep 17 00:00:00 2001 +From 3c65320ce5b8ad3bb8c0d8fd13a88c464d5c5845 Mon Sep 17 00:00:00 2001 From: Miroslav Rezanina Date: Fri, 19 Oct 2018 13:27:13 +0200 Subject: Add ppc64 machine types @@ -50,22 +50,23 @@ Merged patches (weekly-201216): Merged patches (weekly-210602): - b7128d8ef7 redhat: Define pseries-rhel8.5.0 machine type -Signed-off-by: Danilo C. L. de Paula +Merged patches (weekly-211006): +- c8f68b47e9 redhat: Update pseries-rhel8.5.0 --- - hw/ppc/spapr.c | 380 ++++++++++++++++++++++++++++++++++++++++ + hw/ppc/spapr.c | 382 ++++++++++++++++++++++++++++++++++++++++ hw/ppc/spapr_cpu_core.c | 13 ++ include/hw/ppc/spapr.h | 4 + target/ppc/compat.c | 13 +- target/ppc/cpu.h | 1 + target/ppc/kvm.c | 27 +++ target/ppc/kvm_ppc.h | 13 ++ - 7 files changed, 450 insertions(+), 1 deletion(-) + 7 files changed, 452 insertions(+), 1 deletion(-) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c -index 81699d4f8b..8f6bc88aa9 100644 +index 3b5fd749be..cace86028d 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c -@@ -1592,6 +1592,9 @@ static void spapr_machine_reset(MachineState *machine) +@@ -1593,6 +1593,9 @@ static void spapr_machine_reset(MachineState *machine) pef_kvm_reset(machine->cgs, &error_fatal); spapr_caps_apply(spapr); @@ -75,7 +76,7 @@ index 81699d4f8b..8f6bc88aa9 100644 first_ppc_cpu = POWERPC_CPU(first_cpu); if (kvm_enabled() && kvmppc_has_cap_mmu_radix() && -@@ -3315,6 +3318,20 @@ static void spapr_set_host_serial(Object *obj, const char *value, Error **errp) +@@ -3288,6 +3291,20 @@ static void spapr_set_host_serial(Object *obj, const char *value, Error **errp) spapr->host_serial = g_strdup(value); } @@ -96,7 +97,7 @@ index 81699d4f8b..8f6bc88aa9 100644 static void spapr_instance_init(Object *obj) { SpaprMachineState *spapr = SPAPR_MACHINE(obj); -@@ -3393,6 +3410,12 @@ static void spapr_instance_init(Object *obj) +@@ -3366,6 +3383,12 @@ static void spapr_instance_init(Object *obj) spapr_get_host_serial, spapr_set_host_serial); object_property_set_description(obj, "host-serial", "Host serial number to advertise in guest device tree"); @@ -109,7 +110,7 @@ index 81699d4f8b..8f6bc88aa9 100644 } static void spapr_machine_finalizefn(Object *obj) -@@ -4634,6 +4657,7 @@ static void spapr_machine_class_init(ObjectClass *oc, void *data) +@@ -4614,6 +4637,7 @@ static void spapr_machine_class_init(ObjectClass *oc, void *data) vmc->client_architecture_support = spapr_vof_client_architecture_support; vmc->quiesce = spapr_vof_quiesce; vmc->setprop = spapr_vof_setprop; @@ -117,15 +118,15 @@ index 81699d4f8b..8f6bc88aa9 100644 } static const TypeInfo spapr_machine_info = { -@@ -4685,6 +4709,7 @@ static void spapr_machine_latest_class_options(MachineClass *mc) +@@ -4665,6 +4689,7 @@ static void spapr_machine_latest_class_options(MachineClass *mc) } \ type_init(spapr_machine_register_##suffix) +#if 0 /* Disabled for Red Hat Enterprise Linux */ /* - * pseries-6.1 + * pseries-6.2 */ -@@ -4786,6 +4811,7 @@ static void spapr_machine_4_1_class_options(MachineClass *mc) +@@ -4781,6 +4806,7 @@ static void spapr_machine_4_1_class_options(MachineClass *mc) } DEFINE_SPAPR_MACHINE(4_1, "4.1", false); @@ -133,7 +134,7 @@ index 81699d4f8b..8f6bc88aa9 100644 /* * pseries-4.0 -@@ -4805,6 +4831,8 @@ static bool phb_placement_4_0(SpaprMachineState *spapr, uint32_t index, +@@ -4800,6 +4826,8 @@ static bool phb_placement_4_0(SpaprMachineState *spapr, uint32_t index, *nv2atsd = 0; return true; } @@ -142,7 +143,7 @@ index 81699d4f8b..8f6bc88aa9 100644 static void spapr_machine_4_0_class_options(MachineClass *mc) { SpaprMachineClass *smc = SPAPR_MACHINE_CLASS(mc); -@@ -4963,6 +4991,7 @@ DEFINE_SPAPR_MACHINE(2_8, "2.8", false); +@@ -4958,6 +4986,7 @@ DEFINE_SPAPR_MACHINE(2_8, "2.8", false); /* * pseries-2.7 */ @@ -150,7 +151,7 @@ index 81699d4f8b..8f6bc88aa9 100644 static bool phb_placement_2_7(SpaprMachineState *spapr, uint32_t index, uint64_t *buid, hwaddr *pio, -@@ -5018,6 +5047,7 @@ static bool phb_placement_2_7(SpaprMachineState *spapr, uint32_t index, +@@ -5013,6 +5042,7 @@ static bool phb_placement_2_7(SpaprMachineState *spapr, uint32_t index, return true; } @@ -158,7 +159,7 @@ index 81699d4f8b..8f6bc88aa9 100644 static void spapr_machine_2_7_class_options(MachineClass *mc) { SpaprMachineClass *smc = SPAPR_MACHINE_CLASS(mc); -@@ -5132,6 +5162,356 @@ static void spapr_machine_2_1_class_options(MachineClass *mc) +@@ -5127,6 +5157,358 @@ static void spapr_machine_2_1_class_options(MachineClass *mc) compat_props_add(mc->compat_props, hw_compat_2_1, hw_compat_2_1_len); } DEFINE_SPAPR_MACHINE(2_1, "2.1", false); @@ -184,6 +185,8 @@ index 81699d4f8b..8f6bc88aa9 100644 +{ + /* The default machine type must apply the RHEL specific defaults */ + spapr_machine_rhel_default_class_options(mc); ++ compat_props_add(mc->compat_props, hw_compat_rhel_8_5, ++ hw_compat_rhel_8_5_len); +} + +DEFINE_SPAPR_MACHINE(rhel850, "rhel8.5.0", true); @@ -516,7 +519,7 @@ index 81699d4f8b..8f6bc88aa9 100644 static void spapr_machine_register_types(void) { diff --git a/hw/ppc/spapr_cpu_core.c b/hw/ppc/spapr_cpu_core.c -index 64178f0f9a..2bff13a6ab 100644 +index 8ba34f6a1d..78eca1c04a 100644 --- a/hw/ppc/spapr_cpu_core.c +++ b/hw/ppc/spapr_cpu_core.c @@ -24,6 +24,7 @@ @@ -554,18 +557,18 @@ index 64178f0f9a..2bff13a6ab 100644 qdev_unrealize(DEVICE(cpu)); return false; diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h -index 637652ad16..58b0deeb16 100644 +index ee7504b976..37a014d59c 100644 --- a/include/hw/ppc/spapr.h +++ b/include/hw/ppc/spapr.h -@@ -146,6 +146,7 @@ struct SpaprMachineClass { - bool pre_5_1_assoc_refpoints; +@@ -154,6 +154,7 @@ struct SpaprMachineClass { bool pre_5_2_numa_associativity; + bool pre_6_2_numa_affinity; + bool has_power9_support; bool (*phb_placement)(SpaprMachineState *spapr, uint32_t index, uint64_t *buid, hwaddr *pio, hwaddr *mmio32, hwaddr *mmio64, -@@ -229,6 +230,9 @@ struct SpaprMachineState { +@@ -237,6 +238,9 @@ struct SpaprMachineState { /* Set by -boot */ char *boot_device; @@ -601,10 +604,10 @@ index 7949a24f5a..f207a9ba01 100644 const CompatInfo *compat = compat_by_pvr(compat_pvr); const CompatInfo *min = compat_by_pvr(min_compat_pvr); diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h -index 93d308ac8f..dca9bdf846 100644 +index e946da5f3a..23e8b76c85 100644 --- a/target/ppc/cpu.h +++ b/target/ppc/cpu.h -@@ -1378,6 +1378,7 @@ static inline int cpu_mmu_index(CPUPPCState *env, bool ifetch) +@@ -1401,6 +1401,7 @@ static inline int cpu_mmu_index(CPUPPCState *env, bool ifetch) /* Compatibility modes */ #if defined(TARGET_PPC64) @@ -707,5 +710,5 @@ index ee9325bf9a..20dbb95989 100644 { return -1; -- -2.31.1 +2.27.0 diff --git a/SOURCES/0010-Add-s390x-machine-types.patch b/SOURCES/0010-Add-s390x-machine-types.patch index 5be805a..fbb8841 100644 --- a/SOURCES/0010-Add-s390x-machine-types.patch +++ b/SOURCES/0010-Add-s390x-machine-types.patch @@ -1,4 +1,4 @@ -From 5116185549e3e5af307a4c7ee43005207809ab60 Mon Sep 17 00:00:00 2001 +From 4ad9a0d0582eef78946b47563eb2c5b7ddf0cbb0 Mon Sep 17 00:00:00 2001 From: Miroslav Rezanina Date: Fri, 19 Oct 2018 13:47:32 +0200 Subject: Add s390x machine types @@ -30,13 +30,14 @@ Merged patches (weekly-201216): Merged patches (weekly-210602): - 50835d3429 redhat: s390x: add rhel-8.5.0 compat machine -Signed-off-by: Danilo C. L. de Paula +Merged patches (weekly-211006): +- a3bcde27fe redhat: Add s390x machine type compatibility update for 6.1 rebase --- - hw/s390x/s390-virtio-ccw.c | 98 +++++++++++++++++++++++++++++++++++++- - 1 file changed, 97 insertions(+), 1 deletion(-) + hw/s390x/s390-virtio-ccw.c | 99 +++++++++++++++++++++++++++++++++++++- + 1 file changed, 98 insertions(+), 1 deletion(-) diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c -index e4b18aef49..18effb8f7a 100644 +index 653587ea62..181856e6cf 100644 --- a/hw/s390x/s390-virtio-ccw.c +++ b/hw/s390x/s390-virtio-ccw.c @@ -767,7 +767,7 @@ bool css_migration_enabled(void) @@ -53,10 +54,10 @@ index e4b18aef49..18effb8f7a 100644 type_init(ccw_machine_register_##suffix) +#if 0 /* Disabled for Red Hat Enterprise Linux */ - static void ccw_machine_6_1_instance_options(MachineState *machine) + static void ccw_machine_6_2_instance_options(MachineState *machine) { } -@@ -1082,6 +1083,101 @@ static void ccw_machine_2_4_class_options(MachineClass *mc) +@@ -1100,6 +1101,102 @@ static void ccw_machine_2_4_class_options(MachineClass *mc) compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); } DEFINE_CCW_MACHINE(2_4, "2.4", false); @@ -68,6 +69,7 @@ index e4b18aef49..18effb8f7a 100644 + +static void ccw_machine_rhel850_class_options(MachineClass *mc) +{ ++ compat_props_add(mc->compat_props, hw_compat_rhel_8_5, hw_compat_rhel_8_5_len); +} +DEFINE_CCW_MACHINE(rhel850, "rhel8.5.0", true); + @@ -159,5 +161,5 @@ index e4b18aef49..18effb8f7a 100644 static void ccw_machine_register_types(void) { -- -2.31.1 +2.27.0 diff --git a/SOURCES/0011-Add-x86_64-machine-types.patch b/SOURCES/0011-Add-x86_64-machine-types.patch index 9e653b4..2702772 100644 --- a/SOURCES/0011-Add-x86_64-machine-types.patch +++ b/SOURCES/0011-Add-x86_64-machine-types.patch @@ -1,4 +1,4 @@ -From f2faba4ee51c71e79d9601ef7afb2ff0f14b1a5b Mon Sep 17 00:00:00 2001 +From c2b3564ce466bc5069bf9f5b0694025c68b0858d Mon Sep 17 00:00:00 2001 From: Miroslav Rezanina Date: Fri, 19 Oct 2018 13:10:31 +0200 Subject: Add x86_64 machine types @@ -25,6 +25,9 @@ Rebase notes (weekly-210303): Rebase notes (weekly-210519): - kvm_default_props moved to new file (upstream) +Rebase notes (6.2.0-rc0): +- linuxboot_dma_enabled moved to X86MachineState + Merged patches (4.1.0): - f4dc802 pc: 7.5 compat entries - 456ed3e pc: PC_RHEL7_6_COMPAT @@ -77,25 +80,25 @@ Merged patches (weekly-210714): - c4d1aa8bf2 redhat: Enable FDC device for upstream machines too - 66882f9a32 redhat: Add hw_compat_4_2_extra and apply to upstream machines -Signed-off-by: Danilo C. L. de Paula +Fix machine type --- hw/block/fdc.c | 5 +- hw/i386/acpi-build.c | 3 + hw/i386/pc.c | 298 ++++++++++++++++++++++++++++++++++++- - hw/i386/pc_piix.c | 272 ++++++++++++++++++++++++++++++++- + hw/i386/pc_piix.c | 274 +++++++++++++++++++++++++++++++++- hw/i386/pc_q35.c | 234 ++++++++++++++++++++++++++++- include/hw/boards.h | 2 + include/hw/i386/pc.h | 45 ++++++ target/i386/kvm/kvm-cpu.c | 1 + target/i386/kvm/kvm.c | 4 + tests/qtest/pvpanic-test.c | 5 +- - 10 files changed, 860 insertions(+), 9 deletions(-) + 10 files changed, 862 insertions(+), 9 deletions(-) diff --git a/hw/block/fdc.c b/hw/block/fdc.c -index 46cee8c544..06cec1becd 100644 +index 97fa6de423..63042ef030 100644 --- a/hw/block/fdc.c +++ b/hw/block/fdc.c -@@ -2324,7 +2324,10 @@ void fdctrl_realize_common(DeviceState *dev, FDCtrl *fdctrl, Error **errp) +@@ -2341,7 +2341,10 @@ void fdctrl_realize_common(DeviceState *dev, FDCtrl *fdctrl, Error **errp) /* Restricted for Red Hat Enterprise Linux: */ MachineClass *mc = MACHINE_GET_CLASS(qdev_get_machine()); @@ -108,10 +111,10 @@ index 46cee8c544..06cec1becd 100644 object_get_typename(OBJECT(dev)), mc->name); return; diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c -index a33ac8b91e..17fc2354ae 100644 +index a99c6e4fe3..447ea35275 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c -@@ -228,6 +228,9 @@ static void acpi_get_pm_info(MachineState *machine, AcpiPmInfo *pm) +@@ -230,6 +230,9 @@ static void acpi_get_pm_info(MachineState *machine, AcpiPmInfo *pm) pm->fadt.reset_reg = r; pm->fadt.reset_val = 0xf; pm->fadt.flags |= 1 << ACPI_FADT_F_RESET_REG_SUP; @@ -122,10 +125,10 @@ index a33ac8b91e..17fc2354ae 100644 pm->smi_on_cpuhp = !!(smi_features & BIT_ULL(ICH9_LPC_SMI_F_CPU_HOTPLUG_BIT)); diff --git a/hw/i386/pc.c b/hw/i386/pc.c -index c2b9d62a35..b390e5cd94 100644 +index a2ef40ecbc..e8109954ca 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c -@@ -362,6 +362,296 @@ GlobalProperty pc_compat_1_4[] = { +@@ -371,6 +371,296 @@ GlobalProperty pc_compat_1_4[] = { }; const size_t pc_compat_1_4_len = G_N_ELEMENTS(pc_compat_1_4); @@ -422,7 +425,7 @@ index c2b9d62a35..b390e5cd94 100644 GSIState *pc_gsi_create(qemu_irq **irqs, bool pci_enabled) { GSIState *s; -@@ -947,7 +1237,8 @@ void pc_memory_init(PCMachineState *pcms, +@@ -904,7 +1194,8 @@ void pc_memory_init(PCMachineState *pcms, option_rom_mr = g_malloc(sizeof(*option_rom_mr)); memory_region_init_ram(option_rom_mr, NULL, "pc.rom", PC_ROM_SIZE, &error_fatal); @@ -432,7 +435,7 @@ index c2b9d62a35..b390e5cd94 100644 memory_region_set_readonly(option_rom_mr, true); } memory_region_add_subregion_overlap(rom_memory, -@@ -1713,6 +2004,8 @@ static void pc_machine_class_init(ObjectClass *oc, void *data) +@@ -1694,6 +1985,8 @@ static void pc_machine_class_init(ObjectClass *oc, void *data) pcmc->pvh_enabled = true; pcmc->kvmclock_create_always = true; assert(!mc->get_hotplug_handler); @@ -441,9 +444,9 @@ index c2b9d62a35..b390e5cd94 100644 mc->get_hotplug_handler = pc_get_hotplug_handler; mc->hotplug_allowed = pc_hotplug_allowed; mc->cpu_index_to_instance_props = x86_cpu_index_to_props; -@@ -1724,7 +2017,8 @@ static void pc_machine_class_init(ObjectClass *oc, void *data) +@@ -1704,7 +1997,8 @@ static void pc_machine_class_init(ObjectClass *oc, void *data) + mc->has_hotpluggable_cpus = true; mc->default_boot_order = "cad"; - mc->smp_parse = pc_smp_parse; mc->block_default_type = IF_IDE; - mc->max_cpus = 255; + /* 240: max CPU count for RHEL */ @@ -452,10 +455,10 @@ index c2b9d62a35..b390e5cd94 100644 mc->wakeup = pc_machine_wakeup; hc->pre_plug = pc_machine_device_pre_plug_cb; diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c -index eebb4f3141..15c74656a9 100644 +index dda3f64f19..2885edffe9 100644 --- a/hw/i386/pc_piix.c +++ b/hw/i386/pc_piix.c -@@ -51,6 +51,7 @@ +@@ -50,6 +50,7 @@ #include "qapi/error.h" #include "qemu/error-report.h" #include "sysemu/xen.h" @@ -499,18 +502,29 @@ index eebb4f3141..15c74656a9 100644 #define DEFINE_I440FX_MACHINE(suffix, name, compatfn, optionfn) \ static void pc_init_##suffix(MachineState *machine) \ { \ -@@ -424,8 +436,10 @@ static void pc_i440fx_6_1_machine_options(MachineClass *m) +@@ -424,8 +436,10 @@ static void pc_i440fx_6_2_machine_options(MachineClass *m) pcmc->default_cpu_version = 1; } +#if 0 /* Disabled for Red Hat Enterprise Linux */ + DEFINE_I440FX_MACHINE(v6_2, "pc-i440fx-6.2", NULL, + pc_i440fx_6_2_machine_options); ++#endif /* Disabled for Red Hat Enterprise Linux */ + + static void pc_i440fx_6_1_machine_options(MachineClass *m) + { +@@ -437,8 +451,10 @@ static void pc_i440fx_6_1_machine_options(MachineClass *m) + m->smp_props.prefer_sockets = true; + } + ++#if 0 /* Disabled for Red Hat Enterprise Linux */ DEFINE_I440FX_MACHINE(v6_1, "pc-i440fx-6.1", NULL, pc_i440fx_6_1_machine_options); +#endif /* Disabled for Red Hat Enterprise Linux */ static void pc_i440fx_6_0_machine_options(MachineClass *m) { -@@ -436,8 +450,10 @@ static void pc_i440fx_6_0_machine_options(MachineClass *m) +@@ -449,8 +465,10 @@ static void pc_i440fx_6_0_machine_options(MachineClass *m) compat_props_add(m->compat_props, pc_compat_6_0, pc_compat_6_0_len); } @@ -521,7 +535,7 @@ index eebb4f3141..15c74656a9 100644 static void pc_i440fx_5_2_machine_options(MachineClass *m) { -@@ -448,8 +464,10 @@ static void pc_i440fx_5_2_machine_options(MachineClass *m) +@@ -461,8 +479,10 @@ static void pc_i440fx_5_2_machine_options(MachineClass *m) compat_props_add(m->compat_props, pc_compat_5_2, pc_compat_5_2_len); } @@ -532,7 +546,7 @@ index eebb4f3141..15c74656a9 100644 static void pc_i440fx_5_1_machine_options(MachineClass *m) { -@@ -464,8 +482,10 @@ static void pc_i440fx_5_1_machine_options(MachineClass *m) +@@ -477,8 +497,10 @@ static void pc_i440fx_5_1_machine_options(MachineClass *m) pcmc->pci_root_uid = 1; } @@ -543,7 +557,7 @@ index eebb4f3141..15c74656a9 100644 static void pc_i440fx_5_0_machine_options(MachineClass *m) { -@@ -478,8 +498,10 @@ static void pc_i440fx_5_0_machine_options(MachineClass *m) +@@ -491,8 +513,10 @@ static void pc_i440fx_5_0_machine_options(MachineClass *m) m->auto_enable_numa_with_memdev = false; } @@ -554,7 +568,7 @@ index eebb4f3141..15c74656a9 100644 static void pc_i440fx_4_2_machine_options(MachineClass *m) { -@@ -488,8 +510,21 @@ static void pc_i440fx_4_2_machine_options(MachineClass *m) +@@ -501,8 +525,21 @@ static void pc_i440fx_4_2_machine_options(MachineClass *m) m->is_default = false; compat_props_add(m->compat_props, hw_compat_4_2, hw_compat_4_2_len); compat_props_add(m->compat_props, pc_compat_4_2, pc_compat_4_2_len); @@ -576,7 +590,7 @@ index eebb4f3141..15c74656a9 100644 DEFINE_I440FX_MACHINE(v4_2, "pc-i440fx-4.2", NULL, pc_i440fx_4_2_machine_options); -@@ -502,8 +537,10 @@ static void pc_i440fx_4_1_machine_options(MachineClass *m) +@@ -515,8 +552,10 @@ static void pc_i440fx_4_1_machine_options(MachineClass *m) compat_props_add(m->compat_props, pc_compat_4_1, pc_compat_4_1_len); } @@ -587,7 +601,7 @@ index eebb4f3141..15c74656a9 100644 static void pc_i440fx_4_0_machine_options(MachineClass *m) { -@@ -516,8 +553,10 @@ static void pc_i440fx_4_0_machine_options(MachineClass *m) +@@ -529,8 +568,10 @@ static void pc_i440fx_4_0_machine_options(MachineClass *m) compat_props_add(m->compat_props, pc_compat_4_0, pc_compat_4_0_len); } @@ -598,7 +612,7 @@ index eebb4f3141..15c74656a9 100644 static void pc_i440fx_3_1_machine_options(MachineClass *m) { -@@ -533,8 +572,10 @@ static void pc_i440fx_3_1_machine_options(MachineClass *m) +@@ -546,8 +587,10 @@ static void pc_i440fx_3_1_machine_options(MachineClass *m) compat_props_add(m->compat_props, pc_compat_3_1, pc_compat_3_1_len); } @@ -609,7 +623,7 @@ index eebb4f3141..15c74656a9 100644 static void pc_i440fx_3_0_machine_options(MachineClass *m) { -@@ -543,8 +584,10 @@ static void pc_i440fx_3_0_machine_options(MachineClass *m) +@@ -556,8 +599,10 @@ static void pc_i440fx_3_0_machine_options(MachineClass *m) compat_props_add(m->compat_props, pc_compat_3_0, pc_compat_3_0_len); } @@ -620,7 +634,7 @@ index eebb4f3141..15c74656a9 100644 static void pc_i440fx_2_12_machine_options(MachineClass *m) { -@@ -553,8 +596,10 @@ static void pc_i440fx_2_12_machine_options(MachineClass *m) +@@ -566,8 +611,10 @@ static void pc_i440fx_2_12_machine_options(MachineClass *m) compat_props_add(m->compat_props, pc_compat_2_12, pc_compat_2_12_len); } @@ -631,7 +645,7 @@ index eebb4f3141..15c74656a9 100644 static void pc_i440fx_2_11_machine_options(MachineClass *m) { -@@ -563,9 +608,11 @@ static void pc_i440fx_2_11_machine_options(MachineClass *m) +@@ -576,9 +623,11 @@ static void pc_i440fx_2_11_machine_options(MachineClass *m) compat_props_add(m->compat_props, pc_compat_2_11, pc_compat_2_11_len); } @@ -643,7 +657,7 @@ index eebb4f3141..15c74656a9 100644 static void pc_i440fx_2_10_machine_options(MachineClass *m) { pc_i440fx_2_11_machine_options(m); -@@ -937,3 +984,224 @@ static void xenfv_3_1_machine_options(MachineClass *m) +@@ -951,3 +1000,224 @@ static void xenfv_3_1_machine_options(MachineClass *m) DEFINE_PC_MACHINE(xenfv, "xenfv-3.1", pc_xen_hvm_init, xenfv_3_1_machine_options); #endif @@ -757,10 +771,10 @@ index eebb4f3141..15c74656a9 100644 + +static void pc_machine_rhel730_options(MachineClass *m) +{ -+ PCMachineClass *pcmc = PC_MACHINE_CLASS(m); ++ X86MachineClass *x86mc = X86_MACHINE_CLASS(m); + pc_machine_rhel740_options(m); + m->desc = "RHEL 7.3.0 PC (i440FX + PIIX, 1996)"; -+ pcmc->linuxboot_dma_enabled = false; ++ x86mc->fwcfg_dma_enabled = false; + compat_props_add(m->compat_props, hw_compat_rhel_7_3, hw_compat_rhel_7_3_len); + compat_props_add(m->compat_props, pc_rhel_7_3_compat, pc_rhel_7_3_compat_len); +} @@ -869,10 +883,10 @@ index eebb4f3141..15c74656a9 100644 +DEFINE_PC_MACHINE(rhel700, "pc-i440fx-rhel7.0.0", pc_init_rhel700, + pc_machine_rhel700_options); diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c -index e7724fd02c..8e9fb62a48 100644 +index 235054a643..c67418b6a9 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c -@@ -196,8 +196,8 @@ static void pc_q35_init(MachineState *machine) +@@ -197,8 +197,8 @@ static void pc_q35_init(MachineState *machine) if (pcmc->smbios_defaults) { /* These values are guest ABI, do not change */ @@ -883,7 +897,7 @@ index e7724fd02c..8e9fb62a48 100644 pcmc->smbios_uuid_encoded, pcmc->smbios_stream_product, pcmc->smbios_stream_version, -@@ -337,6 +337,7 @@ static void pc_q35_init(MachineState *machine) +@@ -342,6 +342,7 @@ static void pc_q35_init(MachineState *machine) DEFINE_PC_MACHINE(suffix, name, pc_init_##suffix, optionfn) @@ -891,7 +905,7 @@ index e7724fd02c..8e9fb62a48 100644 static void pc_q35_machine_options(MachineClass *m) { PCMachineClass *pcmc = PC_MACHINE_CLASS(m); -@@ -602,3 +603,232 @@ static void pc_q35_2_4_machine_options(MachineClass *m) +@@ -620,3 +621,232 @@ static void pc_q35_2_4_machine_options(MachineClass *m) DEFINE_Q35_MACHINE(v2_4, "pc-q35-2.4", NULL, pc_q35_2_4_machine_options); @@ -1113,11 +1127,11 @@ index e7724fd02c..8e9fb62a48 100644 + +static void pc_q35_machine_rhel730_options(MachineClass *m) +{ -+ PCMachineClass *pcmc = PC_MACHINE_CLASS(m); ++ X86MachineClass *x86mc = X86_MACHINE_CLASS(m); + pc_q35_machine_rhel740_options(m); + m->desc = "RHEL-7.3.0 PC (Q35 + ICH9, 2009)"; + m->max_cpus = 255; -+ pcmc->linuxboot_dma_enabled = false; ++ x86mc->fwcfg_dma_enabled = false; + compat_props_add(m->compat_props, hw_compat_rhel_7_3, hw_compat_rhel_7_3_len); + compat_props_add(m->compat_props, pc_rhel_7_3_compat, pc_rhel_7_3_compat_len); +} @@ -1125,10 +1139,10 @@ index e7724fd02c..8e9fb62a48 100644 +DEFINE_PC_MACHINE(q35_rhel730, "pc-q35-rhel7.3.0", pc_q35_init_rhel730, + pc_q35_machine_rhel730_options); diff --git a/include/hw/boards.h b/include/hw/boards.h -index ff4674474f..b860b30c13 100644 +index 8bba96ef2b..04e8759815 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h -@@ -242,6 +242,8 @@ struct MachineClass { +@@ -263,6 +263,8 @@ struct MachineClass { strList *allowed_dynamic_sysbus_devices; bool auto_enable_numa_with_memhp; bool auto_enable_numa_with_memdev; @@ -1138,10 +1152,10 @@ index ff4674474f..b860b30c13 100644 bool smbus_no_migration_support; bool nvdimm_supported; diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h -index 17ad7bfc3a..413b63d2ac 100644 +index 7ccc9a1a07..d0544ee119 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h -@@ -128,6 +128,9 @@ struct PCMachineClass { +@@ -125,6 +125,9 @@ struct PCMachineClass { /* create kvmclock device even when KVM PV features are not exposed */ bool kvmclock_create_always; @@ -1151,7 +1165,7 @@ index 17ad7bfc3a..413b63d2ac 100644 }; #define TYPE_PC_MACHINE "generic-pc-machine" -@@ -277,6 +280,48 @@ extern const size_t pc_compat_1_5_len; +@@ -280,6 +283,48 @@ extern const size_t pc_compat_1_5_len; extern GlobalProperty pc_compat_1_4[]; extern const size_t pc_compat_1_4_len; @@ -1213,10 +1227,10 @@ index d95028018e..7b004065ae 100644 }; diff --git a/target/i386/kvm/kvm.c b/target/i386/kvm/kvm.c -index e69abe48e3..4a3077b3f0 100644 +index 5a698bde19..a668f521ac 100644 --- a/target/i386/kvm/kvm.c +++ b/target/i386/kvm/kvm.c -@@ -3261,6 +3261,7 @@ static int kvm_get_msrs(X86CPU *cpu) +@@ -3336,6 +3336,7 @@ static int kvm_get_msrs(X86CPU *cpu) struct kvm_msr_entry *msrs = cpu->kvm_msr_buf->entries; int ret, i; uint64_t mtrr_top_bits; @@ -1224,7 +1238,7 @@ index e69abe48e3..4a3077b3f0 100644 kvm_msr_buf_reset(cpu); -@@ -3579,6 +3580,9 @@ static int kvm_get_msrs(X86CPU *cpu) +@@ -3665,6 +3666,9 @@ static int kvm_get_msrs(X86CPU *cpu) break; case MSR_KVM_ASYNC_PF_EN: env->async_pf_en_msr = msrs[i].data; @@ -1258,5 +1272,5 @@ index 6dcad2db49..580c2c43d2 100644 val = qtest_inb(qts, 0x505); g_assert_cmpuint(val, ==, 3); -- -2.31.1 +2.27.0 diff --git a/SOURCES/0012-Enable-make-check.patch b/SOURCES/0012-Enable-make-check.patch index 2638183..b2ff35a 100644 --- a/SOURCES/0012-Enable-make-check.patch +++ b/SOURCES/0012-Enable-make-check.patch @@ -1,4 +1,4 @@ -From 331e64809d6cf7cee23319c21e28bac7b58414e6 Mon Sep 17 00:00:00 2001 +From 740a2dd943a2e0fcd41a9cd8eb94a136f8f49fa2 Mon Sep 17 00:00:00 2001 From: Miroslav Rezanina Date: Wed, 2 Sep 2020 09:39:41 +0200 Subject: Enable make check @@ -40,17 +40,18 @@ Rebase changes (6.0.0): Rebase changes (6.1.0): - Remove unnecessary test disabling changes +Rebase changes (weekly-211006): +- New handling for bios-table-test (disabled downstream) + Merged patches (4.0.0): - f7ffd13 Remove 7 qcow2 and luks iotests that are taking > 25 sec to run during the fast train build proce Merged patches (4.1.0-rc0): - 41288ff redhat: Remove raw iotest 205 - -Signed-off-by: Danilo C. L. de Paula --- - redhat/qemu-kvm.spec.template | 4 ++-- + redhat/qemu-kvm.spec.template | 2 +- tests/qemu-iotests/051 | 8 ++++---- - tests/qtest/bios-tables-test.c | 6 +++--- + tests/qtest/bios-tables-test.c | 5 ++++- tests/qtest/boot-serial-test.c | 6 +++++- tests/qtest/cdrom-test.c | 4 ++++ tests/qtest/cpu-plug-test.c | 4 ++-- @@ -58,14 +59,14 @@ Signed-off-by: Danilo C. L. de Paula tests/qtest/fuzz-virtio-scsi-test.c | 2 +- tests/qtest/hd-geo-test.c | 4 ++++ tests/qtest/lpc-ich9-test.c | 2 +- - tests/qtest/meson.build | 11 +++-------- + tests/qtest/meson.build | 13 ++++--------- tests/qtest/prom-env-test.c | 4 ++++ tests/qtest/test-x86-cpuid-compat.c | 2 ++ tests/qtest/usb-hcd-xhci-test.c | 4 ++++ - 14 files changed, 40 insertions(+), 23 deletions(-) + 14 files changed, 41 insertions(+), 21 deletions(-) diff --git a/tests/qemu-iotests/051 b/tests/qemu-iotests/051 -index 7bf29343d7..fd63402d78 100755 +index 1d2fa93a11..c8a2815f54 100755 --- a/tests/qemu-iotests/051 +++ b/tests/qemu-iotests/051 @@ -174,9 +174,9 @@ run_qemu -drive if=virtio @@ -93,38 +94,37 @@ index 7bf29343d7..fd63402d78 100755 *) ;; diff --git a/tests/qtest/bios-tables-test.c b/tests/qtest/bios-tables-test.c -index 51d3a4e239..fe01fd8b7d 100644 +index 258874167e..16d8304cde 100644 --- a/tests/qtest/bios-tables-test.c +++ b/tests/qtest/bios-tables-test.c -@@ -1303,7 +1303,7 @@ static void test_acpi_virt_tcg_numamem(void) - free_test_data(&data); +@@ -1372,6 +1372,7 @@ static void test_acpi_virt_tcg_numamem(void) } -- -+#if 0 /* Disabled for Red Hat Enterprise Linux */ + ++#if 0 /* Disabled for Red Hat Enterprise Linux */ static void test_acpi_virt_tcg_pxb(void) { test_data data = { -@@ -1335,7 +1335,7 @@ static void test_acpi_virt_tcg_pxb(void) +@@ -1403,6 +1404,7 @@ static void test_acpi_virt_tcg_pxb(void) free_test_data(&data); } -- +#endif + static void test_acpi_tcg_acpi_hmat(const char *machine) { - test_data data; -@@ -1565,7 +1565,7 @@ int main(int argc, char *argv[]) - qtest_add_func("acpi/virt", test_acpi_virt_tcg); - qtest_add_func("acpi/virt/numamem", test_acpi_virt_tcg_numamem); - qtest_add_func("acpi/virt/memhp", test_acpi_virt_tcg_memhp); -- qtest_add_func("acpi/virt/pxb", test_acpi_virt_tcg_pxb); -+/* qtest_add_func("acpi/virt/pxb", test_acpi_virt_tcg_pxb); */ - qtest_add_func("acpi/virt/oem-fields", test_acpi_oem_fields_virt); +@@ -1644,7 +1646,8 @@ int main(int argc, char *argv[]) + qtest_add_func("acpi/virt", test_acpi_virt_tcg); + qtest_add_func("acpi/virt/numamem", test_acpi_virt_tcg_numamem); + qtest_add_func("acpi/virt/memhp", test_acpi_virt_tcg_memhp); +- qtest_add_func("acpi/virt/pxb", test_acpi_virt_tcg_pxb); ++ /* Disabled for Red Hat Enterprise Linux ++ qtest_add_func("acpi/virt/pxb", test_acpi_virt_tcg_pxb); */ + qtest_add_func("acpi/virt/oem-fields", test_acpi_oem_fields_virt); + } } - ret = g_test_run(); diff --git a/tests/qtest/boot-serial-test.c b/tests/qtest/boot-serial-test.c -index 96849cec91..81df62e01a 100644 +index 83828ba270..294476b959 100644 --- a/tests/qtest/boot-serial-test.c +++ b/tests/qtest/boot-serial-test.c @@ -148,19 +148,23 @@ static testdef_t tests[] = { @@ -275,17 +275,17 @@ index fe0bef9980..7a9d51579b 100644 qtest_outl(s, 0xcf8, 0x8000f840); /* PMBASE */ diff --git a/tests/qtest/meson.build b/tests/qtest/meson.build -index 2bc3efd49f..53ce4b6416 100644 +index c9d8458062..049e06c057 100644 --- a/tests/qtest/meson.build +++ b/tests/qtest/meson.build -@@ -73,7 +73,6 @@ qtests_i386 = \ +@@ -68,7 +68,6 @@ qtests_i386 = \ + (config_all_devices.has_key('CONFIG_RTL8139_PCI') ? ['rtl8139-test'] : []) + \ + (config_all_devices.has_key('CONFIG_E1000E_PCI_EXPRESS') ? ['fuzz-e1000e-test'] : []) + \ + (config_all_devices.has_key('CONFIG_ESP_PCI') ? ['am53c974-test'] : []) + \ +- (unpack_edk2_blobs ? ['bios-tables-test'] : []) + \ + qtests_pci + \ + ['fdc-test', 'ide-test', - 'hd-geo-test', - 'boot-order-test', -- 'bios-tables-test', - 'rtc-test', - 'i440fx-test', - 'fw_cfg-test', @@ -81,7 +80,6 @@ qtests_i386 = \ 'drive_del-test', 'tco-test', @@ -314,16 +314,18 @@ index 2bc3efd49f..53ce4b6416 100644 qtests_pci + ['migration-test', 'numa-test', 'cpu-plug-test', 'drive_del-test'] qtests_sh4 = (config_all_devices.has_key('CONFIG_ISA_TESTDEV') ? ['endianness-test'] : []) -@@ -186,7 +182,7 @@ qtests_aarch64 = \ +@@ -186,8 +182,8 @@ qtests_aarch64 = \ ['arm-cpu-features', 'numa-test', 'boot-serial-test', - 'xlnx-can-test', +- 'fuzz-xlnx-dp-test', +# 'xlnx-can-test', ++# 'fuzz-xlnx-dp-test', 'migration-test'] qtests_s390x = \ -@@ -195,7 +191,6 @@ qtests_s390x = \ +@@ -196,7 +192,6 @@ qtests_s390x = \ (config_host.has_key('CONFIG_POSIX') ? ['test-filter-redirector'] : []) + \ ['boot-serial-test', 'drive_del-test', @@ -401,5 +403,5 @@ index 10ef9d2a91..3855873050 100644 qtest_start("-device nec-usb-xhci,id=xhci" -- -2.31.1 +2.27.0 diff --git a/SOURCES/0013-vfio-cap-number-of-devices-that-can-be-assigned.patch b/SOURCES/0013-vfio-cap-number-of-devices-that-can-be-assigned.patch index 21cf8a3..d9c8d42 100644 --- a/SOURCES/0013-vfio-cap-number-of-devices-that-can-be-assigned.patch +++ b/SOURCES/0013-vfio-cap-number-of-devices-that-can-be-assigned.patch @@ -1,4 +1,4 @@ -From 77ea9d0bc1e8f79e04d63f75d10143d3eef3cd75 Mon Sep 17 00:00:00 2001 +From e9ebc159a9acf108e1ec6f622be3f256cf14aba7 Mon Sep 17 00:00:00 2001 From: Bandan Das Date: Tue, 3 Dec 2013 20:05:13 +0100 Subject: vfio: cap number of devices that can be assigned @@ -32,15 +32,13 @@ Merged patches (2.9.0): Merged patches (4.1.0-rc3): - 2b89558 vfio: increase the cap on number of assigned devices to 64 - -Signed-off-by: Danilo C. L. de Paula --- hw/vfio/pci.c | 29 ++++++++++++++++++++++++++++- hw/vfio/pci.h | 1 + 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c -index e1ea1d8a23..717af74b9a 100644 +index 7b45353ce2..eb725a3aee 100644 --- a/hw/vfio/pci.c +++ b/hw/vfio/pci.c @@ -45,6 +45,9 @@ @@ -53,7 +51,7 @@ index e1ea1d8a23..717af74b9a 100644 static void vfio_disable_interrupts(VFIOPCIDevice *vdev); static void vfio_mmap_set_enabled(VFIOPCIDevice *vdev, bool enabled); -@@ -2790,9 +2793,30 @@ static void vfio_realize(PCIDevice *pdev, Error **errp) +@@ -2807,9 +2810,30 @@ static void vfio_realize(PCIDevice *pdev, Error **errp) ssize_t len; struct stat st; int groupid; @@ -85,7 +83,7 @@ index e1ea1d8a23..717af74b9a 100644 if (!vdev->vbasedev.sysfsdev) { if (!(~vdev->host.domain || ~vdev->host.bus || ~vdev->host.slot || ~vdev->host.function)) { -@@ -3229,6 +3253,9 @@ static Property vfio_pci_dev_properties[] = { +@@ -3246,6 +3270,9 @@ static Property vfio_pci_dev_properties[] = { DEFINE_PROP_BOOL("x-no-kvm-msix", VFIOPCIDevice, no_kvm_msix, false), DEFINE_PROP_BOOL("x-no-geforce-quirks", VFIOPCIDevice, no_geforce_quirks, false), @@ -108,5 +106,5 @@ index 64777516d1..e0fe6ca97e 100644 uint32_t device_id; uint32_t sub_vendor_id; -- -2.31.1 +2.27.0 diff --git a/SOURCES/0014-Add-support-statement-to-help-output.patch b/SOURCES/0014-Add-support-statement-to-help-output.patch index 9cc2dff..2259e13 100644 --- a/SOURCES/0014-Add-support-statement-to-help-output.patch +++ b/SOURCES/0014-Add-support-statement-to-help-output.patch @@ -1,4 +1,4 @@ -From b170ff26dd57d703253c4d9d0e4afd300ff1a010 Mon Sep 17 00:00:00 2001 +From b736b0c41dd62ed6f874a7b33ca1d4f9ceab4573 Mon Sep 17 00:00:00 2001 From: Eduardo Habkost Date: Wed, 4 Dec 2013 18:53:17 +0100 Subject: Add support statement to -help output @@ -16,16 +16,15 @@ Add support statement to -help output, reporting direct qemu-kvm usage as unsupported by Red Hat, and advising users to use libvirt instead. Signed-off-by: Eduardo Habkost -Signed-off-by: Danilo C. L. de Paula --- softmmu/vl.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/softmmu/vl.c b/softmmu/vl.c -index 5ca11e7469..55673d7302 100644 +index 620a1f1367..d46b8fb4ab 100644 --- a/softmmu/vl.c +++ b/softmmu/vl.c -@@ -802,9 +802,17 @@ static void version(void) +@@ -827,9 +827,17 @@ static void version(void) QEMU_COPYRIGHT "\n"); } @@ -43,7 +42,7 @@ index 5ca11e7469..55673d7302 100644 printf("usage: %s [options] [disk_image]\n\n" "'disk_image' is a raw hard disk image for IDE hard disk 0\n\n", error_get_progname()); -@@ -830,6 +838,7 @@ static void help(int exitcode) +@@ -855,6 +863,7 @@ static void help(int exitcode) "\n" QEMU_HELP_BOTTOM "\n"); @@ -52,5 +51,5 @@ index 5ca11e7469..55673d7302 100644 } -- -2.31.1 +2.27.0 diff --git a/SOURCES/0015-globally-limit-the-maximum-number-of-CPUs.patch b/SOURCES/0015-globally-limit-the-maximum-number-of-CPUs.patch index afe0abe..31d9643 100644 --- a/SOURCES/0015-globally-limit-the-maximum-number-of-CPUs.patch +++ b/SOURCES/0015-globally-limit-the-maximum-number-of-CPUs.patch @@ -1,4 +1,4 @@ -From c5616455a4db0e5b67a41e4f6ec12b939e95eaa1 Mon Sep 17 00:00:00 2001 +From 9a7621819821ee88d2f99d6b629fd87aa9a07758 Mon Sep 17 00:00:00 2001 From: Andrew Jones Date: Tue, 21 Jan 2014 10:46:52 +0100 Subject: globally limit the maximum number of CPUs @@ -33,17 +33,15 @@ Merged patches (5.1.0): Merged patches (5.2.0 rc0): - f8a4123 vl: Remove downstream-only MAX_RHEL_CPUS code - -Signed-off-by: Danilo C. L. de Paula --- accel/kvm/kvm-all.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c -index 0125c17edb..b5d488a027 100644 +index eecd8031cf..8f2a53438f 100644 --- a/accel/kvm/kvm-all.c +++ b/accel/kvm/kvm-all.c -@@ -2413,6 +2413,18 @@ static int kvm_init(MachineState *ms) +@@ -2423,6 +2423,18 @@ static int kvm_init(MachineState *ms) soft_vcpus_limit = kvm_recommended_vcpus(s); hard_vcpus_limit = kvm_max_vcpus(s); @@ -63,5 +61,5 @@ index 0125c17edb..b5d488a027 100644 if (nc->num > soft_vcpus_limit) { warn_report("Number of %s cpus requested (%d) exceeds " -- -2.31.1 +2.27.0 diff --git a/SOURCES/0016-Use-qemu-kvm-in-documentation-instead-of-qemu-system.patch b/SOURCES/0016-Use-qemu-kvm-in-documentation-instead-of-qemu-system.patch index 8b14c60..9eda7c3 100644 --- a/SOURCES/0016-Use-qemu-kvm-in-documentation-instead-of-qemu-system.patch +++ b/SOURCES/0016-Use-qemu-kvm-in-documentation-instead-of-qemu-system.patch @@ -1,4 +1,4 @@ -From c05425555925206ce8d1bfc347313a101444cff7 Mon Sep 17 00:00:00 2001 +From 0d3fc0b4c5773c6cabb0a58c064475f76eb6ac1e Mon Sep 17 00:00:00 2001 From: Miroslav Rezanina Date: Wed, 8 Jul 2020 08:35:50 +0200 Subject: Use qemu-kvm in documentation instead of qemu-system- @@ -22,8 +22,6 @@ Rebase notes (5.1.0 rc0): Rebase notes (5.2.0 rc0): - rewrite patch to new docs structure - -Signed-off-by: Danilo C. L. de Paula --- docs/defs.rst.inc | 4 ++-- docs/tools/qemu-trace-stap.rst | 14 +++++++------- @@ -45,10 +43,10 @@ index 52d6454b93..d74dbdeca9 100644 .. |I2C| replace:: I\ :sup:`2`\ C .. |I2S| replace:: I\ :sup:`2`\ S diff --git a/docs/tools/qemu-trace-stap.rst b/docs/tools/qemu-trace-stap.rst -index fb70445c75..0d9a783112 100644 +index d53073b52b..9e93df084f 100644 --- a/docs/tools/qemu-trace-stap.rst +++ b/docs/tools/qemu-trace-stap.rst -@@ -45,19 +45,19 @@ The following commands are valid: +@@ -46,19 +46,19 @@ The following commands are valid: any of the listed names. If no *PATTERN* is given, the all possible probes will be listed. @@ -71,7 +69,7 @@ index fb70445c75..0d9a783112 100644 .. option:: run OPTIONS BINARY PATTERN... -@@ -89,18 +89,18 @@ The following commands are valid: +@@ -90,18 +90,18 @@ The following commands are valid: Restrict the tracing session so that it only triggers for the process identified by *PID*. @@ -93,7 +91,7 @@ index fb70445c75..0d9a783112 100644 To monitor QEMU processes running an alternative binary outside of ``$PATH``, displaying verbose information about setup of the -@@ -108,7 +108,7 @@ The following commands are valid: +@@ -109,7 +109,7 @@ The following commands are valid: :: @@ -103,10 +101,10 @@ index fb70445c75..0d9a783112 100644 See also -------- diff --git a/qemu-options.hx b/qemu-options.hx -index ac596e01a1..eea5fe9f68 100644 +index ae2c6dbbfc..94c4a8dbaf 100644 --- a/qemu-options.hx +++ b/qemu-options.hx -@@ -3124,11 +3124,11 @@ SRST +@@ -3150,11 +3150,11 @@ SRST :: @@ -124,5 +122,5 @@ index ac596e01a1..eea5fe9f68 100644 ``-netdev vhost-vdpa,vhostdev=/path/to/dev`` Establish a vhost-vdpa netdev. -- -2.31.1 +2.27.0 diff --git a/SOURCES/0017-virtio-scsi-Reject-scsi-cd-if-data-plane-enabled-RHE.patch b/SOURCES/0017-virtio-scsi-Reject-scsi-cd-if-data-plane-enabled-RHE.patch index f991d21..6b60efc 100644 --- a/SOURCES/0017-virtio-scsi-Reject-scsi-cd-if-data-plane-enabled-RHE.patch +++ b/SOURCES/0017-virtio-scsi-Reject-scsi-cd-if-data-plane-enabled-RHE.patch @@ -1,4 +1,4 @@ -From 14b8056c89dee051d3cf9b6893940811dfb9a61d Mon Sep 17 00:00:00 2001 +From d95768c039a2bf6b68422f83a8d55dad41bd3181 Mon Sep 17 00:00:00 2001 From: Fam Zheng Date: Wed, 14 Jun 2017 15:37:01 +0200 Subject: virtio-scsi: Reject scsi-cd if data plane enabled [RHEL only] @@ -42,7 +42,7 @@ Signed-off-by: Danilo C. L. de Paula 1 file changed, 9 insertions(+) diff --git a/hw/scsi/virtio-scsi.c b/hw/scsi/virtio-scsi.c -index 6d80730287..bba3d75707 100644 +index 51fd09522a..a35257c35a 100644 --- a/hw/scsi/virtio-scsi.c +++ b/hw/scsi/virtio-scsi.c @@ -896,6 +896,15 @@ static void virtio_scsi_hotplug(HotplugHandler *hotplug_dev, DeviceState *dev, @@ -62,5 +62,5 @@ index 6d80730287..bba3d75707 100644 if (blk_op_is_blocked(sd->conf.blk, BLOCK_OP_TYPE_DATAPLANE, errp)) { return; -- -2.31.1 +2.27.0 diff --git a/SOURCES/0018-BZ1653590-Require-at-least-64kiB-pages-for-downstrea.patch b/SOURCES/0018-BZ1653590-Require-at-least-64kiB-pages-for-downstrea.patch index 3babb88..e07746d 100644 --- a/SOURCES/0018-BZ1653590-Require-at-least-64kiB-pages-for-downstrea.patch +++ b/SOURCES/0018-BZ1653590-Require-at-least-64kiB-pages-for-downstrea.patch @@ -1,4 +1,4 @@ -From 786d6e8bf10cac3eec615ad8b5590fa85afe55b8 Mon Sep 17 00:00:00 2001 +From 92bb62c47eab021f8dabecd09b5fbc1706e6a29c Mon Sep 17 00:00:00 2001 From: David Gibson Date: Wed, 6 Feb 2019 03:58:56 +0000 Subject: BZ1653590: Require at least 64kiB pages for downstream guests & hosts @@ -56,5 +56,5 @@ index ed7c077a0d..48a8efe678 100644 spapr_check_pagesize(spapr, qemu_minrampagesize(), errp); } -- -2.31.1 +2.27.0 diff --git a/SOURCES/0019-compat-Update-hw_compat_rhel_8_5.patch b/SOURCES/0019-compat-Update-hw_compat_rhel_8_5.patch new file mode 100644 index 0000000..6d2b7c3 --- /dev/null +++ b/SOURCES/0019-compat-Update-hw_compat_rhel_8_5.patch @@ -0,0 +1,53 @@ +From a9b5da617c29f48199cbea08d6a1c083877dce10 Mon Sep 17 00:00:00 2001 +From: Laurent Vivier +Date: Mon, 15 Nov 2021 14:22:29 +0100 +Subject: compat: Update hw_compat_rhel_8_5 + +RH-Author: Laurent Vivier +RH-MergeRequest: 66: redhat: Update pseries-rhel8.5.0 machine type +RH-Commit: [1/2] 232f2ad2b29d250fbdb8fcea9d814704c575ba2b +RH-Bugzilla: 2022608 +RH-Acked-by: Eric Auger +RH-Acked-by: Cornelia Huck +RH-Acked-by: Greg Kurz + +Add properties from hw_compat_6_1 as it already includes the ones from +hw_compat_6_0. Add a lately added property from 6.0 too. + +Signed-off-by: Laurent Vivier +-- +Rebase notes (6.2.0 rc3): +- Included compatc changes introduced in RC2 +--- + hw/core/machine.c | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/hw/core/machine.c b/hw/core/machine.c +index 62febde5aa..736c765c30 100644 +--- a/hw/core/machine.c ++++ b/hw/core/machine.c +@@ -38,7 +38,7 @@ + #include "hw/virtio/virtio-pci.h" + + /* +- * Mostly the same as hw_compat_6_0 ++ * Mostly the same as hw_compat_6_0 and hw_compat_6_1 + */ + GlobalProperty hw_compat_rhel_8_5[] = { + /* hw_compat_rhel_8_5 from hw_compat_6_0 */ +@@ -51,6 +51,12 @@ GlobalProperty hw_compat_rhel_8_5[] = { + { "e1000", "init-vet", "off" }, + /* hw_compat_rhel_8_5 from hw_compat_6_0 */ + { "e1000e", "init-vet", "off" }, ++ /* hw_compat_rhel_8_5 from hw_compat_6_0 */ ++ { "vhost-vsock-device", "seqpacket", "off" }, ++ /* hw_compat_rhel_8_5 from hw_compat_6_1 */ ++ { "vhost-user-vsock-device", "seqpacket", "off" }, ++ /* hw_compat_rhel_8_5 from hw_compat_6_1 */ ++ { "nvme-ns", "shared", "off" }, + }; + const size_t hw_compat_rhel_8_5_len = G_N_ELEMENTS(hw_compat_rhel_8_5); + +-- +2.27.0 + diff --git a/SOURCES/0020-redhat-Update-pseries-rhel8.5.0-machine-type.patch b/SOURCES/0020-redhat-Update-pseries-rhel8.5.0-machine-type.patch new file mode 100644 index 0000000..af8e9dd --- /dev/null +++ b/SOURCES/0020-redhat-Update-pseries-rhel8.5.0-machine-type.patch @@ -0,0 +1,43 @@ +From 82358c35f04f026820b3907069a6c19cd95b654d Mon Sep 17 00:00:00 2001 +From: Laurent Vivier +Date: Mon, 15 Nov 2021 14:25:33 +0100 +Subject: redhat: Update pseries-rhel8.5.0 machine type + +RH-Author: Laurent Vivier +RH-MergeRequest: 66: redhat: Update pseries-rhel8.5.0 machine type +RH-Commit: [2/2] 36f7ad1ea56baaaecb139875ad0a90a6470196be +RH-Bugzilla: 2022608 +RH-Acked-by: Eric Auger +RH-Acked-by: Cornelia Huck +RH-Acked-by: Greg Kurz +` +We don't introduce a new machine type for rhel8.6.0 but we need +to keep compatibility with rhel8.5.0 machine type. + +Signed-off-by: Laurent Vivier +--- + hw/ppc/spapr.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c +index cace86028d..2f27888d8a 100644 +--- a/hw/ppc/spapr.c ++++ b/hw/ppc/spapr.c +@@ -5177,10 +5177,14 @@ static void spapr_machine_rhel_default_class_options(MachineClass *mc) + + static void spapr_machine_rhel850_class_options(MachineClass *mc) + { ++ SpaprMachineClass *smc = SPAPR_MACHINE_CLASS(mc); ++ + /* The default machine type must apply the RHEL specific defaults */ + spapr_machine_rhel_default_class_options(mc); + compat_props_add(mc->compat_props, hw_compat_rhel_8_5, + hw_compat_rhel_8_5_len); ++ smc->pre_6_2_numa_affinity = true; ++ mc->smp_props.prefer_sockets = true; + } + + DEFINE_SPAPR_MACHINE(rhel850, "rhel8.5.0", true); +-- +2.27.0 + diff --git a/SOURCES/0021-redhat-virt-rhel8.5.0-Update-machine-type-compatibil.patch b/SOURCES/0021-redhat-virt-rhel8.5.0-Update-machine-type-compatibil.patch new file mode 100644 index 0000000..3bcf4e0 --- /dev/null +++ b/SOURCES/0021-redhat-virt-rhel8.5.0-Update-machine-type-compatibil.patch @@ -0,0 +1,51 @@ +From ce73e939b993cc6be170cdb5d3f2068270593f2b Mon Sep 17 00:00:00 2001 +From: Eric Auger +Date: Tue, 16 Nov 2021 17:03:07 +0100 +Subject: redhat: virt-rhel8.5.0: Update machine type compatibility for QEMU + 6.2.0 update + +RH-Author: Eric Auger +RH-MergeRequest: 75: redhat: virt-rhel8.5.0: Update machine type compatibility for QEMU 6.2.0 update +RH-Commit: [21/21] f027d13654944e3d34e3356affe7af952eec2bed +RH-Bugzilla: 2022607 +RH-Acked-by: Gavin Shan +RH-Acked-by: Miroslav Rezanina +RH-Acked-by: Andrew Jones +RH-Acked-by: Cornelia Huck +RH-Acked-by: Laurent Vivier + +To keep compatibility with 8.5-AV machine type we need to +turn few new options on by default: +smp_props.prefer_sockets, no_cpu_topology, no_tcg_its + +TESTED: migrate from rhel-av-8.5.0 to rhel-8.6.0 and vice-versa +with upstream fix: 33a0c404fb hw/intc/arm_gicv3_its: Revert version +increments in vmstate_its + +Signed-off-by: Eric Auger +Signed-off-by: Miroslav Rezanina +--- + hw/arm/virt.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/hw/arm/virt.c b/hw/arm/virt.c +index c77d26ab13..e8941afd01 100644 +--- a/hw/arm/virt.c ++++ b/hw/arm/virt.c +@@ -3225,8 +3225,13 @@ type_init(rhel_machine_init); + + static void rhel850_virt_options(MachineClass *mc) + { ++ VirtMachineClass *vmc = VIRT_MACHINE_CLASS(OBJECT_CLASS(mc)); ++ + compat_props_add(mc->compat_props, arm_rhel_compat, arm_rhel_compat_len); + compat_props_add(mc->compat_props, hw_compat_rhel_8_5, hw_compat_rhel_8_5_len); ++ mc->smp_props.prefer_sockets = true; ++ vmc->no_cpu_topology = true; ++ vmc->no_tcg_its = true; + } + DEFINE_RHEL_MACHINE_AS_LATEST(8, 5, 0) + +-- +2.27.0 + diff --git a/SOURCES/0022-Fix-virtio-net-pci-vectors-compat.patch b/SOURCES/0022-Fix-virtio-net-pci-vectors-compat.patch new file mode 100644 index 0000000..b484ea1 --- /dev/null +++ b/SOURCES/0022-Fix-virtio-net-pci-vectors-compat.patch @@ -0,0 +1,45 @@ +From f9643b6934657292aae0b830627b1e5f9b8cbaa1 Mon Sep 17 00:00:00 2001 +From: Eduardo Habkost +Date: Tue, 19 Oct 2021 13:17:06 -0400 +Subject: Fix virtio-net-pci* "vectors" compat + +RH-Author: Dr. David Alan Gilbert +RH-MergeRequest: 77: 8.6/6.2 mt fixes +RH-Commit: [21/23] 8ad581932275d2698a99f31bec40b14f1dbd3d2e +RH-Bugzilla: 2026443 +RH-Acked-by: Miroslav Rezanina + +hw_compat_rhel_8_4 has an issue: it affects only "virtio-net-pci" +but not "virtio-net-pci-transitional" and +"virtio-net-pci-non-transitional". The solution is to use the +"virtio-net-pci-base" type in compat_props. + +An equivalent fix will be submitted for hw_compat_5_2 upstream. + +Signed-off-by: Eduardo Habkost +(cherry picked from commit d45823ab0d0138b2fbaf2ed1e1896d2052f3ccb3) +Signed-off-by: Miroslav Rezanina +--- + hw/core/machine.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/hw/core/machine.c b/hw/core/machine.c +index 736c765c30..024b025fc2 100644 +--- a/hw/core/machine.c ++++ b/hw/core/machine.c +@@ -71,7 +71,11 @@ GlobalProperty hw_compat_rhel_8_4[] = { + /* hw_compat_rhel_8_4 from hw_compat_5_2 */ + { "virtio-blk-device", "report-discard-granularity", "off" }, + /* hw_compat_rhel_8_4 from hw_compat_5_2 */ +- { "virtio-net-pci", "vectors", "3"}, ++ /* ++ * Upstream incorrectly had "virtio-net-pci" instead of "virtio-net-pci-base", ++ * (https://bugzilla.redhat.com/show_bug.cgi?id=1999141) ++ */ ++ { "virtio-net-pci-base", "vectors", "3"}, + }; + const size_t hw_compat_rhel_8_4_len = G_N_ELEMENTS(hw_compat_rhel_8_4); + +-- +2.27.0 + diff --git a/SOURCES/0023-x86-rhel-machine-types-Add-pc_rhel_8_5_compat.patch b/SOURCES/0023-x86-rhel-machine-types-Add-pc_rhel_8_5_compat.patch new file mode 100644 index 0000000..8572d61 --- /dev/null +++ b/SOURCES/0023-x86-rhel-machine-types-Add-pc_rhel_8_5_compat.patch @@ -0,0 +1,73 @@ +From 7ad8814e583dcc7dc23e3e8398570243b8f176a1 Mon Sep 17 00:00:00 2001 +From: "Dr. David Alan Gilbert" +Date: Tue, 23 Nov 2021 17:57:42 +0000 +Subject: x86/rhel machine types: Add pc_rhel_8_5_compat + +RH-Author: Dr. David Alan Gilbert +RH-MergeRequest: 77: 8.6/6.2 mt fixes +RH-Commit: [22/23] 8bf555c5d78f344b97ffd5c888c7a7bed592d9d0 +RH-Bugzilla: 2026443 +RH-Acked-by: Miroslav Rezanina + +Add pc_rhel_8_5_compat as the merge of pc_compat_6_1 and pc_compat_6_0 +(since 8.5 was based on 6.0). + +Note, x-keep-pci-slot-hpc flipped back and forward, leaving it out +looks like it leaves us with the original. + +Signed-off-by: Dr. David Alan Gilbert +Signed-off-by: Miroslav Rezanina +--- + hw/i386/pc.c | 21 +++++++++++++++++++++ + include/hw/i386/pc.h | 3 +++ + 2 files changed, 24 insertions(+) + +diff --git a/hw/i386/pc.c b/hw/i386/pc.c +index e8109954ca..4c08a1971c 100644 +--- a/hw/i386/pc.c ++++ b/hw/i386/pc.c +@@ -387,6 +387,27 @@ GlobalProperty pc_rhel_compat[] = { + }; + const size_t pc_rhel_compat_len = G_N_ELEMENTS(pc_rhel_compat); + ++GlobalProperty pc_rhel_8_5_compat[] = { ++ /* pc_rhel_8_5_compat from pc_compat_6_0 */ ++ { "qemu64" "-" TYPE_X86_CPU, "family", "6" }, ++ /* pc_rhel_8_5_compat from pc_compat_6_0 */ ++ { "qemu64" "-" TYPE_X86_CPU, "model", "6" }, ++ /* pc_rhel_8_5_compat from pc_compat_6_0 */ ++ { "qemu64" "-" TYPE_X86_CPU, "stepping", "3" }, ++ /* pc_rhel_8_5_compat from pc_compat_6_0 */ ++ { TYPE_X86_CPU, "x-vendor-cpuid-only", "off" }, ++ /* pc_rhel_8_5_compat from pc_compat_6_0 */ ++ { "ICH9-LPC", ACPI_PM_PROP_ACPI_PCIHP_BRIDGE, "off" }, ++ ++ /* pc_rhel_8_5_compat from pc_compat_6_1 */ ++ { TYPE_X86_CPU, "hv-version-id-build", "0x1bbc" }, ++ /* pc_rhel_8_5_compat from pc_compat_6_1 */ ++ { TYPE_X86_CPU, "hv-version-id-major", "0x0006" }, ++ /* pc_rhel_8_5_compat from pc_compat_6_1 */ ++ { TYPE_X86_CPU, "hv-version-id-minor", "0x0001" }, ++}; ++const size_t pc_rhel_8_5_compat_len = G_N_ELEMENTS(pc_rhel_8_5_compat); ++ + GlobalProperty pc_rhel_8_4_compat[] = { + /* pc_rhel_8_4_compat from pc_compat_5_2 */ + { "ICH9-LPC", "x-smi-cpu-hotunplug", "off" }, +diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h +index d0544ee119..9e8bfb69f8 100644 +--- a/include/hw/i386/pc.h ++++ b/include/hw/i386/pc.h +@@ -286,6 +286,9 @@ extern const size_t pc_compat_1_4_len; + extern GlobalProperty pc_rhel_compat[]; + extern const size_t pc_rhel_compat_len; + ++extern GlobalProperty pc_rhel_8_5_compat[]; ++extern const size_t pc_rhel_8_5_compat_len; ++ + extern GlobalProperty pc_rhel_8_4_compat[]; + extern const size_t pc_rhel_8_4_compat_len; + +-- +2.27.0 + diff --git a/SOURCES/0024-x86-rhel-machine-types-Wire-compat-into-q35-and-i440.patch b/SOURCES/0024-x86-rhel-machine-types-Wire-compat-into-q35-and-i440.patch new file mode 100644 index 0000000..4acfa88 --- /dev/null +++ b/SOURCES/0024-x86-rhel-machine-types-Wire-compat-into-q35-and-i440.patch @@ -0,0 +1,54 @@ +From 7bd99eebadfdbea6a76585b526e7cab1ee8b1fde Mon Sep 17 00:00:00 2001 +From: "Dr. David Alan Gilbert" +Date: Tue, 23 Nov 2021 18:07:49 +0000 +Subject: x86/rhel machine types: Wire compat into q35 and i440fx + +RH-Author: Dr. David Alan Gilbert +RH-MergeRequest: 77: 8.6/6.2 mt fixes +RH-Commit: [23/23] fc3861aeccc943b434231193ef45ffbc0b3cf6c6 +RH-Bugzilla: 2026443 +RH-Acked-by: Miroslav Rezanina + +Wire the pc_rhel_8_5 compat data into both piix and q35 +to keep the existing machine types compatible. + +Signed-off-by: Dr. David Alan Gilbert +Signed-off-by: Miroslav Rezanina +--- + hw/i386/pc_piix.c | 4 ++++ + hw/i386/pc_q35.c | 4 ++++ + 2 files changed, 8 insertions(+) + +diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c +index 2885edffe9..37fab00733 100644 +--- a/hw/i386/pc_piix.c ++++ b/hw/i386/pc_piix.c +@@ -1040,6 +1040,10 @@ static void pc_machine_rhel760_options(MachineClass *m) + pcmc->kvmclock_create_always = false; + /* From pc_i440fx_5_1_machine_options() */ + pcmc->pci_root_uid = 1; ++ compat_props_add(m->compat_props, hw_compat_rhel_8_5, ++ hw_compat_rhel_8_5_len); ++ compat_props_add(m->compat_props, pc_rhel_8_5_compat, ++ pc_rhel_8_5_compat_len); + compat_props_add(m->compat_props, hw_compat_rhel_8_4, + hw_compat_rhel_8_4_len); + compat_props_add(m->compat_props, pc_rhel_8_4_compat, +diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c +index c67418b6a9..78876e1101 100644 +--- a/hw/i386/pc_q35.c ++++ b/hw/i386/pc_q35.c +@@ -658,6 +658,10 @@ static void pc_q35_machine_rhel850_options(MachineClass *m) + m->desc = "RHEL-8.5.0 PC (Q35 + ICH9, 2009)"; + pcmc->smbios_stream_product = "RHEL-AV"; + pcmc->smbios_stream_version = "8.5.0"; ++ compat_props_add(m->compat_props, hw_compat_rhel_8_5, ++ hw_compat_rhel_8_5_len); ++ compat_props_add(m->compat_props, pc_rhel_8_5_compat, ++ pc_rhel_8_5_compat_len); + } + + DEFINE_PC_MACHINE(q35_rhel850, "pc-q35-rhel8.5.0", pc_q35_init_rhel850, +-- +2.27.0 + diff --git a/SOURCES/0025-redhat-Add-s390x-machine-type-compatibility-handling.patch b/SOURCES/0025-redhat-Add-s390x-machine-type-compatibility-handling.patch new file mode 100644 index 0000000..1ae8a99 --- /dev/null +++ b/SOURCES/0025-redhat-Add-s390x-machine-type-compatibility-handling.patch @@ -0,0 +1,58 @@ +From 265a57f2955b7f0b65e3f57f89aa1ff2541d3f73 Mon Sep 17 00:00:00 2001 +From: Thomas Huth +Date: Fri, 26 Nov 2021 09:37:11 +0100 +Subject: redhat: Add s390x machine type compatibility handling for the rebase + to v6.2 + +RH-Author: Thomas Huth +RH-MergeRequest: 80: Add s390x machine type compatibility handling for the rebase to v6.2 +RH-Commit: [26/26] c45cf594604f6dd23954696b9c84d2025e328d11 +RH-Bugzilla: 2022602 +RH-Acked-by: David Hildenbrand +RH-Acked-by: Laurent Vivier +RH-Acked-by: Cornelia Huck + +Add compatibility handling for the rhel8.5.0 machine type (and +recursively older, of course). + +Based on the following upstream commits: + + 463e50da8b - s390x/cpumodel: Bump up QEMU model to a stripped-down IBM z14 GA2 + 30e398f796 - s390x/cpumodel: Add more feature to gen16 default model + 4a0af2930a - machine: Prefer cores over sockets in smp parsing since 6.2 + 2b52619994 - machine: Move smp_prefer_sockets to struct SMPCompatProps + +Signed-off-by: Thomas Huth +--- + hw/s390x/s390-virtio-ccw.c | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c +index 181856e6cf..cf13c457d6 100644 +--- a/hw/s390x/s390-virtio-ccw.c ++++ b/hw/s390x/s390-virtio-ccw.c +@@ -1105,11 +1105,21 @@ DEFINE_CCW_MACHINE(2_4, "2.4", false); + + static void ccw_machine_rhel850_instance_options(MachineState *machine) + { ++ static const S390FeatInit qemu_cpu_feat = { S390_FEAT_LIST_QEMU_V6_0 }; ++ ++ s390_set_qemu_cpu_model(0x2964, 13, 2, qemu_cpu_feat); ++ ++ s390_cpudef_featoff_greater(16, 1, S390_FEAT_NNPA); ++ s390_cpudef_featoff_greater(16, 1, S390_FEAT_VECTOR_PACKED_DECIMAL_ENH2); ++ s390_cpudef_featoff_greater(16, 1, S390_FEAT_BEAR_ENH); ++ s390_cpudef_featoff_greater(16, 1, S390_FEAT_RDP); ++ s390_cpudef_featoff_greater(16, 1, S390_FEAT_PAI); + } + + static void ccw_machine_rhel850_class_options(MachineClass *mc) + { + compat_props_add(mc->compat_props, hw_compat_rhel_8_5, hw_compat_rhel_8_5_len); ++ mc->smp_props.prefer_sockets = true; + } + DEFINE_CCW_MACHINE(rhel850, "rhel8.5.0", true); + +-- +2.27.0 + diff --git a/SOURCES/kvm-acpi-validate-hotplug-selector-on-access.patch b/SOURCES/kvm-acpi-validate-hotplug-selector-on-access.patch new file mode 100644 index 0000000..d18989a --- /dev/null +++ b/SOURCES/kvm-acpi-validate-hotplug-selector-on-access.patch @@ -0,0 +1,51 @@ +From 529a5d908f5d16714b8ae0a51eaaaa84994dfae8 Mon Sep 17 00:00:00 2001 +From: "Michael S. Tsirkin" +Date: Tue, 21 Dec 2021 09:45:44 -0500 +Subject: [PATCH 1/2] acpi: validate hotplug selector on access +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +RH-Author: Jon Maloy +RH-MergeRequest: 97: acpi: validate hotplug selector on access +RH-Commit: [1/1] 79bcfb0df0091e2b716d2e1c545f047b3409c26c (jmaloy/qemu-kvm) +RH-Bugzilla: 2036580 +RH-Acked-by: Miroslav Rezanina +RH-Acked-by: Daniel P. Berrangé +RH-Acked-by: Igor Mammedov + +When bus is looked up on a pci write, we didn't +validate that the lookup succeeded. +Fuzzers thus can trigger QEMU crash by dereferencing the NULL +bus pointer. + +Fixes: b32bd763a1 ("pci: introduce acpi-index property for PCI device") +Fixes: CVE-2021-4158 +Cc: "Igor Mammedov" +Fixes: https://gitlab.com/qemu-project/qemu/-/issues/770 +Signed-off-by: Michael S. Tsirkin +Reviewed-by: Philippe Mathieu-Daudé +Reviewed-by: Ani Sinha +(cherry picked from commit 9bd6565ccee68f72d5012e24646e12a1c662827e) +Signed-off-by: Jon Maloy +--- + hw/acpi/pcihp.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/hw/acpi/pcihp.c b/hw/acpi/pcihp.c +index 30405b5113..a5e182dd3a 100644 +--- a/hw/acpi/pcihp.c ++++ b/hw/acpi/pcihp.c +@@ -491,6 +491,9 @@ static void pci_write(void *opaque, hwaddr addr, uint64_t data, + } + + bus = acpi_pcihp_find_hotplug_bus(s, s->hotplug_select); ++ if (!bus) { ++ break; ++ } + QTAILQ_FOREACH_SAFE(kid, &bus->qbus.children, sibling, next) { + Object *o = OBJECT(kid->child); + PCIDevice *dev = PCI_DEVICE(o); +-- +2.27.0 + diff --git a/SOURCES/kvm-e1000-fix-tx-re-entrancy-problem.patch b/SOURCES/kvm-e1000-fix-tx-re-entrancy-problem.patch deleted file mode 100644 index b07b483..0000000 --- a/SOURCES/kvm-e1000-fix-tx-re-entrancy-problem.patch +++ /dev/null @@ -1,71 +0,0 @@ -From bf83e26f55bd16f06df86b1bfc1a9c4708c9d11e Mon Sep 17 00:00:00 2001 -From: Jon Maloy -Date: Thu, 21 Oct 2021 12:10:47 -0400 -Subject: [PATCH 1/2] e1000: fix tx re-entrancy problem -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -RH-Author: Jon Maloy -RH-MergeRequest: 54: e1000: fix tx re-entrancy problem -RH-Commit: [1/1] 0aa00b3d9db1c318bf133e1f073e289ef4fb1cfa (jmaloy/qemu-kvm) -RH-Bugzilla: 1930092 -RH-Acked-by: Philippe Mathieu-Daudé -RH-Acked-by: Stefano Garzarella -RH-Acked-by: Jason Wang - -The fact that the MMIO handler is not re-entrant causes an infinite -loop under certain conditions: - -Guest write to TDT -> Loopback -> RX (DMA to TDT) -> TX - -We now eliminate the effect of this problem locally in e1000, by adding -a boolean in struct E1000State indicating when the TX side is busy. This -will cause any entering new call to return early instead of interfering -with the ongoing work, and eliminates any risk of looping. - -This is intended to address CVE-2021-20257. - -Signed-off-by: Jon Maloy -Signed-off-by: Jason Wang -(cherry picked from commit 25ddb946e6301f42cff3094ea1c25fb78813e7e9) -Signed-off-by: Jon Maloy ---- - hw/net/e1000.c | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/hw/net/e1000.c b/hw/net/e1000.c -index c2877978d9..282d01e374 100644 ---- a/hw/net/e1000.c -+++ b/hw/net/e1000.c -@@ -107,6 +107,7 @@ struct E1000State_st { - e1000x_txd_props props; - e1000x_txd_props tso_props; - uint16_t tso_frames; -+ bool busy; - } tx; - - struct { -@@ -763,6 +764,11 @@ start_xmit(E1000State *s) - return; - } - -+ if (s->tx.busy) { -+ return; -+ } -+ s->tx.busy = true; -+ - while (s->mac_reg[TDH] != s->mac_reg[TDT]) { - base = tx_desc_base(s) + - sizeof(struct e1000_tx_desc) * s->mac_reg[TDH]; -@@ -789,6 +795,7 @@ start_xmit(E1000State *s) - break; - } - } -+ s->tx.busy = false; - set_ics(s, 0, cause); - } - --- -2.27.0 - diff --git a/SOURCES/kvm-hw-arm-virt-Add-8.6-machine-type.patch b/SOURCES/kvm-hw-arm-virt-Add-8.6-machine-type.patch new file mode 100644 index 0000000..f3c5492 --- /dev/null +++ b/SOURCES/kvm-hw-arm-virt-Add-8.6-machine-type.patch @@ -0,0 +1,57 @@ +From a154eb35d738aecf552d57d99499facce1c834ba Mon Sep 17 00:00:00 2001 +From: Eric Auger +Date: Mon, 20 Dec 2021 15:24:24 +0100 +Subject: [PATCH 4/6] hw/arm/virt: Add 8.6 machine type + +RH-Author: Eric Auger +RH-MergeRequest: 95: hw/arm/virt: Add virt-rhel8.6.0 machine type +RH-Commit: [4/5] d0df3e796d3e9a6ca2af1e3b33fc6021bcac5d09 +RH-Bugzilla: 2031039 +RH-Acked-by: Miroslav Rezanina +RH-Acked-by: Andrew Jones +RH-Acked-by: Gavin Shan + +branch: rhel-8.6.0 +Brew: 42212069 +Upstream: no + +Add 8.6 machine type. + +Signed-off-by: Eric Auger +--- + hw/arm/virt.c | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +diff --git a/hw/arm/virt.c b/hw/arm/virt.c +index 6a4173b6c3..c9c17b9d45 100644 +--- a/hw/arm/virt.c ++++ b/hw/arm/virt.c +@@ -3228,17 +3228,23 @@ static void rhel_machine_init(void) + } + type_init(rhel_machine_init); + ++static void rhel860_virt_options(MachineClass *mc) ++{ ++ compat_props_add(mc->compat_props, arm_rhel_compat, arm_rhel_compat_len); ++} ++DEFINE_RHEL_MACHINE_AS_LATEST(8, 6, 0) ++ + static void rhel850_virt_options(MachineClass *mc) + { + VirtMachineClass *vmc = VIRT_MACHINE_CLASS(OBJECT_CLASS(mc)); + +- compat_props_add(mc->compat_props, arm_rhel_compat, arm_rhel_compat_len); ++ rhel860_virt_options(mc); + compat_props_add(mc->compat_props, hw_compat_rhel_8_5, hw_compat_rhel_8_5_len); + mc->smp_props.prefer_sockets = true; + vmc->no_cpu_topology = true; + vmc->no_tcg_its = true; + } +-DEFINE_RHEL_MACHINE_AS_LATEST(8, 5, 0) ++DEFINE_RHEL_MACHINE(8, 5, 0) + + static void rhel840_virt_options(MachineClass *mc) + { +-- +2.27.0 + diff --git a/SOURCES/kvm-hw-arm-virt-Add-hw_compat_rhel_8_5-to-8.5-machine-ty.patch b/SOURCES/kvm-hw-arm-virt-Add-hw_compat_rhel_8_5-to-8.5-machine-ty.patch deleted file mode 100644 index 86c0bdc..0000000 --- a/SOURCES/kvm-hw-arm-virt-Add-hw_compat_rhel_8_5-to-8.5-machine-ty.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 86e3057c0a6ca9b032b27da95f466cc617f39685 Mon Sep 17 00:00:00 2001 -From: Eric Auger -Date: Tue, 12 Oct 2021 17:45:08 +0200 -Subject: [PATCH 2/2] hw: arm: virt: Add hw_compat_rhel_8_5 to 8.5 machine type - -RH-Author: Eric Auger -RH-MergeRequest: 50: hw: arm: virt: Add hw_compat_rhel_8_5 to 8.5 machine type -RH-Commit: [1/1] 36829fd07764be52b3af52e58f6d6fce50d1d10e -RH-Bugzilla: 1998947 -RH-Acked-by: Stefano Garzarella -RH-Acked-by: Gavin Shan -RH-Acked-by: Andrew Jones - -branch: rhel-8.6.0 -upstream: no -Brew: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=40294321 - -Add hw_compat_rhel_8_5 to rhel8.5 virt options. - -Signed-off-by: Eric Auger ---- - hw/arm/virt.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/hw/arm/virt.c b/hw/arm/virt.c -index 07f9e64b23..4d1fd970fc 100644 ---- a/hw/arm/virt.c -+++ b/hw/arm/virt.c -@@ -3143,6 +3143,7 @@ type_init(rhel_machine_init); - static void rhel850_virt_options(MachineClass *mc) - { - compat_props_add(mc->compat_props, arm_rhel_compat, arm_rhel_compat_len); -+ compat_props_add(mc->compat_props, hw_compat_rhel_8_5, hw_compat_rhel_8_5_len); - } - DEFINE_RHEL_MACHINE_AS_LATEST(8, 5, 0) - --- -2.27.0 - diff --git a/SOURCES/kvm-hw-arm-virt-Check-no_tcg_its-and-minor-style-changes.patch b/SOURCES/kvm-hw-arm-virt-Check-no_tcg_its-and-minor-style-changes.patch new file mode 100644 index 0000000..679f436 --- /dev/null +++ b/SOURCES/kvm-hw-arm-virt-Check-no_tcg_its-and-minor-style-changes.patch @@ -0,0 +1,86 @@ +From 1b4a8daf695a81f18ba70bea91b199da215da4e1 Mon Sep 17 00:00:00 2001 +From: Eric Auger +Date: Wed, 5 Jan 2022 16:17:10 +0100 +Subject: [PATCH 5/6] hw/arm/virt: Check no_tcg_its and minor style changes + +RH-Author: Eric Auger +RH-MergeRequest: 95: hw/arm/virt: Add virt-rhel8.6.0 machine type +RH-Commit: [5/5] 57e77446ff5a1a7efe152b2c907c0a0ca5487ab7 +RH-Bugzilla: 2031039 +RH-Acked-by: Miroslav Rezanina +RH-Acked-by: Andrew Jones +RH-Acked-by: Gavin Shan + +branch: rhel-8.6.0 +Brew: 42212069 +Upstream: no + +Truly allow TCG ITS instantiation according to the no_tcg_its +class flag. Otherwise it is always set to false. + +We also take benefit of this patch to do some minor non +functional style changes to be closer to the upstream code. + +Signed-off-by: Eric Auger +--- + hw/arm/virt.c | 14 ++++++++++++-- + 1 file changed, 12 insertions(+), 2 deletions(-) + +diff --git a/hw/arm/virt.c b/hw/arm/virt.c +index c9c17b9d45..dbf0a6d62f 100644 +--- a/hw/arm/virt.c ++++ b/hw/arm/virt.c +@@ -3157,6 +3157,7 @@ static void rhel_machine_class_init(ObjectClass *oc, void *data) + "in ACPI table header." + "The string may be up to 6 bytes in size"); + ++ + object_class_property_add_str(oc, "x-oem-table-id", + virt_get_oem_table_id, + virt_set_oem_table_id); +@@ -3164,6 +3165,7 @@ static void rhel_machine_class_init(ObjectClass *oc, void *data) + "Override the default value of field OEM Table ID " + "in ACPI table header." + "The string may be up to 8 bytes in size"); ++ + } + + static void rhel_virt_instance_init(Object *obj) +@@ -3188,24 +3190,32 @@ static void rhel_virt_instance_init(Object *obj) + } else { + /* Default allows ITS instantiation */ + vms->its = true; ++ ++ if (vmc->no_tcg_its) { ++ vms->tcg_its = false; ++ } else { ++ vms->tcg_its = true; ++ } + } + + /* Default disallows iommu instantiation */ + vms->iommu = VIRT_IOMMU_NONE; + ++ /* The default root bus is attached to iommu by default */ ++ vms->default_bus_bypass_iommu = false; ++ + /* Default disallows RAS instantiation and is non-configurable for RHEL */ + vms->ras = false; + + /* MTE is disabled by default and non-configurable for RHEL */ + vms->mte = false; + +- vms->default_bus_bypass_iommu = false; + vms->irqmap = a15irqmap; + + virt_flash_create(vms); ++ + vms->oem_id = g_strndup(ACPI_BUILD_APPNAME6, 6); + vms->oem_table_id = g_strndup(ACPI_BUILD_APPNAME8, 8); +- + } + + static const TypeInfo rhel_machine_info = { +-- +2.27.0 + diff --git a/SOURCES/kvm-hw-arm-virt-Register-iommu-as-a-class-property.patch b/SOURCES/kvm-hw-arm-virt-Register-iommu-as-a-class-property.patch new file mode 100644 index 0000000..734756d --- /dev/null +++ b/SOURCES/kvm-hw-arm-virt-Register-iommu-as-a-class-property.patch @@ -0,0 +1,78 @@ +From 8d5b57798d079307a98f6be5e1f6d28d1937a2fe Mon Sep 17 00:00:00 2001 +From: Eric Auger +Date: Mon, 20 Dec 2021 15:50:44 +0100 +Subject: [PATCH 1/6] hw/arm/virt: Register "iommu" as a class property + +RH-Author: Eric Auger +RH-MergeRequest: 95: hw/arm/virt: Add virt-rhel8.6.0 machine type +RH-Commit: [1/5] 74b01bb90213493db700d5bdf81dd99892571972 +RH-Bugzilla: 2031039 +RH-Acked-by: Miroslav Rezanina +RH-Acked-by: Andrew Jones +RH-Acked-by: Gavin Shan + +branch: rhel-8.6.0 +Brew: 42212069 +Upstream: no + +Register the "iommu" option as a class property. This mirrors what +was done in upstream commit b91def7b ("arm/virt: Register +most properties as class properties"). + +While we are at it we also move the "x-oem-id" and "x-oem-table-id" +registrations at the very end of the rhel_machine_class_init() +function. This makes our life easier when comparing with upstream. + +Signed-off-by: Eric Auger +--- + hw/arm/virt.c | 20 ++++++++++++-------- + 1 file changed, 12 insertions(+), 8 deletions(-) + +diff --git a/hw/arm/virt.c b/hw/arm/virt.c +index e8941afd01..684ffce52e 100644 +--- a/hw/arm/virt.c ++++ b/hw/arm/virt.c +@@ -3131,6 +3131,18 @@ static void rhel_machine_class_init(ObjectClass *oc, void *data) + "Set GIC version. " + "Valid values are 2, 3, host and max"); + ++ object_class_property_add_str(oc, "iommu", virt_get_iommu, virt_set_iommu); ++ object_class_property_set_description(oc, "iommu", ++ "Set the IOMMU type. " ++ "Valid values are none and smmuv3"); ++ ++ object_class_property_add_bool(oc, "default_bus_bypass_iommu", ++ virt_get_default_bus_bypass_iommu, ++ virt_set_default_bus_bypass_iommu); ++ object_class_property_set_description(oc, "default_bus_bypass_iommu", ++ "Set on/off to enable/disable " ++ "bypass_iommu for default root bus"); ++ + object_class_property_add_str(oc, "x-oem-id", + virt_get_oem_id, + virt_set_oem_id); +@@ -3146,10 +3158,6 @@ static void rhel_machine_class_init(ObjectClass *oc, void *data) + "Override the default value of field OEM Table ID " + "in ACPI table header." + "The string may be up to 8 bytes in size"); +- object_class_property_add_bool(oc, "default_bus_bypass_iommu", +- virt_get_default_bus_bypass_iommu, +- virt_set_default_bus_bypass_iommu); +- + } + + static void rhel_virt_instance_init(Object *obj) +@@ -3183,10 +3191,6 @@ static void rhel_virt_instance_init(Object *obj) + + /* Default disallows iommu instantiation */ + vms->iommu = VIRT_IOMMU_NONE; +- object_property_add_str(obj, "iommu", virt_get_iommu, virt_set_iommu); +- object_property_set_description(obj, "iommu", +- "Set the IOMMU type. " +- "Valid values are none and smmuv3"); + + /* Default disallows RAS instantiation and is non-configurable for RHEL */ + vms->ras = false; +-- +2.27.0 + diff --git a/SOURCES/kvm-hw-arm-virt-Register-its-as-a-class-property.patch b/SOURCES/kvm-hw-arm-virt-Register-its-as-a-class-property.patch new file mode 100644 index 0000000..91b353a --- /dev/null +++ b/SOURCES/kvm-hw-arm-virt-Register-its-as-a-class-property.patch @@ -0,0 +1,57 @@ +From 07e2094cd86c1be349c0bdda69acd1857afacb66 Mon Sep 17 00:00:00 2001 +From: Eric Auger +Date: Mon, 20 Dec 2021 16:04:59 +0100 +Subject: [PATCH 2/6] hw/arm/virt: Register "its" as a class property + +RH-Author: Eric Auger +RH-MergeRequest: 95: hw/arm/virt: Add virt-rhel8.6.0 machine type +RH-Commit: [2/5] 4ddfa57495578127770f93689c4d9f111a12b91c +RH-Bugzilla: 2031039 +RH-Acked-by: Miroslav Rezanina +RH-Acked-by: Andrew Jones +RH-Acked-by: Gavin Shan + +branch: rhel-8.6.0 +Brew: 42212069 +Upstream: no + +Register "its" as a class property. This mirrors what was done +in commit 27edeeaafe43 ("virt: Register "its" as class property"). + +Signed-off-by: Eric Auger +--- + hw/arm/virt.c | 11 ++++++----- + 1 file changed, 6 insertions(+), 5 deletions(-) + +diff --git a/hw/arm/virt.c b/hw/arm/virt.c +index 684ffce52e..d679391eb0 100644 +--- a/hw/arm/virt.c ++++ b/hw/arm/virt.c +@@ -3143,6 +3143,12 @@ static void rhel_machine_class_init(ObjectClass *oc, void *data) + "Set on/off to enable/disable " + "bypass_iommu for default root bus"); + ++ object_class_property_add_bool(oc, "its", virt_get_its, ++ virt_set_its); ++ object_class_property_set_description(oc, "its", ++ "Set on/off to enable/disable " ++ "ITS instantiation"); ++ + object_class_property_add_str(oc, "x-oem-id", + virt_get_oem_id, + virt_set_oem_id); +@@ -3182,11 +3188,6 @@ static void rhel_virt_instance_init(Object *obj) + } else { + /* Default allows ITS instantiation */ + vms->its = true; +- object_property_add_bool(obj, "its", virt_get_its, +- virt_set_its); +- object_property_set_description(obj, "its", +- "Set on/off to enable/disable " +- "ITS instantiation"); + } + + /* Default disallows iommu instantiation */ +-- +2.27.0 + diff --git a/SOURCES/kvm-hw-arm-virt-Rename-default_bus_bypass_iommu.patch b/SOURCES/kvm-hw-arm-virt-Rename-default_bus_bypass_iommu.patch new file mode 100644 index 0000000..25e20ea --- /dev/null +++ b/SOURCES/kvm-hw-arm-virt-Rename-default_bus_bypass_iommu.patch @@ -0,0 +1,46 @@ +From e896ba2bfbb613576ec3fbe5b948a326ac06193d Mon Sep 17 00:00:00 2001 +From: Eric Auger +Date: Mon, 20 Dec 2021 15:58:38 +0100 +Subject: [PATCH 3/6] hw/arm/virt: Rename default_bus_bypass_iommu + +RH-Author: Eric Auger +RH-MergeRequest: 95: hw/arm/virt: Add virt-rhel8.6.0 machine type +RH-Commit: [3/5] 3ed0425391dab7cf14c6e66fc1b2430be1152d6c +RH-Bugzilla: 2031039 +RH-Acked-by: Miroslav Rezanina +RH-Acked-by: Andrew Jones +RH-Acked-by: Gavin Shan + +branch: rhel-8.6.0 +Brew: 42212069 +Upstream: no + +Rename "default_bus_bypass_iommu" into "default-bus-bypass-iommu". +This mirrors what was done in upstream commit: +9dad363a223 ("hw/arm/virt: Rename default_bus_bypass_iommu") + +Signed-off-by: Eric Auger +--- + hw/arm/virt.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/hw/arm/virt.c b/hw/arm/virt.c +index d679391eb0..6a4173b6c3 100644 +--- a/hw/arm/virt.c ++++ b/hw/arm/virt.c +@@ -3136,10 +3136,10 @@ static void rhel_machine_class_init(ObjectClass *oc, void *data) + "Set the IOMMU type. " + "Valid values are none and smmuv3"); + +- object_class_property_add_bool(oc, "default_bus_bypass_iommu", ++ object_class_property_add_bool(oc, "default-bus-bypass-iommu", + virt_get_default_bus_bypass_iommu, + virt_set_default_bus_bypass_iommu); +- object_class_property_set_description(oc, "default_bus_bypass_iommu", ++ object_class_property_set_description(oc, "default-bus-bypass-iommu", + "Set on/off to enable/disable " + "bypass_iommu for default root bus"); + +-- +2.27.0 + diff --git a/SOURCES/kvm-hw-scsi-scsi-disk-MODE_PAGE_ALLS-not-allowed-in-MODE.patch b/SOURCES/kvm-hw-scsi-scsi-disk-MODE_PAGE_ALLS-not-allowed-in-MODE.patch deleted file mode 100644 index 640b2fa..0000000 --- a/SOURCES/kvm-hw-scsi-scsi-disk-MODE_PAGE_ALLS-not-allowed-in-MODE.patch +++ /dev/null @@ -1,62 +0,0 @@ -From 1ed9669ab7ef35a592dd78636c60300466f9c71f Mon Sep 17 00:00:00 2001 -From: Mauro Matteo Cascella -Date: Thu, 4 Nov 2021 17:31:38 +0100 -Subject: [PATCH 2/2] hw/scsi/scsi-disk: MODE_PAGE_ALLS not allowed in MODE - SELECT commands -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -RH-Author: Jon Maloy -RH-MergeRequest: 69: hw/scsi/scsi-disk: MODE_PAGE_ALLS not allowed in MODE SELECT commands -RH-Commit: [1/1] 929b23f9ac50b3b1e6712c85018feee384a0ca19 (jmaloy/qemu-kvm) -RH-Bugzilla: 2020720 -RH-Acked-by: Mauro Matteo Cascella -RH-Acked-by: Hanna Reitz -RH-Acked-by: Stefano Garzarella -RH-Acked-by: Philippe Mathieu-Daudé - -This avoids an off-by-one read of 'mode_sense_valid' buffer in -hw/scsi/scsi-disk.c:mode_sense_page(). - -Fixes: CVE-2021-3930 -Cc: qemu-stable@nongnu.org -Reported-by: Alexander Bulekov -Fixes: a8f4bbe2900 ("scsi-disk: store valid mode pages in a table") -Fixes: #546 -Reported-by: Qiuhao Li -Signed-off-by: Mauro Matteo Cascella -Signed-off-by: Paolo Bonzini -(cherry picked from commit b3af7fdf9cc537f8f0dd3e2423d83f5c99a457e8) -Signed-off-by: Jon Maloy ---- - hw/scsi/scsi-disk.c | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c -index e8a547dbb7..d4914178ea 100644 ---- a/hw/scsi/scsi-disk.c -+++ b/hw/scsi/scsi-disk.c -@@ -1087,6 +1087,7 @@ static int mode_sense_page(SCSIDiskState *s, int page, uint8_t **p_outbuf, - uint8_t *p = *p_outbuf + 2; - int length; - -+ assert(page < ARRAY_SIZE(mode_sense_valid)); - if ((mode_sense_valid[page] & (1 << s->qdev.type)) == 0) { - return -1; - } -@@ -1428,6 +1429,11 @@ static int scsi_disk_check_mode_select(SCSIDiskState *s, int page, - return -1; - } - -+ /* MODE_PAGE_ALLS is only valid for MODE SENSE commands */ -+ if (page == MODE_PAGE_ALLS) { -+ return -1; -+ } -+ - p = mode_current; - memset(mode_current, 0, inlen + 2); - len = mode_sense_page(s, page, &p, 0); --- -2.27.0 - diff --git a/SOURCES/kvm-qxl-fix-pre-save-logic.patch b/SOURCES/kvm-qxl-fix-pre-save-logic.patch deleted file mode 100644 index 5db32f2..0000000 --- a/SOURCES/kvm-qxl-fix-pre-save-logic.patch +++ /dev/null @@ -1,46 +0,0 @@ -From ccb23fcac26e2a3712e2f25af6499a1d3b7e2882 Mon Sep 17 00:00:00 2001 -From: Gerd Hoffmann -Date: Fri, 10 Sep 2021 11:42:03 +0200 -Subject: [PATCH 1/4] qxl: fix pre-save logic -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -RH-Author: Gerd Hoffmann -RH-MergeRequest: 39: qxl: fix pre-save logic -RH-Commit: [1/1] 126b1a352c63805bd23f5eb704515090eedc04e7 -RH-Bugzilla: 2002907 -RH-Acked-by: Philippe Mathieu-Daudé -RH-Acked-by: Dr. David Alan Gilbert -RH-Acked-by: Marc-André Lureau - -Oops. Logic is backwards. - -Fixes: 39b8a183e2f3 ("qxl: remove assert in qxl_pre_save.") -Resolves: https://gitlab.com/qemu-project/qemu/-/issues/610 -Resolves: https://bugzilla.redhat.com//show_bug.cgi?id=2002907 -Signed-off-by: Gerd Hoffmann -Reviewed-by: Daniel P. Berrangé -Reviewed-by: Marc-André Lureau -Message-Id: <20210910094203.3582378-1-kraxel@redhat.com> -(cherry picked from commit eb94846280df3f1e2a91b6179fc05f9890b7e384) ---- - hw/display/qxl.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/hw/display/qxl.c b/hw/display/qxl.c -index 43482d4364..29c80b4289 100644 ---- a/hw/display/qxl.c -+++ b/hw/display/qxl.c -@@ -2252,7 +2252,7 @@ static int qxl_pre_save(void *opaque) - } else { - d->last_release_offset = (uint8_t *)d->last_release - ram_start; - } -- if (d->last_release_offset < d->vga.vram_size) { -+ if (d->last_release_offset >= d->vga.vram_size) { - return 1; - } - --- -2.18.2 - diff --git a/SOURCES/kvm-redhat-Add-rhel8.6.0-machine-type-for-s390x.patch b/SOURCES/kvm-redhat-Add-rhel8.6.0-machine-type-for-s390x.patch new file mode 100644 index 0000000..edf8ec9 --- /dev/null +++ b/SOURCES/kvm-redhat-Add-rhel8.6.0-machine-type-for-s390x.patch @@ -0,0 +1,69 @@ +From 3541c9fc2c2dd5cf7dd583bc5645d82ea928d9e8 Mon Sep 17 00:00:00 2001 +From: Thomas Huth +Date: Fri, 10 Dec 2021 10:07:40 +0100 +Subject: [PATCH 1/2] redhat: Add rhel8.6.0 machine type for s390x +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +RH-Author: Thomas Huth +RH-MergeRequest: 90: Add rhel8.6.0 machine type for s390x +RH-Commit: [1/1] 91961fc52d708e6b30d7361fbab3572c5b5c1859 +RH-Bugzilla: 2005325 +RH-Acked-by: Greg Kurz +RH-Acked-by: Philippe Mathieu-Daudé +RH-Acked-by: Cornelia Huck +RH-Acked-by: David Hildenbrand + +Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2005325 + +The new machine type has better default values for the upcoming +"generation 16" mainframe. + +Signed-off-by: Thomas Huth +--- + hw/s390x/s390-virtio-ccw.c | 14 +++++++++++++- + 1 file changed, 13 insertions(+), 1 deletion(-) + +diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c +index cf13c457d6..9795eb9406 100644 +--- a/hw/s390x/s390-virtio-ccw.c ++++ b/hw/s390x/s390-virtio-ccw.c +@@ -1103,10 +1103,21 @@ static void ccw_machine_2_4_class_options(MachineClass *mc) + DEFINE_CCW_MACHINE(2_4, "2.4", false); + #endif + ++static void ccw_machine_rhel860_instance_options(MachineState *machine) ++{ ++} ++ ++static void ccw_machine_rhel860_class_options(MachineClass *mc) ++{ ++} ++DEFINE_CCW_MACHINE(rhel860, "rhel8.6.0", true); ++ + static void ccw_machine_rhel850_instance_options(MachineState *machine) + { + static const S390FeatInit qemu_cpu_feat = { S390_FEAT_LIST_QEMU_V6_0 }; + ++ ccw_machine_rhel860_instance_options(machine); ++ + s390_set_qemu_cpu_model(0x2964, 13, 2, qemu_cpu_feat); + + s390_cpudef_featoff_greater(16, 1, S390_FEAT_NNPA); +@@ -1118,10 +1129,11 @@ static void ccw_machine_rhel850_instance_options(MachineState *machine) + + static void ccw_machine_rhel850_class_options(MachineClass *mc) + { ++ ccw_machine_rhel860_class_options(mc); + compat_props_add(mc->compat_props, hw_compat_rhel_8_5, hw_compat_rhel_8_5_len); + mc->smp_props.prefer_sockets = true; + } +-DEFINE_CCW_MACHINE(rhel850, "rhel8.5.0", true); ++DEFINE_CCW_MACHINE(rhel850, "rhel8.5.0", false); + + static void ccw_machine_rhel840_instance_options(MachineState *machine) + { +-- +2.27.0 + diff --git a/SOURCES/kvm-redhat-Add-s390x-machine-type-compatibility-update-f.patch b/SOURCES/kvm-redhat-Add-s390x-machine-type-compatibility-update-f.patch deleted file mode 100644 index 32a1793..0000000 --- a/SOURCES/kvm-redhat-Add-s390x-machine-type-compatibility-update-f.patch +++ /dev/null @@ -1,44 +0,0 @@ -From a3bcde27feff7156c24d79f88e171b9d90322575 Mon Sep 17 00:00:00 2001 -From: Thomas Huth -Date: Thu, 30 Sep 2021 09:25:23 +0200 -Subject: [PATCH 4/4] redhat: Add s390x machine type compatibility update for - 6.1 rebase -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -RH-Author: Thomas Huth -RH-MergeRequest: 44: Add s390x machine type compatibility update for 6.1 rebase in RHEL 8.6 -RH-Commit: [2/2] 13d855fd5dbeb1d67d0716e9f85384e7361d3f9d -RH-Bugzilla: 1998950 -RH-Acked-by: Greg Kurz -RH-Acked-by: Daniel P. Berrangé -RH-Acked-by: Cornelia Huck - -Add hw_compat_rhel_8_5 for the s390-ccw-virtio-rhel8.5.0 machine -type. It's currently not urgently required, since hw_compat_rhel_8_5 -only contains entries that are not related to s390x, but just in -case some other entries are added there later, it's better if we -add this right from the start to the s390x machine, too. - -Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1998950 -Signed-off-by: Thomas Huth ---- - hw/s390x/s390-virtio-ccw.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c -index 18effb8f7a..1a1bac57a2 100644 ---- a/hw/s390x/s390-virtio-ccw.c -+++ b/hw/s390x/s390-virtio-ccw.c -@@ -1091,6 +1091,7 @@ static void ccw_machine_rhel850_instance_options(MachineState *machine) - - static void ccw_machine_rhel850_class_options(MachineClass *mc) - { -+ compat_props_add(mc->compat_props, hw_compat_rhel_8_5, hw_compat_rhel_8_5_len); - } - DEFINE_CCW_MACHINE(rhel850, "rhel8.5.0", true); - --- -2.18.2 - diff --git a/SOURCES/kvm-redhat-Define-hw_compat_rhel_8_5.patch b/SOURCES/kvm-redhat-Define-hw_compat_rhel_8_5.patch deleted file mode 100644 index 90f5d8d..0000000 --- a/SOURCES/kvm-redhat-Define-hw_compat_rhel_8_5.patch +++ /dev/null @@ -1,72 +0,0 @@ -From 43c4b9bea61ab636fc495386877aa0da27649eea Mon Sep 17 00:00:00 2001 -From: Greg Kurz -Date: Mon, 27 Sep 2021 10:02:46 +0200 -Subject: [PATCH 2/4] redhat: Define hw_compat_rhel_8_5 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -RH-Author: Greg Kurz -RH-MergeRequest: 43: redhat: Add machine type compatibility update for 6.1 rebase [ppc64le] -RH-Commit: [1/2] d031e23ab1b97f13c1e24794caf950221487ee43 -RH-Bugzilla: 1998949 -RH-Acked-by: Daniel P. Berrangé -RH-Acked-by: David Gibson (Red Hat) -RH-Acked-by: Cornelia Huck -RH-Acked-by: Laurent Vivier - -The QEMU 6.1 rebase changed the default value of some properties -for existing machine types. Prepare ground by introducing -hw_compat_rhel_8_5. - -Signed-off-by: Greg Kurz ---- - hw/core/machine.c | 17 +++++++++++++++++ - include/hw/boards.h | 3 +++ - 2 files changed, 20 insertions(+) - -diff --git a/hw/core/machine.c b/hw/core/machine.c -index 4601281b9c..6276c30161 100644 ---- a/hw/core/machine.c -+++ b/hw/core/machine.c -@@ -37,6 +37,23 @@ - #include "hw/virtio/virtio.h" - #include "hw/virtio/virtio-pci.h" - -+/* -+ * Mostly the same as hw_compat_6_0 -+ */ -+GlobalProperty hw_compat_rhel_8_5[] = { -+ /* hw_compat_rhel_8_5 from hw_compat_6_0 */ -+ { "gpex-pcihost", "allow-unmapped-accesses", "false" }, -+ /* hw_compat_rhel_8_5 from hw_compat_6_0 */ -+ { "i8042", "extended-state", "false"}, -+ /* hw_compat_rhel_8_5 from hw_compat_6_0 */ -+ { "nvme-ns", "eui64-default", "off"}, -+ /* hw_compat_rhel_8_5 from hw_compat_6_0 */ -+ { "e1000", "init-vet", "off" }, -+ /* hw_compat_rhel_8_5 from hw_compat_6_0 */ -+ { "e1000e", "init-vet", "off" }, -+}; -+const size_t hw_compat_rhel_8_5_len = G_N_ELEMENTS(hw_compat_rhel_8_5); -+ - /* - * Mostly the same as hw_compat_5_2 - */ -diff --git a/include/hw/boards.h b/include/hw/boards.h -index b860b30c13..b35cb3413a 100644 ---- a/include/hw/boards.h -+++ b/include/hw/boards.h -@@ -418,6 +418,9 @@ extern const size_t hw_compat_2_2_len; - extern GlobalProperty hw_compat_2_1[]; - extern const size_t hw_compat_2_1_len; - -+extern GlobalProperty hw_compat_rhel_8_5[]; -+extern const size_t hw_compat_rhel_8_5_len; -+ - extern GlobalProperty hw_compat_rhel_8_4[]; - extern const size_t hw_compat_rhel_8_4_len; - --- -2.18.2 - diff --git a/SOURCES/kvm-redhat-Define-pseries-rhel8.6.0-machine-type.patch b/SOURCES/kvm-redhat-Define-pseries-rhel8.6.0-machine-type.patch new file mode 100644 index 0000000..760a5fd --- /dev/null +++ b/SOURCES/kvm-redhat-Define-pseries-rhel8.6.0-machine-type.patch @@ -0,0 +1,76 @@ +From 300cdf7f5b8b34e111c5e4141684af7329be46d9 Mon Sep 17 00:00:00 2001 +From: Greg Kurz +Date: Mon, 13 Dec 2021 15:42:41 +0100 +Subject: [PATCH 2/2] redhat: Define pseries-rhel8.6.0 machine type +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +RH-Author: Greg Kurz +RH-MergeRequest: 92: redhat: Define pseries-rhel8.6.0 machine type +RH-Commit: [1/1] 3c0f59d7ddf4bb22f382b5df7daa136730b9e866 +RH-Bugzilla: 2031041 +RH-Acked-by: Philippe Mathieu-Daudé +RH-Acked-by: David Gibson (Red Hat) +RH-Acked-by: Thomas Huth +RH-Acked-by: Cornelia Huck +RH-Acked-by: Laurent Vivier + +BZ: https://bugzilla.redhat.com/show_bug.cgi?id=2031041 + +BRANCH: rhel-8.6.0 + +UPSTREAM: RHEL only + +BREW: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=41989147 + +Signed-off-by: Greg Kurz +--- + hw/ppc/spapr.c | 18 +++++++++++++++--- + 1 file changed, 15 insertions(+), 3 deletions(-) + +diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c +index 2f27888d8a..32cfe8f006 100644 +--- a/hw/ppc/spapr.c ++++ b/hw/ppc/spapr.c +@@ -5170,6 +5170,19 @@ static void spapr_machine_rhel_default_class_options(MachineClass *mc) + mc->max_cpus = 384; + } + ++/* ++ * pseries-rhel8.6.0 ++ * like pseries-6.2 ++ */ ++ ++static void spapr_machine_rhel860_class_options(MachineClass *mc) ++{ ++ /* The default machine type must apply the RHEL specific defaults */ ++ spapr_machine_rhel_default_class_options(mc); ++} ++ ++DEFINE_SPAPR_MACHINE(rhel860, "rhel8.6.0", true); ++ + /* + * pseries-rhel8.5.0 + * like pseries-6.0 +@@ -5179,15 +5192,14 @@ static void spapr_machine_rhel850_class_options(MachineClass *mc) + { + SpaprMachineClass *smc = SPAPR_MACHINE_CLASS(mc); + +- /* The default machine type must apply the RHEL specific defaults */ +- spapr_machine_rhel_default_class_options(mc); ++ spapr_machine_rhel860_class_options(mc); + compat_props_add(mc->compat_props, hw_compat_rhel_8_5, + hw_compat_rhel_8_5_len); + smc->pre_6_2_numa_affinity = true; + mc->smp_props.prefer_sockets = true; + } + +-DEFINE_SPAPR_MACHINE(rhel850, "rhel8.5.0", true); ++DEFINE_SPAPR_MACHINE(rhel850, "rhel8.5.0", false); + + /* + * pseries-rhel8.4.0 +-- +2.27.0 + diff --git a/SOURCES/kvm-redhat-Update-pseries-rhel8.5.0.patch b/SOURCES/kvm-redhat-Update-pseries-rhel8.5.0.patch deleted file mode 100644 index f875eb1..0000000 --- a/SOURCES/kvm-redhat-Update-pseries-rhel8.5.0.patch +++ /dev/null @@ -1,42 +0,0 @@ -From c8f68b47e9390bf44c75f4ee0ebb17a6d4c3dff2 Mon Sep 17 00:00:00 2001 -From: Greg Kurz -Date: Mon, 27 Sep 2021 11:14:06 +0200 -Subject: [PATCH 3/4] redhat: Update pseries-rhel8.5.0 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -RH-Author: Greg Kurz -RH-MergeRequest: 43: redhat: Add machine type compatibility update for 6.1 rebase [ppc64le] -RH-Commit: [2/2] f029c1e6a3651c0436d8ea219335eddb0da0ee35 -RH-Bugzilla: 1998949 -RH-Acked-by: Daniel P. Berrangé -RH-Acked-by: David Gibson (Red Hat) -RH-Acked-by: Cornelia Huck -RH-Acked-by: Laurent Vivier - -Fix the default property values back to what they were before the -6.1 rebase. Now new pseries specific properties were added upstream -so we just have to wire up hw_compat_rhel_8_5. - -Signed-off-by: Greg Kurz ---- - hw/ppc/spapr.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c -index 8f6bc88aa9..261d404c35 100644 ---- a/hw/ppc/spapr.c -+++ b/hw/ppc/spapr.c -@@ -5184,6 +5184,8 @@ static void spapr_machine_rhel850_class_options(MachineClass *mc) - { - /* The default machine type must apply the RHEL specific defaults */ - spapr_machine_rhel_default_class_options(mc); -+ compat_props_add(mc->compat_props, hw_compat_rhel_8_5, -+ hw_compat_rhel_8_5_len); - } - - DEFINE_SPAPR_MACHINE(rhel850, "rhel8.5.0", true); --- -2.18.2 - diff --git a/SOURCES/kvm-rhel-machine-types-x86-set-prefer_sockets.patch b/SOURCES/kvm-rhel-machine-types-x86-set-prefer_sockets.patch new file mode 100644 index 0000000..d7bfc96 --- /dev/null +++ b/SOURCES/kvm-rhel-machine-types-x86-set-prefer_sockets.patch @@ -0,0 +1,52 @@ +From 0f0cbd57a8fe8f463941656f5bc75ae5754c3d2b Mon Sep 17 00:00:00 2001 +From: "Dr. David Alan Gilbert" +Date: Tue, 7 Dec 2021 18:39:47 +0000 +Subject: [PATCH 6/6] rhel machine types/x86: set prefer_sockets + +RH-Author: Dr. David Alan Gilbert +RH-MergeRequest: 96: Fixup x86 prefer_sockets +RH-Commit: [1/1] 29578bcc2f5d3408c155c155cdfa10b7a12faf4d +RH-Bugzilla: 2029582 +RH-Acked-by: Igor Mammedov +RH-Acked-by: quintela1 +RH-Acked-by: Cornelia Huck + +When I fixed up the machine types for 8.5 I missed the + prefer_sockets = true + +add them in; it looks like Power, ARM already have them, and I see them +in thuth's s390 patch. + +Signed-off-by: Dr. David Alan Gilbert +--- + hw/i386/pc_piix.c | 1 + + hw/i386/pc_q35.c | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c +index 37fab00733..c30057c443 100644 +--- a/hw/i386/pc_piix.c ++++ b/hw/i386/pc_piix.c +@@ -1020,6 +1020,7 @@ static void pc_machine_rhel7_options(MachineClass *m) + compat_props_add(m->compat_props, pc_rhel_compat, pc_rhel_compat_len); + m->alias = "pc"; + m->is_default = 1; ++ m->smp_props.prefer_sockets = true; + } + + static void pc_init_rhel760(MachineState *machine) +diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c +index 78876e1101..f6e77bca0e 100644 +--- a/hw/i386/pc_q35.c ++++ b/hw/i386/pc_q35.c +@@ -662,6 +662,7 @@ static void pc_q35_machine_rhel850_options(MachineClass *m) + hw_compat_rhel_8_5_len); + compat_props_add(m->compat_props, pc_rhel_8_5_compat, + pc_rhel_8_5_compat_len); ++ m->smp_props.prefer_sockets = true; + } + + DEFINE_PC_MACHINE(q35_rhel850, "pc-q35-rhel8.5.0", pc_q35_init_rhel850, +-- +2.27.0 + diff --git a/SOURCES/kvm-virtio-net-fix-use-after-unmap-free-for-sg.patch b/SOURCES/kvm-virtio-net-fix-use-after-unmap-free-for-sg.patch deleted file mode 100644 index 3a2f187..0000000 --- a/SOURCES/kvm-virtio-net-fix-use-after-unmap-free-for-sg.patch +++ /dev/null @@ -1,136 +0,0 @@ -From c21488ecfff60d0acd0e8ced19f94b3ac050f945 Mon Sep 17 00:00:00 2001 -From: Jason Wang -Date: Thu, 2 Sep 2021 13:44:12 +0800 -Subject: [PATCH] virtio-net: fix use after unmap/free for sg -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -RH-Author: Jon Maloy -RH-MergeRequest: 45: virtio-net: fix use after unmap/free for sg -RH-Commit: [1/1] 85cd1f4894f9584a11b797303139be479ce9781d (jmaloy/qemu-kvm) -RH-Bugzilla: 1999221 -RH-Acked-by: Philippe Mathieu-Daudé -RH-Acked-by: Stefano Garzarella -RH-Acked-by: Laurent Vivier - -When mergeable buffer is enabled, we try to set the num_buffers after -the virtqueue elem has been unmapped. This will lead several issues, -E.g a use after free when the descriptor has an address which belongs -to the non direct access region. In this case we use bounce buffer -that is allocated during address_space_map() and freed during -address_space_unmap(). - -Fixing this by storing the elems temporarily in an array and delay the -unmap after we set the the num_buffers. - -This addresses CVE-2021-3748. - -Reported-by: Alexander Bulekov -Fixes: fbe78f4f55c6 ("virtio-net support") -Cc: qemu-stable@nongnu.org -Signed-off-by: Jason Wang - -(cherry picked from commit bedd7e93d01961fcb16a97ae45d93acf357e11f6) -Signed-off-by: Jon Maloy ---- - hw/net/virtio-net.c | 39 ++++++++++++++++++++++++++++++++------- - 1 file changed, 32 insertions(+), 7 deletions(-) - -diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c -index 16d20cdee5..f205331dcf 100644 ---- a/hw/net/virtio-net.c -+++ b/hw/net/virtio-net.c -@@ -1746,10 +1746,13 @@ static ssize_t virtio_net_receive_rcu(NetClientState *nc, const uint8_t *buf, - VirtIONet *n = qemu_get_nic_opaque(nc); - VirtIONetQueue *q = virtio_net_get_subqueue(nc); - VirtIODevice *vdev = VIRTIO_DEVICE(n); -+ VirtQueueElement *elems[VIRTQUEUE_MAX_SIZE]; -+ size_t lens[VIRTQUEUE_MAX_SIZE]; - struct iovec mhdr_sg[VIRTQUEUE_MAX_SIZE]; - struct virtio_net_hdr_mrg_rxbuf mhdr; - unsigned mhdr_cnt = 0; -- size_t offset, i, guest_offset; -+ size_t offset, i, guest_offset, j; -+ ssize_t err; - - if (!virtio_net_can_receive(nc)) { - return -1; -@@ -1780,6 +1783,12 @@ static ssize_t virtio_net_receive_rcu(NetClientState *nc, const uint8_t *buf, - - total = 0; - -+ if (i == VIRTQUEUE_MAX_SIZE) { -+ virtio_error(vdev, "virtio-net unexpected long buffer chain"); -+ err = size; -+ goto err; -+ } -+ - elem = virtqueue_pop(q->rx_vq, sizeof(VirtQueueElement)); - if (!elem) { - if (i) { -@@ -1791,7 +1800,8 @@ static ssize_t virtio_net_receive_rcu(NetClientState *nc, const uint8_t *buf, - n->guest_hdr_len, n->host_hdr_len, - vdev->guest_features); - } -- return -1; -+ err = -1; -+ goto err; - } - - if (elem->in_num < 1) { -@@ -1799,7 +1809,8 @@ static ssize_t virtio_net_receive_rcu(NetClientState *nc, const uint8_t *buf, - "virtio-net receive queue contains no in buffers"); - virtqueue_detach_element(q->rx_vq, elem, 0); - g_free(elem); -- return -1; -+ err = -1; -+ goto err; - } - - sg = elem->in_sg; -@@ -1836,12 +1847,13 @@ static ssize_t virtio_net_receive_rcu(NetClientState *nc, const uint8_t *buf, - if (!n->mergeable_rx_bufs && offset < size) { - virtqueue_unpop(q->rx_vq, elem, total); - g_free(elem); -- return size; -+ err = size; -+ goto err; - } - -- /* signal other side */ -- virtqueue_fill(q->rx_vq, elem, total, i++); -- g_free(elem); -+ elems[i] = elem; -+ lens[i] = total; -+ i++; - } - - if (mhdr_cnt) { -@@ -1851,10 +1863,23 @@ static ssize_t virtio_net_receive_rcu(NetClientState *nc, const uint8_t *buf, - &mhdr.num_buffers, sizeof mhdr.num_buffers); - } - -+ for (j = 0; j < i; j++) { -+ /* signal other side */ -+ virtqueue_fill(q->rx_vq, elems[j], lens[j], j); -+ g_free(elems[j]); -+ } -+ - virtqueue_flush(q->rx_vq, i); - virtio_notify(vdev, q->rx_vq); - - return size; -+ -+err: -+ for (j = 0; j < i; j++) { -+ g_free(elems[j]); -+ } -+ -+ return err; - } - - static ssize_t virtio_net_do_receive(NetClientState *nc, const uint8_t *buf, --- -2.18.2 - diff --git a/SOURCES/kvm-x86-Add-q35-RHEL-8.6.0-machine-type.patch b/SOURCES/kvm-x86-Add-q35-RHEL-8.6.0-machine-type.patch new file mode 100644 index 0000000..56ecea7 --- /dev/null +++ b/SOURCES/kvm-x86-Add-q35-RHEL-8.6.0-machine-type.patch @@ -0,0 +1,68 @@ +From 31530bf621dc28689142ffa83d025ec4a4f110c1 Mon Sep 17 00:00:00 2001 +From: "Dr. David Alan Gilbert" +Date: Tue, 11 Jan 2022 18:29:31 +0000 +Subject: [PATCH 2/2] x86: Add q35 RHEL 8.6.0 machine type +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +RH-Author: Dr. David Alan Gilbert +RH-MergeRequest: 99: x86: Add q35 RHEL 8.6.0 machine type +RH-Commit: [1/1] a694724b6fa972e312bb76b5569bc979d6c596ef +RH-Bugzilla: 2031035 +RH-Acked-by: Miroslav Rezanina +RH-Acked-by: Daniel P. Berrangé +RH-Acked-by: Cornelia Huck + +Add the new 8.6.0 machine type; note that while the -AV +notation has gone in the product naming, just keep the smbios +definitions the same for consistency. + +Signed-off-by: Dr. David Alan Gilbert +--- + hw/i386/pc_q35.c | 21 ++++++++++++++++++++- + 1 file changed, 20 insertions(+), 1 deletion(-) + +diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c +index f6e77bca0e..5559261d9e 100644 +--- a/hw/i386/pc_q35.c ++++ b/hw/i386/pc_q35.c +@@ -646,6 +646,24 @@ static void pc_q35_machine_rhel_options(MachineClass *m) + compat_props_add(m->compat_props, pc_rhel_compat, pc_rhel_compat_len); + } + ++static void pc_q35_init_rhel860(MachineState *machine) ++{ ++ pc_q35_init(machine); ++} ++ ++static void pc_q35_machine_rhel860_options(MachineClass *m) ++{ ++ PCMachineClass *pcmc = PC_MACHINE_CLASS(m); ++ pc_q35_machine_rhel_options(m); ++ m->desc = "RHEL-8.6.0 PC (Q35 + ICH9, 2009)"; ++ pcmc->smbios_stream_product = "RHEL-AV"; ++ pcmc->smbios_stream_version = "8.6.0"; ++} ++ ++DEFINE_PC_MACHINE(q35_rhel860, "pc-q35-rhel8.6.0", pc_q35_init_rhel860, ++ pc_q35_machine_rhel860_options); ++ ++ + static void pc_q35_init_rhel850(MachineState *machine) + { + pc_q35_init(machine); +@@ -654,8 +672,9 @@ static void pc_q35_init_rhel850(MachineState *machine) + static void pc_q35_machine_rhel850_options(MachineClass *m) + { + PCMachineClass *pcmc = PC_MACHINE_CLASS(m); +- pc_q35_machine_rhel_options(m); ++ pc_q35_machine_rhel860_options(m); + m->desc = "RHEL-8.5.0 PC (Q35 + ICH9, 2009)"; ++ m->alias = NULL; + pcmc->smbios_stream_product = "RHEL-AV"; + pcmc->smbios_stream_version = "8.5.0"; + compat_props_add(m->compat_props, hw_compat_rhel_8_5, +-- +2.27.0 + diff --git a/SPECS/qemu-kvm.spec b/SPECS/qemu-kvm.spec index 555235f..521101b 100644 --- a/SPECS/qemu-kvm.spec +++ b/SPECS/qemu-kvm.spec @@ -5,7 +5,7 @@ %global have_usbredir 1 %global have_spice 1 %global have_opengl 1 -%global have_fdt 0 +%global have_fdt 1 %global have_gluster 1 %global have_kvm_setup 0 %global have_memlock_limits 0 @@ -41,7 +41,6 @@ %endif %ifarch %{power64} %global kvm_target ppc64 - %global have_fdt 1 %global have_kvm_setup 1 %global have_memlock_limits 1 %endif @@ -51,11 +50,9 @@ %endif %ifarch ppc %global kvm_target ppc - %global have_fdt 1 %endif %ifarch aarch64 %global kvm_target aarch64 - %global have_fdt 1 %endif #Versions of various parts: @@ -85,7 +82,7 @@ Obsoletes: %1-rhev <= %{epoch}:%{version}-%{release} Summary: QEMU is a machine emulator and virtualizer Name: qemu-kvm -Version: 6.1.0 +Version: 6.2.0 Release: 5%{?rcrel}%{?dist} # Epoch because we pushed a qemu-1.0 package. AIUI this can't ever be dropped Epoch: 15 @@ -95,7 +92,7 @@ URL: http://www.qemu.org/ ExclusiveArch: x86_64 %{power64} aarch64 s390x -Source0: http://wiki.qemu.org/download/qemu-6.1.0.tar.xz +Source0: http://wiki.qemu.org/download/qemu-6.2.0.tar.xz # KSM control scripts Source4: ksm.service @@ -138,27 +135,38 @@ Patch0015: 0015-globally-limit-the-maximum-number-of-CPUs.patch Patch0016: 0016-Use-qemu-kvm-in-documentation-instead-of-qemu-system.patch Patch0017: 0017-virtio-scsi-Reject-scsi-cd-if-data-plane-enabled-RHE.patch Patch0018: 0018-BZ1653590-Require-at-least-64kiB-pages-for-downstrea.patch -# For bz#2002907 - Unexpectedly failed when managedsave the guest which has qxl video device -Patch19: kvm-qxl-fix-pre-save-logic.patch -# For bz#1998949 - Add machine type compatibility update for 6.1 rebase [ppc64le] -Patch20: kvm-redhat-Define-hw_compat_rhel_8_5.patch -# For bz#1998949 - Add machine type compatibility update for 6.1 rebase [ppc64le] -Patch21: kvm-redhat-Update-pseries-rhel8.5.0.patch -# For bz#1998950 - Add machine type compatibility update for 6.1 rebase [s390x] -Patch22: kvm-redhat-Add-s390x-machine-type-compatibility-update-f.patch -# For bz#1999221 - CVE-2021-3748 virt:rhel/qemu-kvm: QEMU: virtio-net: heap use-after-free in virtio_net_receive_rcu [rhel-8] -Patch23: kvm-virtio-net-fix-use-after-unmap-free-for-sg.patch -# For bz#1998947 - Add machine type compatibility update for 6.1 rebase [aarch64] -Patch25: kvm-hw-arm-virt-Add-hw_compat_rhel_8_5-to-8.5-machine-ty.patch -# For bz#1930092 - CVE-2021-20257 virt:rhel/qemu-kvm: QEMU: net: e1000: infinite loop while processing transmit descriptors [rhel-8.5.0] -Patch26: kvm-e1000-fix-tx-re-entrancy-problem.patch -# For bz#2020720 - CVE-2021-3930 virt:rhel/qemu-kvm: QEMU: off-by-one error in mode_sense_page() in hw/scsi/scsi-disk.c [rhel-8] -Patch27: kvm-hw-scsi-scsi-disk-MODE_PAGE_ALLS-not-allowed-in-MODE.patch +Patch0019: 0019-compat-Update-hw_compat_rhel_8_5.patch +Patch0020: 0020-redhat-Update-pseries-rhel8.5.0-machine-type.patch +Patch0021: 0021-redhat-virt-rhel8.5.0-Update-machine-type-compatibil.patch +Patch0022: 0022-Fix-virtio-net-pci-vectors-compat.patch +Patch0023: 0023-x86-rhel-machine-types-Add-pc_rhel_8_5_compat.patch +Patch0024: 0024-x86-rhel-machine-types-Wire-compat-into-q35-and-i440.patch +Patch0025: 0025-redhat-Add-s390x-machine-type-compatibility-handling.patch +# For bz#2005325 - Fix CPU Model for new IBM Z Hardware - qemu part +Patch26: kvm-redhat-Add-rhel8.6.0-machine-type-for-s390x.patch +# For bz#2031041 - Add rhel-8.6.0 machine types for RHEL 8.6 [ppc64le] +Patch27: kvm-redhat-Define-pseries-rhel8.6.0-machine-type.patch +# For bz#2031039 - Add rhel-8.6.0 machine types for RHEL 8.6 [aarch64] +Patch28: kvm-hw-arm-virt-Register-iommu-as-a-class-property.patch +# For bz#2031039 - Add rhel-8.6.0 machine types for RHEL 8.6 [aarch64] +Patch29: kvm-hw-arm-virt-Register-its-as-a-class-property.patch +# For bz#2031039 - Add rhel-8.6.0 machine types for RHEL 8.6 [aarch64] +Patch30: kvm-hw-arm-virt-Rename-default_bus_bypass_iommu.patch +# For bz#2031039 - Add rhel-8.6.0 machine types for RHEL 8.6 [aarch64] +Patch31: kvm-hw-arm-virt-Add-8.6-machine-type.patch +# For bz#2031039 - Add rhel-8.6.0 machine types for RHEL 8.6 [aarch64] +Patch32: kvm-hw-arm-virt-Check-no_tcg_its-and-minor-style-changes.patch +# For bz#2029582 - [8.6] machine types: 6.2: Fix prefer_sockets +Patch33: kvm-rhel-machine-types-x86-set-prefer_sockets.patch +# For bz#2036580 - CVE-2021-4158 virt:rhel/qemu-kvm: QEMU: NULL pointer dereference in pci_write() in hw/acpi/pcihp.c [rhel-8] +Patch34: kvm-acpi-validate-hotplug-selector-on-access.patch +# For bz#2031035 - Add rhel-8.6.0 machine types for RHEL 8.6 [x86] +Patch35: kvm-x86-Add-q35-RHEL-8.6.0-machine-type.patch BuildRequires: wget BuildRequires: rpm-build BuildRequires: ninja-build -BuildRequires: meson >= 0.55.3-3 +#BuildRequires: meson >= 0.58.2 BuildRequires: zlib-devel BuildRequires: glib2-devel BuildRequires: which @@ -500,6 +508,7 @@ buildldflags="VL_LDFLAGS=-Wl,--build-id" %define disable_everything \\\ + --disable-alsa \\\ --disable-attr \\\ --disable-auth-pam \\\ --disable-avx2 \\\ @@ -515,6 +524,7 @@ buildldflags="VL_LDFLAGS=-Wl,--build-id" --disable-cfi-debug \\\ --disable-cloop \\\ --disable-cocoa \\\ + --disable-coreaudio \\\ --disable-coroutine-pool \\\ --disable-crypto-afalg \\\ --disable-curl \\\ @@ -524,10 +534,12 @@ buildldflags="VL_LDFLAGS=-Wl,--build-id" --disable-debug-tcg \\\ --disable-dmg \\\ --disable-docs \\\ + --disable-dsound \\\ --disable-fdt \\\ --disable-fuse \\\ --disable-fuse-lseek \\\ --disable-gcrypt \\\ + --disable-gettext \\\ --disable-gio \\\ --disable-glusterfs \\\ --disable-gnutls \\\ @@ -537,8 +549,9 @@ buildldflags="VL_LDFLAGS=-Wl,--build-id" --disable-hax \\\ --disable-hvf \\\ --disable-iconv \\\ - --disable-jemalloc \\\ + --disable-jack \\\ --disable-kvm \\\ + --disable-l2tpv3 \\\ --disable-libdaxctl \\\ --disable-libiscsi \\\ --disable-libnfs \\\ @@ -565,6 +578,8 @@ buildldflags="VL_LDFLAGS=-Wl,--build-id" --disable-numa \\\ --disable-nvmm \\\ --disable-opengl \\\ + --disable-oss \\\ + --disable-pa \\\ --disable-parallels \\\ --disable-pie \\\ --disable-pvrdma \\\ @@ -580,15 +595,16 @@ buildldflags="VL_LDFLAGS=-Wl,--build-id" --disable-sdl \\\ --disable-sdl-image \\\ --disable-seccomp \\\ + --disable-selinux \\\ --disable-slirp-smbd \\\ --disable-smartcard \\\ --disable-snappy \\\ --disable-sparse \\\ --disable-spice \\\ + --disable-spice-protocol \\\ --disable-strip \\\ --disable-system \\\ --disable-tcg \\\ - --disable-tcmalloc \\\ --disable-tools \\\ --disable-tpm \\\ --disable-u2f \\\ @@ -637,7 +653,7 @@ pushd %{qemu_kvm_build} --with-pkgversion="%{name}-%{version}-%{release}" \ --with-suffix="%{name}" \ --firmwarepath=%{_prefix}/share/qemu-firmware \ - --meson="%{__meson}" \ + --meson="git" \ --target-list="%{buildarch}" \ --block-drv-rw-whitelist=%{block_drivers_list} \ --audio-drv-list= \ @@ -651,13 +667,13 @@ pushd %{qemu_kvm_build} --enable-avx2 \ %endif --enable-cap-ng \ - --enable-capstone \ + --enable-capstone=internal \ --enable-coroutine-pool \ --enable-curl \ --enable-debug-info \ --enable-docs \ %if 0%{have_fdt} - --enable-fdt \ + --enable-fdt=system \ %endif --enable-gcrypt \ %if 0%{have_gluster} @@ -695,6 +711,7 @@ pushd %{qemu_kvm_build} %if 0%{have_spice} --enable-smartcard \ --enable-spice \ + --enable-spice-protocol \ %endif --enable-system \ --enable-tcg \ @@ -782,7 +799,7 @@ mkdir -p $RPM_BUILD_ROOT%{_datadir}/%{name} # Create new directories and put them all under tests-src mkdir -p $RPM_BUILD_ROOT%{testsdir}/python mkdir -p $RPM_BUILD_ROOT%{testsdir}/tests -mkdir -p $RPM_BUILD_ROOT%{testsdir}/tests/acceptance +mkdir -p $RPM_BUILD_ROOT%{testsdir}/tests/avocado mkdir -p $RPM_BUILD_ROOT%{testsdir}/tests/qemu-iotests mkdir -p $RPM_BUILD_ROOT%{testsdir}/scripts/qmp @@ -793,7 +810,7 @@ install -m 0644 scripts/dump-guest-memory.py \ $RPM_BUILD_ROOT%{_datadir}/%{name} # Install avocado_qemu tests -cp -R tests/acceptance/* $RPM_BUILD_ROOT%{testsdir}/tests/acceptance/ +cp -R tests/avocado/* $RPM_BUILD_ROOT%{testsdir}/tests/avocado/ # Install qemu.py and qmp/ scripts required to run avocado_qemu tests cp -R python/qemu $RPM_BUILD_ROOT%{testsdir}/python @@ -957,6 +974,7 @@ rm -rf ${RPM_BUILD_ROOT}%{_mandir}/man1/virtfs-proxy-helper* rm -rf ${RPM_BUILD_ROOT}%{_datadir}/%{name}/kvmvapic.bin rm -rf ${RPM_BUILD_ROOT}%{_datadir}/%{name}/linuxboot.bin rm -rf ${RPM_BUILD_ROOT}%{_datadir}/%{name}/multiboot.bin + rm -rf ${RPM_BUILD_ROOT}%{_datadir}/%{name}/multiboot_dma.bin rm -rf ${RPM_BUILD_ROOT}%{_datadir}/%{name}/pvh.bin %endif @@ -1168,6 +1186,7 @@ sh %{_sysconfdir}/sysconfig/modules/kvm.modules &> /dev/null || : %{_datadir}/%{name}/bios-256k.bin %{_datadir}/%{name}/linuxboot.bin %{_datadir}/%{name}/multiboot.bin + %{_datadir}/%{name}/multiboot_dma.bin %{_datadir}/%{name}/kvmvapic.bin %{_datadir}/%{name}/sgabios.bin %{_datadir}/%{name}/pvh.bin @@ -1308,6 +1327,38 @@ sh %{_sysconfdir}/sysconfig/modules/kvm.modules &> /dev/null || : %changelog +* Tue Jan 25 2022 Jon Maloy - 6.2.0-5 +- kvm-acpi-validate-hotplug-selector-on-access.patch [bz#2036580] +- kvm-x86-Add-q35-RHEL-8.6.0-machine-type.patch [bz#2031035] +- Resolves: bz#2036580 + (CVE-2021-4158 virt:rhel/qemu-kvm: QEMU: NULL pointer dereference in pci_write() in hw/acpi/pcihp.c [rhel-8]) +- Resolves: bz#2031035 + (Add rhel-8.6.0 machine types for RHEL 8.6 [x86]) + +* Mon Jan 17 2022 Jon Maloy - 6.2.0-4 +- kvm-hw-arm-virt-Register-iommu-as-a-class-property.patch [bz#2031039] +- kvm-hw-arm-virt-Register-its-as-a-class-property.patch [bz#2031039] +- kvm-hw-arm-virt-Rename-default_bus_bypass_iommu.patch [bz#2031039] +- kvm-hw-arm-virt-Add-8.6-machine-type.patch [bz#2031039] +- kvm-hw-arm-virt-Check-no_tcg_its-and-minor-style-changes.patch [bz#2031039] +- kvm-rhel-machine-types-x86-set-prefer_sockets.patch [bz#2029582] +- Resolves: bz#2031039 + (Add rhel-8.6.0 machine types for RHEL 8.6 [aarch64]) +- Resolves: bz#2029582 + ([8.6] machine types: 6.2: Fix prefer_sockets) + +* Mon Jan 03 2022 Jon Maloy - 6.2.0-2 +- kvm-redhat-Add-rhel8.6.0-machine-type-for-s390x.patch [bz#2005325] +- kvm-redhat-Define-pseries-rhel8.6.0-machine-type.patch [bz#2031041] +- Resolves: bz#2005325 + (Fix CPU Model for new IBM Z Hardware - qemu part) +- Resolves: bz#2031041 + (Add rhel-8.6.0 machine types for RHEL 8.6 [ppc64le]) + +* Thu Dec 16 2021 Jon Maloy - 6.2.0-1.el8 +- Rebase to qemu-kvm 6.2.0 +- Resolves bz#2027716 + * Mon Nov 22 2021 Jon Maloy - 6.1.0-5 - kvm-e1000-fix-tx-re-entrancy-problem.patch [bz#1930092] - kvm-hw-scsi-scsi-disk-MODE_PAGE_ALLS-not-allowed-in-MODE.patch [bz#2020720] @@ -1341,9 +1392,13 @@ sh %{_sysconfdir}/sysconfig/modules/kvm.modules &> /dev/null || : - Resolves: bz#1998950 (Add machine type compatibility update for 6.1 rebase [s390x]) -* Wed Sep 08 2021 Danilo Cesar Lemes de Paula - 6.1.0-1.el8 -- Rebase qemu-kvm 6.1.0 -- Resolves bz#1997410 +* Wed Aug 25 2021 Danilo Cesar Lemes de Paula - 6.0.0-29.el8 +- kvm-file-posix-Cap-max_iov-at-IOV_MAX.patch [bz#1994494] +- kvm-migration-Move-yank-outside-qemu_start_incoming_migr.patch [bz#1974366] +- Resolves: bz#1994494 + (VM remains in paused state when trying to write on a resized disk resides on iscsi) +- Resolves: bz#1974366 + (Fail to set migrate incoming for 2nd time after the first time failed) * Wed Aug 18 2021 Danilo Cesar Lemes de Paula - 6.0.0-28.el8 - kvm-iotests-Improve-and-rename-test-291-to-qemu-img-bitm.patch [bz#1946084]