From ea985d235b868047cb4d8cb5657bcd8ad98c6ba2 Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Fri, 15 Sep 2023 13:57:11 +0200 Subject: [PATCH 01/19] pc_piix: remove pc-i440fx-1.4 up to pc-i440fx-1.7 These are the last users of the 128K SeaBIOS blob in the i440FX family. Removing them allows us to drop PCI support from the 128K blob, thus making it easier to update SeaBIOS to newer versions. Reviewed-by: Thomas Huth Signed-off-by: Paolo Bonzini --- docs/about/deprecated.rst | 8 ---- docs/about/removed-features.rst | 4 +- hw/i386/pc.c | 60 ++---------------------- hw/i386/pc_piix.c | 73 ----------------------------- tests/qtest/test-x86-cpuid-compat.c | 10 +--- 5 files changed, 6 insertions(+), 149 deletions(-) diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst index dc4da95329..8f3fef97bd 100644 --- a/docs/about/deprecated.rst +++ b/docs/about/deprecated.rst @@ -277,14 +277,6 @@ deprecated; use the new name ``dtb-randomness`` instead. The new name better reflects the way this property affects all random data within the device tree blob, not just the ``kaslr-seed`` node. -``pc-i440fx-1.4`` up to ``pc-i440fx-1.7`` (since 7.0) -''''''''''''''''''''''''''''''''''''''''''''''''''''' - -These old machine types are quite neglected nowadays and thus might have -various pitfalls with regards to live migration. Use a newer machine type -instead. - - Backend options --------------- diff --git a/docs/about/removed-features.rst b/docs/about/removed-features.rst index c2043fd415..97ec47f1d2 100644 --- a/docs/about/removed-features.rst +++ b/docs/about/removed-features.rst @@ -715,8 +715,8 @@ mips ``fulong2e`` machine alias (removed in 6.0) This machine has been renamed ``fuloong2e``. -``pc-0.10`` up to ``pc-1.3`` (removed in 4.0 up to 6.0) -''''''''''''''''''''''''''''''''''''''''''''''''''''''' +``pc-0.10`` up to ``pc-i440fx-1.7`` (removed in 4.0 up to 8.2) +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' These machine types were very old and likely could not be used for live migration from old QEMU versions anymore. Use a newer machine type instead. diff --git a/hw/i386/pc.c b/hw/i386/pc.c index 3db0743f31..5d399b6247 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -359,60 +359,6 @@ GlobalProperty pc_compat_2_0[] = { }; const size_t pc_compat_2_0_len = G_N_ELEMENTS(pc_compat_2_0); -GlobalProperty pc_compat_1_7[] = { - PC_CPU_MODEL_IDS("1.7.0") - { TYPE_USB_DEVICE, "msos-desc", "no" }, - { "PIIX4_PM", ACPI_PM_PROP_ACPI_PCIHP_BRIDGE, "off" }, - { "hpet", HPET_INTCAP, "4" }, -}; -const size_t pc_compat_1_7_len = G_N_ELEMENTS(pc_compat_1_7); - -GlobalProperty pc_compat_1_6[] = { - PC_CPU_MODEL_IDS("1.6.0") - { "e1000", "mitigation", "off" }, - { "qemu64-" TYPE_X86_CPU, "model", "2" }, - { "qemu32-" TYPE_X86_CPU, "model", "3" }, - { "i440FX-pcihost", "short_root_bus", "1" }, - { "q35-pcihost", "short_root_bus", "1" }, -}; -const size_t pc_compat_1_6_len = G_N_ELEMENTS(pc_compat_1_6); - -GlobalProperty pc_compat_1_5[] = { - PC_CPU_MODEL_IDS("1.5.0") - { "Conroe-" TYPE_X86_CPU, "model", "2" }, - { "Conroe-" TYPE_X86_CPU, "min-level", "2" }, - { "Penryn-" TYPE_X86_CPU, "model", "2" }, - { "Penryn-" TYPE_X86_CPU, "min-level", "2" }, - { "Nehalem-" TYPE_X86_CPU, "model", "2" }, - { "Nehalem-" TYPE_X86_CPU, "min-level", "2" }, - { "virtio-net-pci", "any_layout", "off" }, - { TYPE_X86_CPU, "pmu", "on" }, - { "i440FX-pcihost", "short_root_bus", "0" }, - { "q35-pcihost", "short_root_bus", "0" }, -}; -const size_t pc_compat_1_5_len = G_N_ELEMENTS(pc_compat_1_5); - -GlobalProperty pc_compat_1_4[] = { - PC_CPU_MODEL_IDS("1.4.0") - { "scsi-hd", "discard_granularity", "0" }, - { "scsi-cd", "discard_granularity", "0" }, - { "ide-hd", "discard_granularity", "0" }, - { "ide-cd", "discard_granularity", "0" }, - { "virtio-blk-pci", "discard_granularity", "0" }, - /* DEV_NVECTORS_UNSPECIFIED as a uint32_t string: */ - { "virtio-serial-pci", "vectors", "0xFFFFFFFF" }, - { "virtio-net-pci", "ctrl_guest_offloads", "off" }, - { "e1000", "romfile", "pxe-e1000.rom" }, - { "ne2k_pci", "romfile", "pxe-ne2k_pci.rom" }, - { "pcnet", "romfile", "pxe-pcnet.rom" }, - { "rtl8139", "romfile", "pxe-rtl8139.rom" }, - { "virtio-net-pci", "romfile", "pxe-virtio.rom" }, - { "486-" TYPE_X86_CPU, "model", "0" }, - { "n270" "-" TYPE_X86_CPU, "movbe", "off" }, - { "Westmere" "-" TYPE_X86_CPU, "pclmulqdq", "off" }, -}; -const size_t pc_compat_1_4_len = G_N_ELEMENTS(pc_compat_1_4); - GSIState *pc_gsi_create(qemu_irq **irqs, bool pci_enabled) { GSIState *s; @@ -1293,9 +1239,9 @@ void pc_basic_device_init(struct PCMachineState *pcms, exit(1); } /* - * For pc-piix-*, hpet's intcap is always IRQ2. For pc-q35-1.7 and - * earlier, use IRQ2 for compat. Otherwise, use IRQ16~23, IRQ8 and - * IRQ2. + * For pc-piix-*, hpet's intcap is always IRQ2. For pc-q35-*, + * use IRQ16~23, IRQ8 and IRQ2. If the user has already set + * the property, use whatever mask they specified. */ uint8_t compat = object_property_get_uint(OBJECT(hpet), HPET_INTCAP, NULL); diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c index 8321f36f97..ff8654ecda 100644 --- a/hw/i386/pc_piix.c +++ b/hw/i386/pc_piix.c @@ -423,27 +423,6 @@ static void pc_compat_2_0_fn(MachineState *machine) pc_compat_2_1_fn(machine); } -static void pc_compat_1_7_fn(MachineState *machine) -{ - pc_compat_2_0_fn(machine); - x86_cpu_change_kvm_default("x2apic", NULL); -} - -static void pc_compat_1_6_fn(MachineState *machine) -{ - pc_compat_1_7_fn(machine); -} - -static void pc_compat_1_5_fn(MachineState *machine) -{ - pc_compat_1_6_fn(machine); -} - -static void pc_compat_1_4_fn(MachineState *machine) -{ - pc_compat_1_5_fn(machine); -} - #ifdef CONFIG_ISAPC static void pc_init_isa(MachineState *machine) { @@ -876,58 +855,6 @@ static void pc_i440fx_2_0_machine_options(MachineClass *m) DEFINE_I440FX_MACHINE(v2_0, "pc-i440fx-2.0", pc_compat_2_0_fn, pc_i440fx_2_0_machine_options); -static void pc_i440fx_1_7_machine_options(MachineClass *m) -{ - PCMachineClass *pcmc = PC_MACHINE_CLASS(m); - - pc_i440fx_2_0_machine_options(m); - m->hw_version = "1.7.0"; - m->default_machine_opts = NULL; - m->option_rom_has_mr = true; - m->deprecation_reason = "old and unattended - use a newer version instead"; - compat_props_add(m->compat_props, pc_compat_1_7, pc_compat_1_7_len); - pcmc->smbios_defaults = false; - pcmc->gigabyte_align = false; - pcmc->legacy_acpi_table_size = 6414; -} - -DEFINE_I440FX_MACHINE(v1_7, "pc-i440fx-1.7", pc_compat_1_7_fn, - pc_i440fx_1_7_machine_options); - -static void pc_i440fx_1_6_machine_options(MachineClass *m) -{ - PCMachineClass *pcmc = PC_MACHINE_CLASS(m); - - pc_i440fx_1_7_machine_options(m); - m->hw_version = "1.6.0"; - m->rom_file_has_mr = false; - compat_props_add(m->compat_props, pc_compat_1_6, pc_compat_1_6_len); - pcmc->has_acpi_build = false; -} - -DEFINE_I440FX_MACHINE(v1_6, "pc-i440fx-1.6", pc_compat_1_6_fn, - pc_i440fx_1_6_machine_options); - -static void pc_i440fx_1_5_machine_options(MachineClass *m) -{ - pc_i440fx_1_6_machine_options(m); - m->hw_version = "1.5.0"; - compat_props_add(m->compat_props, pc_compat_1_5, pc_compat_1_5_len); -} - -DEFINE_I440FX_MACHINE(v1_5, "pc-i440fx-1.5", pc_compat_1_5_fn, - pc_i440fx_1_5_machine_options); - -static void pc_i440fx_1_4_machine_options(MachineClass *m) -{ - pc_i440fx_1_5_machine_options(m); - m->hw_version = "1.4.0"; - compat_props_add(m->compat_props, pc_compat_1_4, pc_compat_1_4_len); -} - -DEFINE_I440FX_MACHINE(v1_4, "pc-i440fx-1.4", pc_compat_1_4_fn, - pc_i440fx_1_4_machine_options); - #ifdef CONFIG_ISAPC static void isapc_machine_options(MachineClass *m) { diff --git a/tests/qtest/test-x86-cpuid-compat.c b/tests/qtest/test-x86-cpuid-compat.c index b39c9055b3..6a39454fce 100644 --- a/tests/qtest/test-x86-cpuid-compat.c +++ b/tests/qtest/test-x86-cpuid-compat.c @@ -313,18 +313,10 @@ int main(int argc, char **argv) "xlevel2", 0); } /* - * QEMU 1.4.0 had auto-level enabled for CPUID[7], already, + * QEMU 2.3.0 had auto-level enabled for CPUID[7], already, * and the compat code that sets default level shouldn't * disable the auto-level=7 code: */ - if (qtest_has_machine("pc-i440fx-1.4")) { - add_cpuid_test("x86/cpuid/auto-level7/pc-i440fx-1.4/off", - "-machine pc-i440fx-1.4 -cpu Nehalem", - "level", 2); - add_cpuid_test("x86/cpuid/auto-level7/pc-i440fx-1.5/on", - "-machine pc-i440fx-1.4 -cpu Nehalem,smap=on", - "level", 7); - } if (qtest_has_machine("pc-i440fx-2.3")) { add_cpuid_test("x86/cpuid/auto-level7/pc-i440fx-2.3/off", "-machine pc-i440fx-2.3 -cpu Penryn", From a1fadbcf482c38407a8ff488b0f9a3c4332802d9 Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Fri, 15 Sep 2023 14:10:09 +0200 Subject: [PATCH 02/19] seabios: remove PCI drivers from bios.bin bios.bin is now used only by ISA PC, so PCI drivers are not necessary. Reviewed-by: Thomas Huth Signed-off-by: Paolo Bonzini --- pc-bios/bios.bin | Bin 131072 -> 131072 bytes roms/config.seabios-128k | 29 +++++++++++++++++++---------- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/pc-bios/bios.bin b/pc-bios/bios.bin index 6a196cf72a01fddb3256d4ae2183dbb701196993..d3abd947dad25bde05e8b8305d94ab2f62e75cf6 100644 GIT binary patch delta 58068 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 AIRF3v literal 131072 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ঋL4D-^|M?kS{5J({ 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 diff --git a/roms/config.seabios-128k b/roms/config.seabios-128k index d18c802c46..0b144bb1de 100644 --- a/roms/config.seabios-128k +++ b/roms/config.seabios-128k @@ -1,21 +1,30 @@ -# for qemu machine types 1.7 + older -# need to turn off features (xhci,uas) to make it fit into 128k +# SeaBIOS Configuration for -M isapc + CONFIG_QEMU=y CONFIG_ROM_SIZE=128 CONFIG_ATA_DMA=n -CONFIG_BOOTSPLASH=n CONFIG_XEN=n -CONFIG_USB_OHCI=n -CONFIG_USB_XHCI=n -CONFIG_USB_UAS=n +CONFIG_ATA_PIO32=n +CONFIG_AHCI=n CONFIG_SDCARD=n -CONFIG_TCGBIOS=n -CONFIG_MPT_SCSI=n -CONFIG_ESP_SCSI=n -CONFIG_MEGASAS=n +CONFIG_VIRTIO_BLK=n +CONFIG_VIRTIO_SCSI=n CONFIG_PVSCSI=n +CONFIG_ESP_SCSI=n +CONFIG_LSI_SCSI=n +CONFIG_MEGASAS=n +CONFIG_MPT_SCSI=n CONFIG_NVME=n CONFIG_USE_SMM=n CONFIG_VGAHOOKS=n CONFIG_HOST_BIOS_GEOMETRY=n +CONFIG_USB=n +CONFIG_PMTIMER=n +CONFIG_PCIBIOS=n +CONFIG_DISABLE_A20=n +CONFIG_WRITABLE_UPPERMEMORY=n +CONFIG_TCGBIOS=n +CONFIG_ACPI=n CONFIG_ACPI_PARSE=n +CONFIG_DEBUG_SERIAL=n +CONFIG_DEBUG_SERIAL_MMIO=n From 8a9fc82bac139f8814ed6ae338381a3992eb414c Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Mon, 25 Sep 2023 11:06:09 +0200 Subject: [PATCH 03/19] user-exec-stub: remove unused variable enable_cpu_pm is only used by softmmu-specific code, namely target/i386/host-cpu.c and target/i386/kvm/*. It does not need a stub definition anymore. Signed-off-by: Paolo Bonzini --- accel/tcg/user-exec-stub.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/accel/tcg/user-exec-stub.c b/accel/tcg/user-exec-stub.c index 874e1f1a20..2dc6fd9c4e 100644 --- a/accel/tcg/user-exec-stub.c +++ b/accel/tcg/user-exec-stub.c @@ -2,8 +2,6 @@ #include "hw/core/cpu.h" #include "exec/replay-core.h" -bool enable_cpu_pm = false; - void cpu_resume(CPUState *cpu) { } From 7cfcc79b0ab800959716738aff9419f53fc68c9c Mon Sep 17 00:00:00 2001 From: Thomas Huth Date: Mon, 25 Sep 2023 11:18:54 +0200 Subject: [PATCH 04/19] hw/scsi/scsi-disk: Disallow block sizes smaller than 512 [CVE-2023-42467] We are doing things like nb_sectors /= (s->qdev.blocksize / BDRV_SECTOR_SIZE); in the code here (e.g. in scsi_disk_emulate_mode_sense()), so if the blocksize is smaller than BDRV_SECTOR_SIZE (=512), this crashes with a division by 0 exception. Thus disallow block sizes of 256 bytes to avoid this situation. Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1813 CVE: 2023-42467 Signed-off-by: Thomas Huth Message-ID: <20230925091854.49198-1-thuth@redhat.com> Signed-off-by: Paolo Bonzini --- hw/scsi/scsi-disk.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c index e0d79c7966..477ee2bcd4 100644 --- a/hw/scsi/scsi-disk.c +++ b/hw/scsi/scsi-disk.c @@ -1628,9 +1628,10 @@ static void scsi_disk_emulate_mode_select(SCSIDiskReq *r, uint8_t *inbuf) * Since the existing code only checks/updates bits 8-15 of the block * size, restrict ourselves to the same requirement for now to ensure * that a block size set by a block descriptor and then read back by - * a subsequent SCSI command will be the same + * a subsequent SCSI command will be the same. Also disallow a block + * size of 256 since we cannot handle anything below BDRV_SECTOR_SIZE. */ - if (bs && !(bs & ~0xff00) && bs != s->qdev.blocksize) { + if (bs && !(bs & ~0xfe00) && bs != s->qdev.blocksize) { s->qdev.blocksize = bs; trace_scsi_disk_mode_select_set_blocksize(s->qdev.blocksize); } From c431ffd47157ad4bd3a230570a31faa088c71260 Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Mon, 25 Sep 2023 12:22:50 +0200 Subject: [PATCH 05/19] vl: remove shadowed local variables MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: Daniel P. BerrangĂ© Signed-off-by: Paolo Bonzini --- softmmu/vl.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/softmmu/vl.c b/softmmu/vl.c index db04f98c36..59a472a0b1 100644 --- a/softmmu/vl.c +++ b/softmmu/vl.c @@ -3214,7 +3214,6 @@ void qemu_init(int argc, char **argv) } break; case QEMU_OPTION_watchdog_action: { - QemuOpts *opts; opts = qemu_opts_create(qemu_find_opts("action"), NULL, 0, &error_abort); qemu_opt_set(opts, "watchdog", optarg, &error_abort); break; @@ -3525,16 +3524,16 @@ void qemu_init(int argc, char **argv) break; case QEMU_OPTION_compat: { - CompatPolicy *opts; + CompatPolicy *opts_policy; Visitor *v; v = qobject_input_visitor_new_str(optarg, NULL, &error_fatal); - visit_type_CompatPolicy(v, NULL, &opts, &error_fatal); - QAPI_CLONE_MEMBERS(CompatPolicy, &compat_policy, opts); + visit_type_CompatPolicy(v, NULL, &opts_policy, &error_fatal); + QAPI_CLONE_MEMBERS(CompatPolicy, &compat_policy, opts_policy); - qapi_free_CompatPolicy(opts); + qapi_free_CompatPolicy(opts_policy); visit_free(v); break; } From 0cb9c5880e6b8dedc4e20026ce859dd1ea9aac84 Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Mon, 25 Sep 2023 13:06:46 +0200 Subject: [PATCH 06/19] ui/vnc: fix debug output for invalid audio message MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The debug message was cut and pasted from the invalid audio format case, but the audio message is at bytes 2-3. Reviewed-by: Daniel P. BerrangĂ© Signed-off-by: Paolo Bonzini --- ui/vnc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/vnc.c b/ui/vnc.c index 6fd86996a5..1684ab9096 100644 --- a/ui/vnc.c +++ b/ui/vnc.c @@ -2551,7 +2551,7 @@ static int protocol_client_msg(VncState *vs, uint8_t *data, size_t len) vs, vs->ioc, vs->as.fmt, vs->as.nchannels, vs->as.freq); break; default: - VNC_DEBUG("Invalid audio message %d\n", read_u8(data, 4)); + VNC_DEBUG("Invalid audio message %d\n", read_u8(data, 2)); vnc_client_error(vs); break; } From 477b301000d665313217f65e3a368d2cb7769c42 Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Mon, 25 Sep 2023 13:05:58 +0200 Subject: [PATCH 07/19] ui/vnc: fix handling of VNC_FEATURE_XVP VNC_FEATURE_XVP was not shifted left before adding it to vs->features, so it was never enabled; but it was also checked the wrong way with a logical AND instead of vnc_has_feature. Fix both places. Signed-off-by: Paolo Bonzini --- ui/vnc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ui/vnc.c b/ui/vnc.c index 1684ab9096..c302bb07a5 100644 --- a/ui/vnc.c +++ b/ui/vnc.c @@ -2205,7 +2205,7 @@ static void set_encodings(VncState *vs, int32_t *encodings, size_t n_encodings) break; case VNC_ENCODING_XVP: if (vs->vd->power_control) { - vs->features |= VNC_FEATURE_XVP; + vs->features |= VNC_FEATURE_XVP_MASK; send_xvp_message(vs, VNC_XVP_CODE_INIT); } break; @@ -2454,7 +2454,7 @@ static int protocol_client_msg(VncState *vs, uint8_t *data, size_t len) vnc_client_cut_text(vs, read_u32(data, 4), data + 8); break; case VNC_MSG_CLIENT_XVP: - if (!(vs->features & VNC_FEATURE_XVP)) { + if (!vnc_has_feature(vs, VNC_FEATURE_XVP)) { error_report("vnc: xvp client message while disabled"); vnc_client_error(vs); break; From 4c186847ee0080a76dfef874322d634c429d43ad Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Mon, 25 Sep 2023 12:05:37 +0200 Subject: [PATCH 08/19] mptsas: avoid shadowed local variables Rename the argument so that "addr" is only used inside the for loop. Signed-off-by: Paolo Bonzini --- hw/scsi/mptsas.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hw/scsi/mptsas.c b/hw/scsi/mptsas.c index 3de288b454..75d3ab8bd1 100644 --- a/hw/scsi/mptsas.c +++ b/hw/scsi/mptsas.c @@ -192,7 +192,7 @@ static dma_addr_t mptsas_ld_sg_base(MPTSASState *s, uint32_t flags_and_length, return addr; } -static int mptsas_build_sgl(MPTSASState *s, MPTSASRequest *req, hwaddr addr) +static int mptsas_build_sgl(MPTSASState *s, MPTSASRequest *req, hwaddr req_addr) { PCIDevice *pci = (PCIDevice *) s; hwaddr next_chain_addr; @@ -201,8 +201,8 @@ static int mptsas_build_sgl(MPTSASState *s, MPTSASRequest *req, hwaddr addr) uint32_t chain_offset; chain_offset = req->scsi_io.ChainOffset; - next_chain_addr = addr + chain_offset * sizeof(uint32_t); - sgaddr = addr + sizeof(MPIMsgSCSIIORequest); + next_chain_addr = req_addr + chain_offset * sizeof(uint32_t); + sgaddr = req_addr + sizeof(MPIMsgSCSIIORequest); pci_dma_sglist_init(&req->qsg, pci, 4); left = req->scsi_io.DataLength; From 973d3ea5a1c0573149b7004108276ca01cb05fd2 Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Mon, 25 Sep 2023 12:21:29 +0200 Subject: [PATCH 09/19] pm_smbus: rename variable to avoid shadowing Acked-by: Corey Minyard Signed-off-by: Paolo Bonzini --- hw/i2c/pm_smbus.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/i2c/pm_smbus.c b/hw/i2c/pm_smbus.c index 9ad6a47739..4e1b8a5182 100644 --- a/hw/i2c/pm_smbus.c +++ b/hw/i2c/pm_smbus.c @@ -279,7 +279,7 @@ static void smb_ioport_writeb(void *opaque, hwaddr addr, uint64_t val, if (!read && s->smb_index == s->smb_data0) { uint8_t prot = (s->smb_ctl >> 2) & 0x07; uint8_t cmd = s->smb_cmd; - uint8_t addr = s->smb_addr >> 1; + uint8_t smb_addr = s->smb_addr >> 1; int ret; if (prot == PROT_I2C_BLOCK_READ) { @@ -287,7 +287,7 @@ static void smb_ioport_writeb(void *opaque, hwaddr addr, uint64_t val, goto out; } - ret = smbus_write_block(s->smbus, addr, cmd, s->smb_data, + ret = smbus_write_block(s->smbus, smb_addr, cmd, s->smb_data, s->smb_data0, !s->i2c_enable); if (ret < 0) { s->smb_stat |= STS_DEV_ERR; From 168d46749d19f4808022b9a88c0846b3286aed59 Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Mon, 25 Sep 2023 12:27:24 +0200 Subject: [PATCH 10/19] m48t59-test: avoid possible overflow on ABS Originally meant to avoid a shadowed variable "s", which was fixed by renaming the outer declaration to "qts". Avoid the chance of an overflow in the computation of ABS(t - s). Signed-off-by: Paolo Bonzini --- tests/qtest/m48t59-test.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/tests/qtest/m48t59-test.c b/tests/qtest/m48t59-test.c index 9487faff1a..b9cd209165 100644 --- a/tests/qtest/m48t59-test.c +++ b/tests/qtest/m48t59-test.c @@ -192,19 +192,22 @@ static void bcd_check_time(void) } if (!(tm_cmp(&start, datep) <= 0 && tm_cmp(datep, &end) <= 0)) { - long t, s; + long date_s, start_s; + unsigned long diff; start.tm_isdst = datep->tm_isdst; - t = (long)mktime(datep); - s = (long)mktime(&start); - if (t < s) { - g_test_message("RTC is %ld second(s) behind wall-clock", (s - t)); + date_s = (long)mktime(datep); + start_s = (long)mktime(&start); + if (date_s < start_s) { + diff = start_s - date_s; + g_test_message("RTC is %ld second(s) behind wall-clock", diff); } else { - g_test_message("RTC is %ld second(s) ahead of wall-clock", (t - s)); + diff = date_s - start_s; + g_test_message("RTC is %ld second(s) ahead of wall-clock", diff); } - g_assert_cmpint(ABS(t - s), <=, wiggle); + g_assert_cmpint(diff, <=, wiggle); } qtest_quit(qts); From e0c3ef715baabbea6d59335bebfc7e40f1724d7e Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Mon, 25 Sep 2023 12:19:34 +0200 Subject: [PATCH 11/19] target/i386/kvm: eliminate shadowed local variables These are harmless are they die immediately after their use. Signed-off-by: Paolo Bonzini --- target/i386/kvm/kvm.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/target/i386/kvm/kvm.c b/target/i386/kvm/kvm.c index af101fcdf6..f6c7f7e268 100644 --- a/target/i386/kvm/kvm.c +++ b/target/i386/kvm/kvm.c @@ -2699,8 +2699,6 @@ int kvm_arch_init(MachineState *ms, KVMState *s) if (enable_cpu_pm) { int disable_exits = kvm_check_extension(s, KVM_CAP_X86_DISABLE_EXITS); - int ret; - /* Work around for kernel header with a typo. TODO: fix header and drop. */ #if defined(KVM_X86_DISABLE_EXITS_HTL) && !defined(KVM_X86_DISABLE_EXITS_HLT) #define KVM_X86_DISABLE_EXITS_HLT KVM_X86_DISABLE_EXITS_HTL @@ -3610,7 +3608,7 @@ static int kvm_put_msrs(X86CPU *cpu, int level) if (kvm_enabled() && cpu->enable_pmu && (env->features[FEAT_7_0_EDX] & CPUID_7_0_EDX_ARCH_LBR)) { uint64_t depth; - int i, ret; + int ret; /* * Only migrate Arch LBR states when the host Arch LBR depth @@ -3643,8 +3641,6 @@ static int kvm_put_msrs(X86CPU *cpu, int level) } if (env->mcg_cap) { - int i; - kvm_msr_entry_add(cpu, MSR_MCG_STATUS, env->mcg_status); kvm_msr_entry_add(cpu, MSR_MCG_CTL, env->mcg_ctl); if (has_msr_mcg_ext_ctl) { @@ -4041,7 +4037,6 @@ static int kvm_get_msrs(X86CPU *cpu) if (kvm_enabled() && cpu->enable_pmu && (env->features[FEAT_7_0_EDX] & CPUID_7_0_EDX_ARCH_LBR)) { uint64_t depth; - int i, ret; ret = kvm_get_one_msr(cpu, MSR_ARCH_LBR_DEPTH, &depth); if (ret == 1 && depth == ARCH_LBR_NR_ENTRIES) { From 637123a21381b2c5833d9d663af06e3105d8caa9 Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Mon, 25 Sep 2023 12:06:02 +0200 Subject: [PATCH 12/19] target/i386/cpu: avoid shadowed local variables Reuse the pointer variable used for the unversioned model. Signed-off-by: Paolo Bonzini --- target/i386/cpu.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 7836aa6692..ed72883bf3 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -5976,9 +5976,10 @@ static void x86_register_cpudef_types(const X86CPUDefinition *def) /* Versioned models: */ for (vdef = x86_cpu_def_get_versions(def); vdef->version; vdef++) { - X86CPUModel *m = g_new0(X86CPUModel, 1); g_autofree char *name = x86_cpu_versioned_model_name(def, vdef->version); + + m = g_new0(X86CPUModel, 1); m->cpudef = def; m->version = vdef->version; m->note = vdef->note; From 19729affe1cd191f063db4b4d43058974cf43bc9 Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Mon, 25 Sep 2023 12:07:21 +0200 Subject: [PATCH 13/19] target/i386/translate: avoid shadowed local variables Just remove the declaration. There is nothing in the function after the switch statement, so it is safe to do. Signed-off-by: Paolo Bonzini --- target/i386/tcg/translate.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/target/i386/tcg/translate.c b/target/i386/tcg/translate.c index c98e42f17a..72635b87d3 100644 --- a/target/i386/tcg/translate.c +++ b/target/i386/tcg/translate.c @@ -3242,7 +3242,7 @@ static bool disas_insn(DisasContext *s, CPUState *cpu) case 0x30 ... 0x35: case 0x38 ... 0x3d: { - int op, f, val; + int f; op = (b >> 3) & 7; f = (b >> 1) & 3; @@ -3302,8 +3302,6 @@ static bool disas_insn(DisasContext *s, CPUState *cpu) case 0x81: case 0x83: { - int val; - ot = mo_b_d(b, dflag); modrm = x86_ldub_code(env, s); From a908985971a38d335114e36f0b8b42fd85816cbe Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Mon, 25 Sep 2023 12:16:00 +0200 Subject: [PATCH 14/19] target/i386/seg_helper: introduce tss_set_busy Eliminate a shadowed local variable in the process. Signed-off-by: Paolo Bonzini --- target/i386/tcg/seg_helper.c | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/target/i386/tcg/seg_helper.c b/target/i386/tcg/seg_helper.c index e8d19c65fd..b5198db82b 100644 --- a/target/i386/tcg/seg_helper.c +++ b/target/i386/tcg/seg_helper.c @@ -226,6 +226,21 @@ static void tss_load_seg(CPUX86State *env, X86Seg seg_reg, int selector, } } +static void tss_set_busy(CPUX86State *env, int tss_selector, bool value, + uintptr_t retaddr) +{ + target_ulong ptr = env->gdt.base + (env->tr.selector & ~7); + uint32_t e2 = cpu_ldl_kernel_ra(env, ptr + 4, retaddr); + + if (value) { + e2 |= DESC_TSS_BUSY_MASK; + } else { + e2 &= ~DESC_TSS_BUSY_MASK; + } + + cpu_stl_kernel_ra(env, ptr + 4, e2, retaddr); +} + #define SWITCH_TSS_JMP 0 #define SWITCH_TSS_IRET 1 #define SWITCH_TSS_CALL 2 @@ -341,13 +356,7 @@ static void switch_tss_ra(CPUX86State *env, int tss_selector, /* clear busy bit (it is restartable) */ if (source == SWITCH_TSS_JMP || source == SWITCH_TSS_IRET) { - target_ulong ptr; - uint32_t e2; - - ptr = env->gdt.base + (env->tr.selector & ~7); - e2 = cpu_ldl_kernel_ra(env, ptr + 4, retaddr); - e2 &= ~DESC_TSS_BUSY_MASK; - cpu_stl_kernel_ra(env, ptr + 4, e2, retaddr); + tss_set_busy(env, env->tr.selector, 0, retaddr); } old_eflags = cpu_compute_eflags(env); if (source == SWITCH_TSS_IRET) { @@ -399,13 +408,7 @@ static void switch_tss_ra(CPUX86State *env, int tss_selector, /* set busy bit */ if (source == SWITCH_TSS_JMP || source == SWITCH_TSS_CALL) { - target_ulong ptr; - uint32_t e2; - - ptr = env->gdt.base + (tss_selector & ~7); - e2 = cpu_ldl_kernel_ra(env, ptr + 4, retaddr); - e2 |= DESC_TSS_BUSY_MASK; - cpu_stl_kernel_ra(env, ptr + 4, e2, retaddr); + tss_set_busy(env, tss_selector, 1, retaddr); } /* set the new CPU state */ From 49958057a2ff7503357ce624da0cd3a94ab554bf Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Mon, 25 Sep 2023 12:35:42 +0200 Subject: [PATCH 15/19] target/i386/seg_helper: remove shadowed variable Return the width of the new task directly from switch_tss_ra. Signed-off-by: Paolo Bonzini --- target/i386/tcg/seg_helper.c | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/target/i386/tcg/seg_helper.c b/target/i386/tcg/seg_helper.c index b5198db82b..2b92aee207 100644 --- a/target/i386/tcg/seg_helper.c +++ b/target/i386/tcg/seg_helper.c @@ -245,10 +245,10 @@ static void tss_set_busy(CPUX86State *env, int tss_selector, bool value, #define SWITCH_TSS_IRET 1 #define SWITCH_TSS_CALL 2 -/* XXX: restore CPU state in registers (PowerPC case) */ -static void switch_tss_ra(CPUX86State *env, int tss_selector, - uint32_t e1, uint32_t e2, int source, - uint32_t next_eip, uintptr_t retaddr) +/* return 0 if switching to a 16-bit selector */ +static int switch_tss_ra(CPUX86State *env, int tss_selector, + uint32_t e1, uint32_t e2, int source, + uint32_t next_eip, uintptr_t retaddr) { int tss_limit, tss_limit_max, type, old_tss_limit_max, old_type, v1, v2, i; target_ulong tss_base; @@ -502,13 +502,14 @@ static void switch_tss_ra(CPUX86State *env, int tss_selector, cpu_x86_update_dr7(env, env->dr[7] & ~DR7_LOCAL_BP_MASK); } #endif + return type >> 3; } -static void switch_tss(CPUX86State *env, int tss_selector, - uint32_t e1, uint32_t e2, int source, - uint32_t next_eip) +static int switch_tss(CPUX86State *env, int tss_selector, + uint32_t e1, uint32_t e2, int source, + uint32_t next_eip) { - switch_tss_ra(env, tss_selector, e1, e2, source, next_eip, 0); + return switch_tss_ra(env, tss_selector, e1, e2, source, next_eip, 0); } static inline unsigned int get_sp_mask(unsigned int e2) @@ -650,14 +651,11 @@ static void do_interrupt_protected(CPUX86State *env, int intno, int is_int, if (!(e2 & DESC_P_MASK)) { raise_exception_err(env, EXCP0B_NOSEG, intno * 8 + 2); } - switch_tss(env, intno * 8, e1, e2, SWITCH_TSS_CALL, old_eip); + shift = switch_tss(env, intno * 8, e1, e2, SWITCH_TSS_CALL, old_eip); if (has_error_code) { - int type; uint32_t mask; /* push the error code */ - type = (env->tr.flags >> DESC_TYPE_SHIFT) & 0xf; - shift = type >> 3; if (env->segs[R_SS].flags & DESC_B_MASK) { mask = 0xffffffff; } else { From 1bce34aaa9d324b6d4aaf681e634e1840ca5d04e Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Mon, 25 Sep 2023 12:20:06 +0200 Subject: [PATCH 16/19] target/i386/svm_helper: eliminate duplicate local variable This shadows an outer "cs" variable that is initialized to the same expression. Signed-off-by: Paolo Bonzini --- target/i386/tcg/sysemu/svm_helper.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/target/i386/tcg/sysemu/svm_helper.c b/target/i386/tcg/sysemu/svm_helper.c index 2d27731b60..32ff0dbb13 100644 --- a/target/i386/tcg/sysemu/svm_helper.c +++ b/target/i386/tcg/sysemu/svm_helper.c @@ -387,8 +387,6 @@ void helper_vmrun(CPUX86State *env, int aflag, int next_eip_addend) env->hflags2 |= HF2_GIF_MASK; if (ctl_has_irq(env)) { - CPUState *cs = env_cpu(env); - cs->interrupt_request |= CPU_INTERRUPT_VIRQ; } From e2dbca033710efea20b0b0a26ca05570dcdabd49 Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Wed, 12 Apr 2023 11:23:00 +0200 Subject: [PATCH 17/19] block: mark mixed functions that can suspend The marking should be extended transitively to all functions that call these ones, so that static analysis can be done much more efficiently. However, this is a start and makes it possible to use vrc's path-based searches to find potential bugs where coroutine_fns call blocking functions. Signed-off-by: Paolo Bonzini --- block/io.c | 5 +++-- block/qcow2.c | 2 +- block/qed.c | 4 ++-- block/throttle-groups.c | 4 ++-- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/block/io.c b/block/io.c index 209a6da0c8..e7f9448d5a 100644 --- a/block/io.c +++ b/block/io.c @@ -387,7 +387,8 @@ void bdrv_do_drained_begin_quiesce(BlockDriverState *bs, BdrvChild *parent) bdrv_do_drained_begin(bs, parent, false); } -void bdrv_drained_begin(BlockDriverState *bs) +void coroutine_mixed_fn +bdrv_drained_begin(BlockDriverState *bs) { IO_OR_GS_CODE(); bdrv_do_drained_begin(bs, NULL, true); @@ -506,7 +507,7 @@ void bdrv_drain_all_begin_nopoll(void) } } -void bdrv_drain_all_begin(void) +void coroutine_mixed_fn bdrv_drain_all_begin(void) { BlockDriverState *bs = NULL; diff --git a/block/qcow2.c b/block/qcow2.c index af43d59d76..5a3c537f14 100644 --- a/block/qcow2.c +++ b/block/qcow2.c @@ -5288,7 +5288,7 @@ static ImageInfoSpecific *qcow2_get_specific_info(BlockDriverState *bs, return spec_info; } -static int qcow2_has_zero_init(BlockDriverState *bs) +static int coroutine_mixed_fn qcow2_has_zero_init(BlockDriverState *bs) { BDRVQcow2State *s = bs->opaque; bool preallocated; diff --git a/block/qed.c b/block/qed.c index b2604d9dad..45ae320290 100644 --- a/block/qed.c +++ b/block/qed.c @@ -570,8 +570,8 @@ static void coroutine_fn bdrv_qed_open_entry(void *opaque) qemu_co_mutex_unlock(&s->table_lock); } -static int bdrv_qed_open(BlockDriverState *bs, QDict *options, int flags, - Error **errp) +static int coroutine_mixed_fn bdrv_qed_open(BlockDriverState *bs, QDict *options, + int flags, Error **errp) { QEDOpenCo qoc = { .bs = bs, diff --git a/block/throttle-groups.c b/block/throttle-groups.c index 3eda4c4e3d..f5c0fac581 100644 --- a/block/throttle-groups.c +++ b/block/throttle-groups.c @@ -317,8 +317,8 @@ static bool coroutine_fn throttle_group_co_restart_queue(ThrottleGroupMember *tg * @tgm: the current ThrottleGroupMember * @direction: the ThrottleDirection */ -static void schedule_next_request(ThrottleGroupMember *tgm, - ThrottleDirection direction) +static void coroutine_mixed_fn schedule_next_request(ThrottleGroupMember *tgm, + ThrottleDirection direction) { ThrottleState *ts = tgm->throttle_state; ThrottleGroup *tg = container_of(ts, ThrottleGroup, ts); From d79b9202e45711e37e5ba5b3fbfccb4b9fff78a1 Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Fri, 16 Dec 2022 12:53:44 +0100 Subject: [PATCH 18/19] compiler: introduce QEMU_ANNOTATE Allow a more shorter syntax when defining wrapper macros for __attribute__((annotate(...))). Signed-off-by: Paolo Bonzini --- include/qemu/compiler.h | 6 ++++++ include/qemu/osdep.h | 6 +++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/include/qemu/compiler.h b/include/qemu/compiler.h index a309f90c76..7fda29b445 100644 --- a/include/qemu/compiler.h +++ b/include/qemu/compiler.h @@ -197,4 +197,10 @@ #define BUILTIN_SUBCLL_BROKEN #endif +#if __has_attribute(annotate) +#define QEMU_ANNOTATE(x) __attribute__((annotate(x))) +#else +#define QEMU_ANNOTATE(x) +#endif + #endif /* COMPILER_H */ diff --git a/include/qemu/osdep.h b/include/qemu/osdep.h index 2897720fac..e4a4eb2d61 100644 --- a/include/qemu/osdep.h +++ b/include/qemu/osdep.h @@ -185,7 +185,7 @@ extern "C" { * } */ #ifdef __clang__ -#define coroutine_fn __attribute__((__annotate__("coroutine_fn"))) +#define coroutine_fn QEMU_ANNOTATE("coroutine_fn") #else #define coroutine_fn #endif @@ -195,7 +195,7 @@ extern "C" { * but can handle running in non-coroutine context too. */ #ifdef __clang__ -#define coroutine_mixed_fn __attribute__((__annotate__("coroutine_mixed_fn"))) +#define coroutine_mixed_fn QEMU_ANNOTATE("coroutine_mixed_fn") #else #define coroutine_mixed_fn #endif @@ -224,7 +224,7 @@ extern "C" { * } */ #ifdef __clang__ -#define no_coroutine_fn __attribute__((__annotate__("no_coroutine_fn"))) +#define no_coroutine_fn QEMU_ANNOTATE("no_coroutine_fn") #else #define no_coroutine_fn #endif From 417f8c8ebfa32823b23fed957dcbc7108cb77dea Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Tue, 26 Sep 2023 17:49:17 +0200 Subject: [PATCH 19/19] audio: remove shadowed locals Signed-off-by: Paolo Bonzini --- audio/audio.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/audio/audio.c b/audio/audio.c index 90c7c49d11..2f47965711 100644 --- a/audio/audio.c +++ b/audio/audio.c @@ -1706,7 +1706,7 @@ static AudioState *audio_init(Audiodev *dev, const char *name) size_t i; int done = 0; const char *drvname = NULL; - VMChangeStateEntry *e; + VMChangeStateEntry *vmse; AudioState *s; struct audio_driver *driver; /* silence gcc warning about uninitialized variable */ @@ -1824,8 +1824,8 @@ static AudioState *audio_init(Audiodev *dev, const char *name) s->period_ticks = dev->timer_period * (int64_t)SCALE_US; } - e = qemu_add_vm_change_state_handler (audio_vm_change_state_handler, s); - if (!e) { + vmse = qemu_add_vm_change_state_handler (audio_vm_change_state_handler, s); + if (!vmse) { dolog ("warning: Could not register change state handler\n" "(Audio can continue looping even after stopping the VM)\n"); } @@ -1900,10 +1900,8 @@ CaptureVoiceOut *AUD_add_capture( cap = audio_pcm_capture_find_specific(s, as); if (cap) { QLIST_INSERT_HEAD (&cap->cb_head, cb, entries); - return cap; } else { HWVoiceOut *hw; - CaptureVoiceOut *cap; cap = g_malloc0(sizeof(*cap)); @@ -1937,8 +1935,9 @@ CaptureVoiceOut *AUD_add_capture( QLIST_FOREACH(hw, &s->hw_head_out, entries) { audio_attach_capture (hw); } - return cap; } + + return cap; } void AUD_del_capture (CaptureVoiceOut *cap, void *cb_opaque)