History log of /qemu/hw/virtio/ (Results 1 – 25 of 1561)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
4250826112-Dec-2023 Philippe Mathieu-Daudé <philmd@linaro.org>

exec: Declare target_words_bigendian() in 'exec/tswap.h'

We usually check target endianess before swapping values,
so target_words_bigendian() declaration makes sense in
"exec/tswap.h" with the targ

exec: Declare target_words_bigendian() in 'exec/tswap.h'

We usually check target endianess before swapping values,
so target_words_bigendian() declaration makes sense in
"exec/tswap.h" with the target swapping helpers.

Remove "hw/core/cpu.h" when it was only included to get
the target_words_bigendian() declaration.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Anton Johansson <anjo@rev.ng>
Message-Id: <20231212123401.37493-16-philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>

show more ...


/qemu/.gitlab-ci.d/buildtest.yml
/qemu/.gitlab-ci.d/container-core.yml
/qemu/.travis.yml
/qemu/MAINTAINERS
/qemu/accel/hvf/hvf-accel-ops.c
/qemu/accel/stubs/tcg-stub.c
/qemu/accel/tcg/cpu-exec.c
/qemu/accel/tcg/cputlb.c
/qemu/accel/tcg/ldst_atomicity.c.inc
/qemu/accel/tcg/tb-jmp-cache.h
/qemu/accel/tcg/tcg-accel-ops.c
/qemu/accel/tcg/translator.c
/qemu/accel/tcg/user-exec.c
/qemu/accel/tcg/user-retaddr.h
/qemu/bsd-user/elfload.c
/qemu/cpu-target.c
/qemu/disas/disas.c
/qemu/docs/devel/reset.rst
/qemu/docs/devel/submitting-a-patch.rst
/qemu/docs/system/arm/b-l475e-iot01a.rst
/qemu/docs/system/target-i386-desc.rst.inc
/qemu/gdbstub/gdbstub.c
/qemu/host/include/aarch64/host/load-extract-al16-al8.h.inc
/qemu/host/include/aarch64/host/store-insert-al16.h.inc
/qemu/host/include/generic/host/load-extract-al16-al8.h.inc
/qemu/host/include/generic/host/store-insert-al16.h.inc
/qemu/host/include/loongarch64/host/load-extract-al16-al8.h.inc
/qemu/host/include/loongarch64/host/store-insert-al16.h.inc
/qemu/host/include/x86_64/host/load-extract-al16-al8.h.inc
/qemu/hw/Kconfig
/qemu/hw/arm/Kconfig
/qemu/hw/arm/stm32l4x5_soc.c
/qemu/hw/audio/virtio-snd.c
/qemu/hw/char/Kconfig
/qemu/hw/char/meson.build
/qemu/hw/char/stm32l4x5_usart.c
/qemu/hw/char/trace-events
/qemu/hw/core/cpu-sysemu.c
/qemu/hw/core/generic-loader.c
/qemu/hw/core/loader.c
/qemu/hw/core/machine-hmp-cmds.c
/qemu/hw/core/machine-qmp-cmds.c
/qemu/hw/core/machine-smp.c
/qemu/hw/core/machine.c
/qemu/hw/core/reset.c
/qemu/hw/core/resettable.c
/qemu/hw/cpu/Kconfig
/qemu/hw/cpu/meson.build
/qemu/hw/cxl/cxl-cdat.c
/qemu/hw/display/vga.c
/qemu/hw/i386/pc_sysfw.c
/qemu/hw/mem/cxl_type3.c
/qemu/hw/misc/applesmc.c
/qemu/hw/misc/imx25_ccm.c
/qemu/hw/misc/imx31_ccm.c
/qemu/hw/misc/imx6_ccm.c
/qemu/hw/misc/imx6_src.c
/qemu/hw/misc/imx6ul_ccm.c
/qemu/hw/misc/imx7_src.c
/qemu/hw/misc/stm32l4x5_exti.c
/qemu/hw/net/imx_fec.c
/qemu/hw/pci-bridge/cxl_upstream.c
/qemu/hw/riscv/Kconfig
/qemu/hw/riscv/virt.c
/qemu/hw/s390x/s390-stattrib.c
/qemu/hw/s390x/s390-virtio-hcall.h
/qemu/hw/ssi/imx_spi.c
virtio.c
/qemu/hw/xtensa/bootparam.h
/qemu/include/exec/cpu-all.h
/qemu/include/exec/cpu-defs.h
/qemu/include/exec/cpu_ldst.h
/qemu/include/exec/exec-all.h
/qemu/include/exec/helper-gen.h.inc
/qemu/include/exec/helper-head.h.inc
/qemu/include/exec/helper-info.c.inc
/qemu/include/exec/helper-proto.h.inc
/qemu/include/exec/memop.h
/qemu/include/exec/memory.h
/qemu/include/exec/ram_addr.h
/qemu/include/exec/tswap.h
/qemu/include/gdbstub/helpers.h
/qemu/include/hw/arm/stm32l4x5_soc.h
/qemu/include/hw/boards.h
/qemu/include/hw/char/stm32l4x5_usart.h
/qemu/include/hw/core/cpu.h
/qemu/include/hw/core/tcg-cpu-ops.h
/qemu/include/hw/cxl/cxl_component.h
/qemu/include/hw/elf_ops.h.inc
/qemu/include/hw/resettable.h
/qemu/include/qemu/osdep.h
/qemu/include/semihosting/uaccess.h
/qemu/include/sysemu/hvf.h
/qemu/include/sysemu/hvf_int.h
/qemu/include/sysemu/kvm.h
/qemu/include/sysemu/nvmm.h
/qemu/include/sysemu/whpx.h
/qemu/include/sysemu/xen.h
/qemu/linux-user/elfload.c
/qemu/meson.build
/qemu/page-target.c
/qemu/python/qemu/machine/machine.py
/qemu/qapi/machine.json
/qemu/qom/qom-qmp-cmds.c
/qemu/scripts/analyze-inclusions
/qemu/scripts/compare-machine-types.py
/qemu/semihosting/guestfd.c
/qemu/system/physmem.c
/qemu/system/vl.c
/qemu/target/alpha/cpu-param.h
/qemu/target/alpha/cpu.h
/qemu/target/arm/cpu-param.h
/qemu/target/arm/cpu.h
/qemu/target/arm/hvf/hvf.c
/qemu/target/arm/kvm-consts.h
/qemu/target/avr/cpu-param.h
/qemu/target/avr/cpu.h
/qemu/target/avr/gdbstub.c
/qemu/target/hexagon/translate.c
/qemu/target/hppa/cpu-param.h
/qemu/target/hppa/cpu.h
/qemu/target/i386/cpu-apic.c
/qemu/target/i386/cpu-param.h
/qemu/target/i386/cpu-sysemu.c
/qemu/target/i386/cpu.h
/qemu/target/i386/hvf/hvf.c
/qemu/target/i386/hvf/x86hvf.c
/qemu/target/i386/meson.build
/qemu/target/i386/monitor.c
/qemu/target/i386/nvmm/nvmm-all.c
/qemu/target/i386/tcg/fpu_helper.c
/qemu/target/i386/whpx/whpx-all.c
/qemu/target/loongarch/cpu-param.h
/qemu/target/loongarch/cpu.h
/qemu/target/meson.build
/qemu/target/microblaze/cpu-param.h
/qemu/target/microblaze/cpu.c
/qemu/target/microblaze/cpu.h
/qemu/target/microblaze/translate.c
/qemu/target/mips/cpu-param.h
/qemu/target/mips/cpu.h
/qemu/target/openrisc/cpu-param.h
/qemu/target/openrisc/cpu.h
/qemu/target/ppc/cpu-param.h
/qemu/target/ppc/cpu.h
/qemu/target/ppc/excp_helper.c
/qemu/target/riscv/cpu-param.h
/qemu/target/riscv/cpu.h
/qemu/target/s390x/cpu-param.h
/qemu/target/s390x/cpu.h
/qemu/target/s390x/cpu_models.h
/qemu/target/sparc/cpu-param.h
/qemu/target/sparc/cpu.h
/qemu/target/sparc/gdbstub.c
/qemu/target/tricore/gdbstub.c
/qemu/target/xtensa/cpu-param.h
/qemu/target/xtensa/cpu.h
/qemu/tests/docker/dockerfiles/alpine.docker
/qemu/tests/docker/dockerfiles/centos9.docker
/qemu/tests/docker/dockerfiles/debian-amd64-cross.docker
/qemu/tests/docker/dockerfiles/debian-arm64-cross.docker
/qemu/tests/docker/dockerfiles/debian-armel-cross.docker
/qemu/tests/docker/dockerfiles/debian-armhf-cross.docker
/qemu/tests/docker/dockerfiles/debian-i686-cross.docker
/qemu/tests/docker/dockerfiles/debian-mips64el-cross.docker
/qemu/tests/docker/dockerfiles/debian-mipsel-cross.docker
/qemu/tests/docker/dockerfiles/debian-ppc64el-cross.docker
/qemu/tests/docker/dockerfiles/debian-riscv64-cross.docker
/qemu/tests/docker/dockerfiles/debian-s390x-cross.docker
/qemu/tests/docker/dockerfiles/debian.docker
/qemu/tests/docker/dockerfiles/fedora-win64-cross.docker
/qemu/tests/docker/dockerfiles/fedora.docker
/qemu/tests/docker/dockerfiles/opensuse-leap.docker
/qemu/tests/docker/dockerfiles/ubuntu2204.docker
/qemu/tests/lcitool/libvirt-ci
/qemu/tests/lcitool/mappings.yml
/qemu/tests/lcitool/refresh
/qemu/tests/qtest/aspeed_fsi-test.c
/qemu/tests/qtest/cmsdk-apb-dualtimer-test.c
/qemu/tests/qtest/cmsdk-apb-watchdog-test.c
/qemu/tests/qtest/erst-test.c
/qemu/tests/qtest/fuzz/qos_fuzz.c
/qemu/tests/qtest/ivshmem-test.c
/qemu/tests/qtest/libqos/ahci.c
/qemu/tests/qtest/meson.build
/qemu/tests/qtest/microbit-test.c
/qemu/tests/qtest/sse-timer-test.c
/qemu/tests/qtest/stm32l4x5_exti-test.c
/qemu/tests/qtest/stm32l4x5_syscfg-test.c
/qemu/tests/qtest/stm32l4x5_usart-test.c
/qemu/tests/unit/test-nested-aio-poll.c
/qemu/tests/vm/centos
/qemu/tests/vm/openbsd
ad80e36712-Apr-2024 Peter Maydell <peter.maydell@linaro.org>

hw, target: Add ResetType argument to hold and exit phase methods

We pass a ResetType argument to the Resettable class enter
phase method, but we don't pass it to hold and exit, even though
the call

hw, target: Add ResetType argument to hold and exit phase methods

We pass a ResetType argument to the Resettable class enter
phase method, but we don't pass it to hold and exit, even though
the callsites have it readily available. This means that if
a device cared about the ResetType it would need to record it
in the enter phase method to use later on. Pass the type to
all three of the phase methods to avoid having to do that.

Commit created with

for dir in hw target include; do \
spatch --macro-file scripts/cocci-macro-file.h \
--sp-file scripts/coccinelle/reset-type.cocci \
--keep-comments --smpl-spacing --in-place \
--include-headers --dir $dir; done

and no manual edits.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Edgar E. Iglesias <edgar.iglesias@amd.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Luc Michel <luc.michel@amd.com>
Message-id: 20240412160809.1260625-5-peter.maydell@linaro.org

show more ...


/qemu/.gitlab-ci.d/buildtest.yml
/qemu/.gitlab-ci.d/crossbuild-template.yml
/qemu/.gitlab-ci.d/crossbuilds.yml
/qemu/.mailmap
/qemu/Kconfig.host
/qemu/MAINTAINERS
/qemu/backends/iommufd.c
/qemu/block/gluster.c
/qemu/block/snapshot.c
/qemu/blockdev.c
/qemu/bsd-user/qemu.h
/qemu/chardev/char-fe.c
/qemu/configure
/qemu/disas/meson.build
/qemu/docs/about/deprecated.rst
/qemu/docs/about/emulation.rst
/qemu/docs/about/removed-features.rst
/qemu/docs/system/arm/emulation.rst
/qemu/docs/system/device-url-syntax.rst.inc
/qemu/docs/system/loongarch/virt.rst
/qemu/docs/system/qemu-block-drivers.rst.inc
/qemu/docs/system/replay.rst
/qemu/docs/user/main.rst
/qemu/fpu/softfloat-specialize.c.inc
/qemu/hmp-commands-info.hx
/qemu/hw/Kconfig
/qemu/hw/adc/npcm7xx_adc.c
/qemu/hw/arm/pxa2xx_pic.c
/qemu/hw/arm/smmu-common.c
/qemu/hw/arm/smmuv3.c
/qemu/hw/arm/stellaris.c
/qemu/hw/arm/virt.c
/qemu/hw/audio/asc.c
/qemu/hw/char/cadence_uart.c
/qemu/hw/char/sifive_uart.c
/qemu/hw/core/cpu-common.c
/qemu/hw/core/machine-qmp-cmds.c
/qemu/hw/core/qdev-properties.c
/qemu/hw/core/qdev.c
/qemu/hw/core/reset.c
/qemu/hw/core/resettable.c
/qemu/hw/display/virtio-vga.c
/qemu/hw/dma/soc_dma.c
/qemu/hw/gpio/npcm7xx_gpio.c
/qemu/hw/gpio/pl061.c
/qemu/hw/gpio/stm32l4x5_gpio.c
/qemu/hw/hyperv/vmbus.c
/qemu/hw/i2c/allwinner-i2c.c
/qemu/hw/i2c/npcm7xx_smbus.c
/qemu/hw/input/adb.c
/qemu/hw/input/ps2.c
/qemu/hw/intc/Kconfig
/qemu/hw/intc/arm_gic_common.c
/qemu/hw/intc/arm_gic_kvm.c
/qemu/hw/intc/arm_gicv3.c
/qemu/hw/intc/arm_gicv3_common.c
/qemu/hw/intc/arm_gicv3_cpuif.c
/qemu/hw/intc/arm_gicv3_dist.c
/qemu/hw/intc/arm_gicv3_its.c
/qemu/hw/intc/arm_gicv3_its_common.c
/qemu/hw/intc/arm_gicv3_its_kvm.c
/qemu/hw/intc/arm_gicv3_kvm.c
/qemu/hw/intc/arm_gicv3_redist.c
/qemu/hw/intc/gicv3_internal.h
/qemu/hw/intc/meson.build
/qemu/hw/intc/trace-events
/qemu/hw/intc/xics.c
/qemu/hw/m68k/q800-glue.c
/qemu/hw/meson.build
/qemu/hw/misc/djmemc.c
/qemu/hw/misc/iosb.c
/qemu/hw/misc/mac_via.c
/qemu/hw/misc/macio/cuda.c
/qemu/hw/misc/macio/pmu.c
/qemu/hw/misc/mos6522.c
/qemu/hw/misc/npcm7xx_clk.c
/qemu/hw/misc/npcm7xx_gcr.c
/qemu/hw/misc/npcm7xx_mft.c
/qemu/hw/misc/npcm7xx_pwm.c
/qemu/hw/misc/stm32l4x5_exti.c
/qemu/hw/misc/stm32l4x5_rcc.c
/qemu/hw/misc/stm32l4x5_syscfg.c
/qemu/hw/misc/xlnx-versal-cframe-reg.c
/qemu/hw/misc/xlnx-versal-crl.c
/qemu/hw/misc/xlnx-versal-pmc-iou-slcr.c
/qemu/hw/misc/xlnx-versal-trng.c
/qemu/hw/misc/xlnx-versal-xramc.c
/qemu/hw/misc/xlnx-zynqmp-apu-ctrl.c
/qemu/hw/misc/xlnx-zynqmp-crf.c
/qemu/hw/misc/zynq_slcr.c
/qemu/hw/net/can/xlnx-zynqmp-can.c
/qemu/hw/net/e1000.c
/qemu/hw/net/e1000e.c
/qemu/hw/net/igb.c
/qemu/hw/net/igbvf.c
/qemu/hw/nvram/xlnx-bbram.c
/qemu/hw/nvram/xlnx-versal-efuse-ctrl.c
/qemu/hw/nvram/xlnx-zynqmp-efuse.c
/qemu/hw/pci-bridge/cxl_root_port.c
/qemu/hw/pci-bridge/pcie_root_port.c
/qemu/hw/pci-host/bonito.c
/qemu/hw/pci-host/pnv_phb.c
/qemu/hw/pci-host/pnv_phb3_msi.c
/qemu/hw/pci/pci.c
/qemu/hw/ppc/spapr_pci.c
/qemu/hw/rtc/mc146818rtc.c
/qemu/hw/s390x/css-bridge.c
/qemu/hw/sensor/adm1266.c
/qemu/hw/sensor/adm1272.c
/qemu/hw/sensor/isl_pmbus_vr.c
/qemu/hw/sensor/max31785.c
/qemu/hw/sensor/max34451.c
/qemu/hw/ssi/npcm7xx_fiu.c
/qemu/hw/timer/Kconfig
/qemu/hw/timer/etraxfs_timer.c
/qemu/hw/timer/meson.build
/qemu/hw/timer/npcm7xx_timer.c
/qemu/hw/usb/hcd-dwc2.c
/qemu/hw/usb/xlnx-versal-usb2-ctrl-regs.c
virtio-pci.c
/qemu/include/disas/dis-asm.h
/qemu/include/exec/poison.h
/qemu/include/exec/user/abitypes.h
/qemu/include/hw/intc/arm_gic_common.h
/qemu/include/hw/intc/arm_gicv3_common.h
/qemu/include/hw/resettable.h
/qemu/include/monitor/hmp.h
/qemu/include/qapi/qmp/qerror.h
/qemu/include/sysemu/arch_init.h
/qemu/linux-user/elfload.c
/qemu/linux-user/flat.h
/qemu/linux-user/flatload.c
/qemu/linux-user/ioctls.h
/qemu/linux-user/qemu.h
/qemu/linux-user/syscall.c
/qemu/linux-user/syscall_defs.h
/qemu/linux-user/syscall_types.h
/qemu/linux-user/uaccess.c
/qemu/meson.build
/qemu/meson_options.txt
/qemu/migration/migration.c
/qemu/migration/options.c
/qemu/migration/savevm.c
/qemu/monitor/qmp-cmds.c
/qemu/qapi/machine.json
/qemu/qapi/meson.build
/qemu/qapi/opts-visitor.c
/qemu/qapi/qapi-schema.json
/qemu/qapi/qobject-input-visitor.c
/qemu/qapi/string-input-visitor.c
/qemu/qemu-options.hx
/qemu/qom/object.c
/qemu/scripts/ci/org.centos/stream/8/x86_64/configure
/qemu/scripts/coccinelle/reset-type.cocci
/qemu/scripts/coverity-scan/COMPONENTS.md
/qemu/scripts/gensyscalls.sh
/qemu/scripts/meson-buildoptions.sh
/qemu/scripts/probe-gdb-support.py
/qemu/scripts/qapi/introspect.py
/qemu/scripts/qapi/mypy.ini
/qemu/scripts/qapi/parser.py
/qemu/scripts/qapi/pylintrc
/qemu/scripts/qapi/schema.py
/qemu/scripts/qapi/visit.py
/qemu/scripts/update-linux-headers.sh
/qemu/system/qdev-monitor.c
/qemu/system/rtc.c
/qemu/target/Kconfig
/qemu/target/arm/cpu-features.h
/qemu/target/arm/cpu-qom.h
/qemu/target/arm/cpu.c
/qemu/target/arm/cpu.h
/qemu/target/arm/helper.c
/qemu/target/arm/internals.h
/qemu/target/arm/tcg/a64.decode
/qemu/target/arm/tcg/cpu64.c
/qemu/target/arm/tcg/helper-a64.c
/qemu/target/arm/tcg/helper-a64.h
/qemu/target/arm/tcg/translate-a64.c
/qemu/target/avr/cpu.c
/qemu/target/cris/cpu.c
/qemu/target/hexagon/cpu.c
/qemu/target/i386/cpu.c
/qemu/target/loongarch/cpu.c
/qemu/target/m68k/cpu.c
/qemu/target/m68k/cpu.h
/qemu/target/m68k/m68k-semi.c
/qemu/target/m68k/op_helper.c
/qemu/target/m68k/translate.c
/qemu/target/meson.build
/qemu/target/microblaze/cpu.c
/qemu/target/mips/cpu.c
/qemu/target/openrisc/cpu.c
/qemu/target/ppc/cpu_init.c
/qemu/target/riscv/cpu.c
/qemu/target/rx/cpu.c
/qemu/target/sh4/cpu.c
/qemu/target/sparc/cpu.c
/qemu/target/tricore/cpu.c
/qemu/target/xtensa/cpu.c
/qemu/tests/avocado/boot_linux_console.py
/qemu/tests/avocado/replay_kernel.py
/qemu/tests/docker/Makefile.include
/qemu/tests/qtest/machine-none-test.c
/qemu/util/qemu-option.c
3688fec820-Mar-2024 Cédric Le Goater <clg@redhat.com>

memory: Add Error** argument to .log_global_start() handler

Modify all .log_global_start() handlers to take an Error** parameter
and return a bool. Adapt memory_global_dirty_log_start() to interrupt

memory: Add Error** argument to .log_global_start() handler

Modify all .log_global_start() handlers to take an Error** parameter
and return a bool. Adapt memory_global_dirty_log_start() to interrupt
on the first error the loop on handlers. In such case, a rollback is
performed to stop dirty logging on all listeners where it was
previously enabled.

Cc: Stefano Stabellini <sstabellini@kernel.org>
Cc: Anthony Perard <anthony.perard@citrix.com>
Cc: Paul Durrant <paul@xen.org>
Cc: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: David Hildenbrand <david@redhat.com>
Signed-off-by: Cédric Le Goater <clg@redhat.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Link: https://lore.kernel.org/r/20240320064911.545001-10-clg@redhat.com
[peterx: modify & enrich the comment for listener_add_address_space() ]
Signed-off-by: Peter Xu <peterx@redhat.com>

show more ...

f2604d8508-Apr-2024 Paolo Bonzini <pbonzini@redhat.com>

hw/virtio: move stubs out of stubs/

Since the virtio memory device stubs are needed exactly when the
Kconfig symbol is not enabled, they can be placed in hw/virtio/ and
conditionalized on CONFIG_VIR

hw/virtio: move stubs out of stubs/

Since the virtio memory device stubs are needed exactly when the
Kconfig symbol is not enabled, they can be placed in hw/virtio/ and
conditionalized on CONFIG_VIRTIO_MD.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-ID: <20240408155330.522792-12-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

show more ...

2ce6cff912-Apr-2024 Cindy Lu <lulu@redhat.com>

virtio-pci: fix use of a released vector

During the booting process of the non-standard image, the behavior of the
called function in qemu is as follows:

1. vhost_net_stop() was triggered by guest

virtio-pci: fix use of a released vector

During the booting process of the non-standard image, the behavior of the
called function in qemu is as follows:

1. vhost_net_stop() was triggered by guest image. This will call the function
virtio_pci_set_guest_notifiers() with assgin= false,
virtio_pci_set_guest_notifiers() will release the irqfd for vector 0

2. virtio_reset() was triggered, this will set configure vector to VIRTIO_NO_VECTOR

3.vhost_net_start() was called (at this time, the configure vector is
still VIRTIO_NO_VECTOR) and then call virtio_pci_set_guest_notifiers() with
assgin=true, so the irqfd for vector 0 is still not "init" during this process

4. The system continues to boot and sets the vector back to 0. After that
msix_fire_vector_notifier() was triggered to unmask the vector 0 and meet the crash

To fix the issue, we need to support changing the vector after VIRTIO_CONFIG_S_DRIVER_OK is set.

(gdb) bt
0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0)
at pthread_kill.c:44
1 0x00007fc87148ec53 in __pthread_kill_internal (signo=6, threadid=<optimized out>) at pthread_kill.c:78
2 0x00007fc87143e956 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
3 0x00007fc8714287f4 in __GI_abort () at abort.c:79
4 0x00007fc87142871b in __assert_fail_base
(fmt=0x7fc8715bbde0 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x5606413efd53 "ret == 0", file=0x5606413ef87d "../accel/kvm/kvm-all.c", line=1837, function=<optimized out>) at assert.c:92
5 0x00007fc871437536 in __GI___assert_fail
(assertion=0x5606413efd53 "ret == 0", file=0x5606413ef87d "../accel/kvm/kvm-all.c", line=1837, function=0x5606413f06f0 <__PRETTY_FUNCTION__.19> "kvm_irqchip_commit_routes") at assert.c:101
6 0x0000560640f884b5 in kvm_irqchip_commit_routes (s=0x560642cae1f0) at ../accel/kvm/kvm-all.c:1837
7 0x0000560640c98f8e in virtio_pci_one_vector_unmask
(proxy=0x560643c65f00, queue_no=4294967295, vector=0, msg=..., n=0x560643c6e4c8)
at ../hw/virtio/virtio-pci.c:1005
8 0x0000560640c99201 in virtio_pci_vector_unmask (dev=0x560643c65f00, vector=0, msg=...)
at ../hw/virtio/virtio-pci.c:1070
9 0x0000560640bc402e in msix_fire_vector_notifier (dev=0x560643c65f00, vector=0, is_masked=false)
at ../hw/pci/msix.c:120
10 0x0000560640bc40f1 in msix_handle_mask_update (dev=0x560643c65f00, vector=0, was_masked=true)
at ../hw/pci/msix.c:140
11 0x0000560640bc4503 in msix_table_mmio_write (opaque=0x560643c65f00, addr=12, val=0, size=4)
at ../hw/pci/msix.c:231
12 0x0000560640f26d83 in memory_region_write_accessor
(mr=0x560643c66540, addr=12, value=0x7fc86b7bc628, size=4, shift=0, mask=4294967295, attrs=...)
at ../system/memory.c:497
13 0x0000560640f270a6 in access_with_adjusted_size

(addr=12, value=0x7fc86b7bc628, size=4, access_size_min=1, access_size_max=4, access_fn=0x560640f26c8d <memory_region_write_accessor>, mr=0x560643c66540, attrs=...) at ../system/memory.c:573
14 0x0000560640f2a2b5 in memory_region_dispatch_write (mr=0x560643c66540, addr=12, data=0, op=MO_32, attrs=...)
at ../system/memory.c:1521
15 0x0000560640f37bac in flatview_write_continue
(fv=0x7fc65805e0b0, addr=4273803276, attrs=..., ptr=0x7fc871e9c028, len=4, addr1=12, l=4, mr=0x560643c66540)
at ../system/physmem.c:2714
16 0x0000560640f37d0f in flatview_write
(fv=0x7fc65805e0b0, addr=4273803276, attrs=..., buf=0x7fc871e9c028, len=4) at ../system/physmem.c:2756
17 0x0000560640f380bf in address_space_write
(as=0x560642161ae0 <address_space_memory>, addr=4273803276, attrs=..., buf=0x7fc871e9c028, len=4)
at ../system/physmem.c:2863
18 0x0000560640f3812c in address_space_rw
(as=0x560642161ae0 <address_space_memory>, addr=4273803276, attrs=..., buf=0x7fc871e9c028, len=4, is_write=true) at ../system/physmem.c:2873
--Type <RET> for more, q to quit, c to continue without paging--
19 0x0000560640f8aa55 in kvm_cpu_exec (cpu=0x560642f205e0) at ../accel/kvm/kvm-all.c:2915
20 0x0000560640f8d731 in kvm_vcpu_thread_fn (arg=0x560642f205e0) at ../accel/kvm/kvm-accel-ops.c:51
21 0x00005606411949f4 in qemu_thread_start (args=0x560642f292b0) at ../util/qemu-thread-posix.c:541
22 0x00007fc87148cdcd in start_thread (arg=<optimized out>) at pthread_create.c:442
23 0x00007fc871512630 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
(gdb)

MST: coding style and typo fixups

Fixes: f9a09ca3ea ("vhost: add support for configure interrupt")
Cc: qemu-stable@nongnu.org
Signed-off-by: Cindy Lu <lulu@redhat.com>
Message-ID: <2321ade5f601367efe7380c04e3f61379c59b48f.1713173550.git.mst@redhat.com>
Cc: Lei Yang <leiyang@redhat.com>
Cc: Jason Wang <jasowang@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Tested-by: Cindy Lu <lulu@redhat.com>

show more ...

f4729ec304-Apr-2024 Philippe Mathieu-Daudé <philmd@linaro.org>

hw/virtio/virtio-crypto: Protect from DMA re-entrancy bugs

Replace qemu_bh_new_guarded() by virtio_bh_new_guarded()
so the bus and device use the same guard. Otherwise the
DMA-reentrancy protection

hw/virtio/virtio-crypto: Protect from DMA re-entrancy bugs

Replace qemu_bh_new_guarded() by virtio_bh_new_guarded()
so the bus and device use the same guard. Otherwise the
DMA-reentrancy protection can be bypassed.

Fixes: CVE-2024-3446
Cc: qemu-stable@nongnu.org
Suggested-by: Alexander Bulekov <alxndr@bu.edu>
Reviewed-by: Gerd Hoffmann <kraxel@redhat.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Message-Id: <20240409105537.18308-5-philmd@linaro.org>

show more ...

ec0504b904-Apr-2024 Philippe Mathieu-Daudé <philmd@linaro.org>

hw/virtio: Introduce virtio_bh_new_guarded() helper

Introduce virtio_bh_new_guarded(), similar to qemu_bh_new_guarded()
but using the transport memory guard, instead of the device one
(there can onl

hw/virtio: Introduce virtio_bh_new_guarded() helper

Introduce virtio_bh_new_guarded(), similar to qemu_bh_new_guarded()
but using the transport memory guard, instead of the device one
(there can only be one virtio device per virtio bus).

Inspired-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Gerd Hoffmann <kraxel@redhat.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Message-Id: <20240409105537.18308-2-philmd@linaro.org>

show more ...

6ae72f6008-Apr-2024 lyx634449800 <yuxue.liu@jaguarmicro.com>

vdpa-dev: Fix the issue of device status not updating when configuration interruption is triggered

The set_config callback function vhost_vdpa_device_get_config in
vdpa-dev does not fetch the curren

vdpa-dev: Fix the issue of device status not updating when configuration interruption is triggered

The set_config callback function vhost_vdpa_device_get_config in
vdpa-dev does not fetch the current device status from the hardware
device, causing the guest os to not receive the latest device status
information.

The hardware updates the config status of the vdpa device and then
notifies the os. The guest os receives an interrupt notification,
triggering a get_config access in the kernel, which then enters qemu
internally. Ultimately, the vhost_vdpa_device_get_config function of
vdpa-dev is called

One scenario encountered is when the device needs to bring down the
vdpa net device. After modifying the status field of virtio_net_config
in the hardware, it sends an interrupt notification. However, the guest
os always receives the STATUS field as VIRTIO_NET_S_LINK_UP.

Signed-off-by: Yuxue Liu <yuxue.liu@jaguarmicro.com>
Acked-by: Jason Wang <jasowang@redhat.com>
Message-Id: <20240408020003.1979-1-yuxue.liu@jaguarmicro.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>

show more ...

2d9a31b307-Apr-2024 Wafer <wafer@jaguarmicro.com>

hw/virtio: Fix packed virtqueue flush used_idx

In the event of writing many chains of descriptors, the device must
write just the id of the last buffer in the descriptor chain, skip
forward the numb

hw/virtio: Fix packed virtqueue flush used_idx

In the event of writing many chains of descriptors, the device must
write just the id of the last buffer in the descriptor chain, skip
forward the number of descriptors in the chain, and then repeat the
operations for the rest of chains.

Current QEMU code writes all the buffer ids consecutively, and then
skips all the buffers altogether. This is a bug, and can be reproduced
with a VirtIONet device with _F_MRG_RXBUB and without
_F_INDIRECT_DESC:

If a virtio-net device has the VIRTIO_NET_F_MRG_RXBUF feature
but not the VIRTIO_RING_F_INDIRECT_DESC feature,
'VirtIONetQueue->rx_vq' will use the merge feature
to store data in multiple 'elems'.
The 'num_buffers' in the virtio header indicates how many elements are merged.
If the value of 'num_buffers' is greater than 1,
all the merged elements will be filled into the descriptor ring.
The 'idx' of the elements should be the value of 'vq->used_idx' plus 'ndescs'.

Fixes: 86044b24e8 ("virtio: basic packed virtqueue support")
Acked-by: Eugenio Pérez <eperezma@redhat.com>
Signed-off-by: Wafer <wafer@jaguarmicro.com>
Message-Id: <20240407015451.5228-2-wafer@jaguarmicro.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>

show more ...

4034159c08-Apr-2024 Michael S. Tsirkin <mst@redhat.com>

Revert "hw/virtio: Add support for VDPA network simulation devices"

This reverts commit cd341fd1ffded978b2aa0b5309b00be7c42e347c.

The patch adds non-upstream code in
include/standard-headers/linux/

Revert "hw/virtio: Add support for VDPA network simulation devices"

This reverts commit cd341fd1ffded978b2aa0b5309b00be7c42e347c.

The patch adds non-upstream code in
include/standard-headers/linux/virtio_pci.h
which would make maintainance harder.

Revert for now.

Suggested-by: Jason Wang <jasowang@redhat.com>
Message-Id: <df6b6b465753e754a19459e8cd61416548f89a42.1712569644.git.mst@redhat.com>
Acked-by: Jason Wang <jasowang@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>

show more ...


/qemu/.gitlab-ci.d/cirrus.yml
/qemu/MAINTAINERS
/qemu/VERSION
/qemu/accel/tcg/plugin-gen.c
/qemu/accel/tcg/translate-all.c
/qemu/block/block-backend.c
/qemu/block/io.c
/qemu/contrib/plugins/execlog.c
/qemu/disas/disas-mon.c
/qemu/disas/disas.c
/qemu/docs/devel/atomics.rst
/qemu/docs/devel/ci-jobs.rst.inc
/qemu/docs/devel/clocks.rst
/qemu/docs/system/arm/sbsa.rst
/qemu/docs/system/device-emulation.rst
/qemu/docs/system/i386/sgx.rst
/qemu/docs/system/ppc/amigang.rst
/qemu/ebpf/ebpf_rss.c
/qemu/fpu/softfloat-specialize.c.inc
/qemu/gdbstub/internals.h
/qemu/gdbstub/system.c
/qemu/hmp-commands.hx
/qemu/hw/arm/raspi4b.c
/qemu/hw/arm/smmu-common.c
/qemu/hw/block/virtio-blk.c
/qemu/hw/core/clock.c
/qemu/hw/display/vga.c
/qemu/hw/i386/kvm/xen_evtchn.c
/qemu/hw/i386/pc.c
/qemu/hw/i386/pc_q35.c
/qemu/hw/intc/arm_gicv3_cpuif.c
/qemu/hw/misc/stm32l4x5_rcc.c
/qemu/hw/net/net_tx_pkt.c
/qemu/hw/net/virtio-net.c
/qemu/hw/nvme/ctrl.c
/qemu/hw/ppc/spapr.c
/qemu/hw/ppc/spapr_nested.c
/qemu/hw/scsi/esp.c
/qemu/hw/scsi/lsi53c895a.c
/qemu/hw/scsi/scsi-generic.c
/qemu/hw/smbios/smbios_legacy_stub.c
/qemu/hw/usb/dev-audio.c
virtio-pci.c
virtio.c
/qemu/include/hw/clock.h
/qemu/include/hw/virtio/virtio-pci.h
/qemu/include/hw/virtio/virtio.h
/qemu/include/net/vhost_net.h
/qemu/include/standard-headers/linux/virtio_pci.h
/qemu/linux-user/mmap.c
/qemu/linux-user/strace.c
/qemu/migration/migration.c
/qemu/monitor/hmp-cmds-target.c
/qemu/net/tap-win32.c
/qemu/net/tap.c
/qemu/plugins/loader.c
/qemu/qapi/qom.json
/qemu/target/arm/hvf/hvf.c
/qemu/target/arm/tcg/translate.c
/qemu/target/hppa/cpu.h
/qemu/target/hppa/helper.h
/qemu/target/hppa/insns.decode
/qemu/target/hppa/int_helper.c
/qemu/target/hppa/sys_helper.c
/qemu/target/hppa/translate.c
/qemu/target/i386/hvf/hvf.c
/qemu/target/i386/tcg/sysemu/excp_helper.c
/qemu/target/ppc/cpu_init.c
/qemu/target/ppc/excp_helper.c
/qemu/target/ppc/gdbstub.c
/qemu/target/ppc/mmu-radix64.c
/qemu/target/tricore/helper.c
/qemu/tcg/optimize.c
/qemu/tests/avocado/ppc_hv_tests.py
/qemu/tests/qemu-iotests/tests/stream-unaligned-prefetch
/qemu/tests/qemu-iotests/tests/stream-unaligned-prefetch.out
/qemu/tests/qtest/libqos/ahci.c
/qemu/tests/qtest/libqos/ahci.h
/qemu/tests/qtest/stm32l4x5_gpio-test.c
/qemu/tests/qtest/virtio-9p-test.c
/qemu/tests/tcg/aarch64/Makefile.target
/qemu/tests/tcg/aarch64/test-2248.c
/qemu/tests/tcg/multiarch/linux/linux-shmat-null.c
/qemu/ui/cocoa.m
2c66de6115-Mar-2024 Kevin Wolf <kwolf@redhat.com>

vdpa-dev: Fix initialisation order to restore VDUSE compatibility

VDUSE requires that virtqueues are first enabled before the DRIVER_OK
status flag is set; with the current API of the kernel module,

vdpa-dev: Fix initialisation order to restore VDUSE compatibility

VDUSE requires that virtqueues are first enabled before the DRIVER_OK
status flag is set; with the current API of the kernel module, it is
impossible to enable the opposite order in our block export code because
userspace is not notified when a virtqueue is enabled.

This requirement also mathces the normal initialisation order as done by
the generic vhost code in QEMU. However, commit 6c482547 accidentally
changed the order for vdpa-dev and broke access to VDUSE devices with
this.

This changes vdpa-dev to use the normal order again and use the standard
vhost callback .vhost_set_vring_enable for this. VDUSE devices can be
used with vdpa-dev again after this fix.

vhost_net intentionally avoided enabling the vrings for vdpa and does
this manually later while it does enable them for other vhost backends.
Reflect this in the vhost_net code and return early for vdpa, so that
the behaviour doesn't change for this device.

Cc: qemu-stable@nongnu.org
Fixes: 6c4825476a43 ('vdpa: move vhost_vdpa_set_vring_ready to the caller')
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-ID: <20240315155949.86066-1-kwolf@redhat.com>
Reviewed-by: Eugenio Pérez <eperezma@redhat.com>
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...


/qemu/.gitlab-ci.d/base.yml
/qemu/.gitlab-ci.d/buildtest-template.yml
/qemu/.gitlab-ci.d/buildtest.yml
/qemu/.gitlab-ci.d/custom-runners.yml
/qemu/.gitlab-ci.d/windows.yml
/qemu/.travis.yml
/qemu/MAINTAINERS
/qemu/VERSION
/qemu/block/mirror.c
/qemu/block/qapi.c
/qemu/blockdev.c
/qemu/bsd-user/main.c
/qemu/bsd-user/signal.c
/qemu/chardev/char-io.c
/qemu/chardev/char-socket.c
/qemu/contrib/plugins/howvec.c
/qemu/crypto/cipher-gcrypt.c.inc
/qemu/docs/devel/migration/CPR.rst
/qemu/docs/devel/migration/features.rst
/qemu/docs/specs/pvpanic.rst
/qemu/docs/system/introduction.rst
/qemu/docs/system/s390x/cpu-topology.rst
/qemu/gdbstub/gdbstub.c
/qemu/gdbstub/internals.h
/qemu/gdbstub/user.c
/qemu/hw/arm/aspeed.c
/qemu/hw/arm/aspeed_ast10x0.c
/qemu/hw/arm/aspeed_ast2600.c
/qemu/hw/arm/virt.c
/qemu/hw/arm/xlnx-versal-virt.c
/qemu/hw/block/m25p80.c
/qemu/hw/gpio/meson.build
/qemu/hw/gpio/pca9552.c
/qemu/hw/gpio/pca9554.c
/qemu/hw/gpio/trace-events
/qemu/hw/i386/Kconfig
/qemu/hw/i386/fw_cfg.c
/qemu/hw/i386/fw_cfg.h
/qemu/hw/i386/pc.c
/qemu/hw/i386/pc_piix.c
/qemu/hw/i386/pc_q35.c
/qemu/hw/intc/loongarch_extioi.c
/qemu/hw/intc/riscv_aplic.c
/qemu/hw/loongarch/virt.c
/qemu/hw/microblaze/xlnx-zynqmp-pmu.c
/qemu/hw/misc/meson.build
/qemu/hw/misc/trace-events
/qemu/hw/net/vhost_net.c
/qemu/hw/nvram/mac_nvram.c
/qemu/hw/ppc/pnv_i2c.c
/qemu/hw/riscv/virt.c
/qemu/hw/smbios/Kconfig
/qemu/hw/smbios/meson.build
/qemu/hw/smbios/smbios.c
/qemu/hw/smbios/smbios_legacy.c
/qemu/hw/smbios/smbios_legacy_stub.c
/qemu/hw/ssi/aspeed_smc.c
/qemu/hw/vfio/iommufd.c
trace-events
vdpa-dev.c
vhost-vdpa.c
vhost.c
/qemu/include/exec/exec-all.h
/qemu/include/exec/ram_addr.h
/qemu/include/gdbstub/user.h
/qemu/include/hw/block/flash.h
/qemu/include/hw/firmware/smbios.h
/qemu/include/hw/gpio/pca9552.h
/qemu/include/hw/gpio/pca9552_regs.h
/qemu/include/hw/gpio/pca9554.h
/qemu/include/hw/gpio/pca9554_regs.h
/qemu/include/io/channel-file.h
/qemu/include/qemu/job.h
/qemu/include/ui/console.h
/qemu/include/ui/kbd-state.h
/qemu/io/channel-file.c
/qemu/linux-user/aarch64/signal.c
/qemu/linux-user/alpha/signal.c
/qemu/linux-user/arm/signal.c
/qemu/linux-user/hexagon/signal.c
/qemu/linux-user/hppa/signal.c
/qemu/linux-user/i386/signal.c
/qemu/linux-user/loongarch64/signal.c
/qemu/linux-user/m68k/signal.c
/qemu/linux-user/main.c
/qemu/linux-user/microblaze/signal.c
/qemu/linux-user/mips/signal.c
/qemu/linux-user/nios2/signal.c
/qemu/linux-user/openrisc/signal.c
/qemu/linux-user/ppc/signal.c
/qemu/linux-user/riscv/signal.c
/qemu/linux-user/s390x/signal.c
/qemu/linux-user/sh4/signal.c
/qemu/linux-user/signal-common.h
/qemu/linux-user/signal.c
/qemu/linux-user/sparc/signal.c
/qemu/linux-user/xtensa/signal.c
/qemu/meson.build
/qemu/migration/block.c
/qemu/migration/fd.c
/qemu/migration/fd.h
/qemu/migration/file.c
/qemu/migration/file.h
/qemu/migration/migration.c
/qemu/migration/multifd.c
/qemu/nbd/server.c
/qemu/net/af-xdp.c
/qemu/pc-bios/edk2-aarch64-code.fd.bz2
/qemu/pc-bios/edk2-arm-code.fd.bz2
/qemu/pc-bios/edk2-i386-secure-code.fd.bz2
/qemu/pc-bios/edk2-riscv-code.fd.bz2
/qemu/qapi/block-core.json
/qemu/qapi/block.json
/qemu/qapi/common.json
/qemu/qapi/control.json
/qemu/qapi/crypto.json
/qemu/qapi/cxl.json
/qemu/qapi/dump.json
/qemu/qapi/ebpf.json
/qemu/qapi/machine-target.json
/qemu/qapi/machine.json
/qemu/qapi/migration.json
/qemu/qapi/misc.json
/qemu/qapi/net.json
/qemu/qapi/pragma.json
/qemu/qapi/qom.json
/qemu/qapi/replay.json
/qemu/qapi/run-state.json
/qemu/qapi/sockets.json
/qemu/qapi/stats.json
/qemu/qapi/ui.json
/qemu/qapi/virtio.json
/qemu/qga/qapi-schema.json
/qemu/roms/Makefile
/qemu/roms/edk2-build.config
/qemu/system/physmem.c
/qemu/system/qemu-seccomp.c
/qemu/system/vl.c
/qemu/target/hppa/insns.decode
/qemu/target/hppa/mem_helper.c
/qemu/target/hppa/op_helper.c
/qemu/target/hppa/translate.c
/qemu/target/i386/cpu.c
/qemu/target/i386/cpu.h
/qemu/target/i386/helper.c
/qemu/target/loongarch/cpu-csr.h
/qemu/target/loongarch/cpu.c
/qemu/target/loongarch/internals.h
/qemu/target/loongarch/tcg/insn_trans/trans_atomic.c.inc
/qemu/target/loongarch/tcg/tlb_helper.c
/qemu/target/riscv/cpu.c
/qemu/target/riscv/cpu_cfg.h
/qemu/target/riscv/cpu_helper.c
/qemu/target/riscv/insn_trans/trans_rvbf16.c.inc
/qemu/target/riscv/insn_trans/trans_rvv.c.inc
/qemu/target/riscv/insn_trans/trans_rvvk.c.inc
/qemu/target/riscv/kvm/kvm-cpu.c
/qemu/target/riscv/kvm/kvm_riscv.h
/qemu/target/riscv/tcg/tcg-cpu.c
/qemu/target/riscv/translate.c
/qemu/target/riscv/vcrypto_helper.c
/qemu/target/riscv/vector_helper.c
/qemu/target/riscv/vector_internals.c
/qemu/target/riscv/vector_internals.h
/qemu/target/s390x/cpu_models.c
/qemu/target/s390x/tcg/translate.c
/qemu/target/sparc/cpu.c
/qemu/tests/avocado/machine_aarch64_sbsaref.py
/qemu/tests/data/acpi/q35/SSDT.dimmpxm
/qemu/tests/data/smbios/type11_blob
/qemu/tests/data/smbios/type11_blob.legacy
/qemu/tests/qemu-iotests/033
/qemu/tests/qemu-iotests/066
/qemu/tests/qemu-iotests/114
/qemu/tests/qemu-iotests/130
/qemu/tests/qemu-iotests/134
/qemu/tests/qemu-iotests/156
/qemu/tests/qemu-iotests/157
/qemu/tests/qemu-iotests/158
/qemu/tests/qemu-iotests/176.out
/qemu/tests/qemu-iotests/188
/qemu/tests/qemu-iotests/189
/qemu/tests/qemu-iotests/198
/qemu/tests/qemu-iotests/198.out
/qemu/tests/qemu-iotests/206.out
/qemu/tests/qemu-iotests/227
/qemu/tests/qemu-iotests/261
/qemu/tests/qemu-iotests/263
/qemu/tests/qemu-iotests/267.out
/qemu/tests/qemu-iotests/284
/qemu/tests/qemu-iotests/286
/qemu/tests/qemu-iotests/286.out
/qemu/tests/qemu-iotests/tests/detect-zeroes-registered-buf
/qemu/tests/qemu-iotests/tests/iothreads-nbd-export
/qemu/tests/qemu-iotests/tests/iothreads-nbd-export.out
/qemu/tests/qemu-iotests/tests/qcow2-internal-snapshots
/qemu/tests/qemu-iotests/tests/qcow2-internal-snapshots.out
/qemu/tests/qemu-iotests/tests/qsd-jobs
/qemu/tests/qtest/bios-tables-test.c
/qemu/tests/qtest/libqos/virtio.c
/qemu/tests/qtest/libqtest.c
/qemu/tests/qtest/migration-test.c
/qemu/tests/qtest/npcm7xx_emc-test.c
/qemu/tests/qtest/pca9552-test.c
/qemu/tests/qtest/pnv-host-i2c-test.c
/qemu/tests/tcg/multiarch/Makefile.target
/qemu/tests/tcg/multiarch/gdbstub/test-qxfer-siginfo-read.py
/qemu/tests/tcg/multiarch/segfault.c
/qemu/tests/tcg/s390x/Makefile.target
/qemu/tests/tcg/s390x/ts.c
/qemu/tests/unit/meson.build
/qemu/tests/unit/socket-helpers.c
/qemu/tests/unit/test-crypto-cipher.c
/qemu/tests/unit/test-throttle.c
/qemu/tests/vm/basevm.py
/qemu/ui/cocoa.m
/qemu/ui/console-priv.h
/qemu/ui/console-vc-stubs.c
/qemu/ui/console-vc.c
/qemu/ui/console.c
/qemu/ui/curses.c
/qemu/ui/kbd-state.c
/qemu/ui/meson.build
/qemu/ui/vnc.c
/qemu/util/qemu-coroutine.c
01e7e49207-Mar-2024 Eric Auger <eric.auger@redhat.com>

virtio-iommu: Add an option to define the input range width

aw-bits is a new option that allows to set the bit width of
the input address range. This value will be used as a default for
the device c

virtio-iommu: Add an option to define the input range width

aw-bits is a new option that allows to set the bit width of
the input address range. This value will be used as a default for
the device config input_range.end. By default it is set to 64 bits
which is the current value.

Signed-off-by: Eric Auger <eric.auger@redhat.com>
Reviewed-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Message-Id: <20240307134445.92296-7-eric.auger@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>

show more ...

fdda908f07-Mar-2024 Eric Auger <eric.auger@redhat.com>

virtio-iommu: Trace domain range limits as unsigned int

Use %u format to trace domain_range limits.

Signed-off-by: Eric Auger <eric.auger@redhat.com>
Reviewed-by: Zhenzhong Duan <zhenzhong.duan@int

virtio-iommu: Trace domain range limits as unsigned int

Use %u format to trace domain_range limits.

Signed-off-by: Eric Auger <eric.auger@redhat.com>
Reviewed-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Message-Id: <20240307134445.92296-6-eric.auger@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>

show more ...

9dd5e80807-Mar-2024 Eric Auger <eric.auger@redhat.com>

virtio-iommu: Change the default granule to the host page size

We used to set the default granule to 4KB but with VFIO assignment
it makes more sense to use the actual host page size.

Indeed when h

virtio-iommu: Change the default granule to the host page size

We used to set the default granule to 4KB but with VFIO assignment
it makes more sense to use the actual host page size.

Indeed when hotplugging a VFIO device protected by a virtio-iommu
on a 64kB/64kB host/guest config, we current get a qemu crash:

"vfio: DMA mapping failed, unable to continue"

This is due to the hot-attached VFIO device calling
memory_region_iommu_set_page_size_mask() with 64kB granule
whereas the virtio-iommu granule was already frozen to 4KB on
machine init done.

Set the granule property to "host" and introduce a new compat.
The page size mask used before 9.0 was qemu_target_page_mask().
Since the virtio-iommu currently only supports x86_64 and aarch64,
this matched a 4KB granule.

Note that the new default will prevent 4kB guest on 64kB host
because the granule will be set to 64kB which would be larger
than the guest page size. In that situation, the virtio-iommu
driver fails on viommu_domain_finalise() with
"granule 0x10000 larger than system page size 0x1000".

In that case the workaround is to request 4K granule.

The current limitation of global granule in the virtio-iommu
should be removed and turned into per domain granule. But
until we get this upgraded, this new default is probably
better because I don't think anyone is currently interested in
running a 4KB page size guest with virtio-iommu on a 64KB host.
However supporting 64kB guest on 64kB host with virtio-iommu and
VFIO looks a more important feature.

Signed-off-by: Eric Auger <eric.auger@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
Message-Id: <20240307134445.92296-4-eric.auger@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>

show more ...

294ac5fe07-Mar-2024 Eric Auger <eric.auger@redhat.com>

virtio-iommu: Add a granule property

This allows to choose which granule will be used by
default by the virtio-iommu. Current page size mask
default is qemu_target_page_mask so this translates
into

virtio-iommu: Add a granule property

This allows to choose which granule will be used by
default by the virtio-iommu. Current page size mask
default is qemu_target_page_mask so this translates
into a 4k granule on ARM and x86_64 where virtio-iommu
is supported.

Signed-off-by: Eric Auger <eric.auger@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Zhenzhong Duan <zhenzhong.duan@intel.com>

Message-Id: <20240307134445.92296-3-eric.auger@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>

show more ...

cd341fd121-Feb-2024 Hao Chen <chenh@yusur.tech>

hw/virtio: Add support for VDPA network simulation devices

This patch adds support for VDPA network simulation devices.
The device is developed based on virtio-net and tap backend,
and supports hard

hw/virtio: Add support for VDPA network simulation devices

This patch adds support for VDPA network simulation devices.
The device is developed based on virtio-net and tap backend,
and supports hardware live migration function.

For more details, please refer to "docs/system/devices/vdpa-net.rst"

Signed-off-by: Hao Chen <chenh@yusur.tech>
Message-Id: <20240221073802.2888022-1-chenh@yusur.tech>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>

show more ...

043e127a19-Feb-2024 Albert Esteve <aesteve@redhat.com>

hw/virtio: check owner for removing objects

Shared objects lack spoofing protection.
For VHOST_USER_BACKEND_SHARED_OBJECT_REMOVE messages
received by the vhost-user interface, any backend was
allowe

hw/virtio: check owner for removing objects

Shared objects lack spoofing protection.
For VHOST_USER_BACKEND_SHARED_OBJECT_REMOVE messages
received by the vhost-user interface, any backend was
allowed to remove entries from the shared table just
by knowing the UUID. Only the owner of the entry
shall be allowed to removed their resources
from the table.

To fix that, add a check for all
*SHARED_OBJECT_REMOVE messages received.
A vhost device can only remove TYPE_VHOST_DEV
entries that are owned by them, otherwise skip
the removal, and inform the device that the entry
has not been removed in the answer.

Signed-off-by: Albert Esteve <aesteve@redhat.com>
Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-Id: <20240219143423.272012-2-aesteve@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>

show more ...

a8516e5c15-Feb-2024 Eugenio Pérez <eperezma@redhat.com>

vdpa: trace skipped memory sections

Sometimes, certain parts are not being skipped in
vhost_vdpa_listener_region_del, but they are skipped in
vhost_vdpa_listener_region_add, or vice versa. The vhos

vdpa: trace skipped memory sections

Sometimes, certain parts are not being skipped in
vhost_vdpa_listener_region_del, but they are skipped in
vhost_vdpa_listener_region_add, or vice versa. The vhost-vdpa code
expects all parts to maintain their properties, so we're adding a trace
to help with debugging when any part is skipped.

Signed-off-by: Eugenio Pérez <eperezma@redhat.com>
Message-Id: <20240215103616.330518-3-eperezma@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>

show more ...

a558345715-Feb-2024 Eugenio Pérez <eperezma@redhat.com>

vdpa: stash memory region properties in vars

Next changes uses this variables, so avoid call repeatedly to memory
region functions. No functional change intended.

Signed-off-by: Eugenio Pérez <eper

vdpa: stash memory region properties in vars

Next changes uses this variables, so avoid call repeatedly to memory
region functions. No functional change intended.

Signed-off-by: Eugenio Pérez <eperezma@redhat.com>
Message-Id: <20240215103616.330518-2-eperezma@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>

show more ...

9ed6280914-Feb-2024 Si-Wei Liu <si-wei.liu@oracle.com>

vdpa: fix network breakage after cancelling migration

Fix an issue where cancellation of ongoing migration ends up
with no network connectivity.

When canceling migration, SVQ will be switched back

vdpa: fix network breakage after cancelling migration

Fix an issue where cancellation of ongoing migration ends up
with no network connectivity.

When canceling migration, SVQ will be switched back to the
passthrough mode, but the right call fd is not programed to
the device and the svq's own call fd is still used. At the
point of this transitioning period, the shadow_vqs_enabled
hadn't been set back to false yet, causing the installation
of call fd inadvertently bypassed.

Message-Id: <1707910082-10243-13-git-send-email-si-wei.liu@oracle.com>
Fixes: a8ac88585da1 ("vhost: Add Shadow VirtQueue call forwarding capabilities")
Cc: Eugenio Pérez <eperezma@redhat.com>
Acked-by: Jason Wang <jasowang@redhat.com>
Signed-off-by: Si-Wei Liu <si-wei.liu@oracle.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>

show more ...

19a060bc14-Feb-2024 Si-Wei Liu <si-wei.liu@oracle.com>

vdpa: add vhost_vdpa_set_dev_vring_base trace for svq mode

For better debuggability and observability.

Message-Id: <1707910082-10243-8-git-send-email-si-wei.liu@oracle.com>
Reviewed-by: Eugenio Pér

vdpa: add vhost_vdpa_set_dev_vring_base trace for svq mode

For better debuggability and observability.

Message-Id: <1707910082-10243-8-git-send-email-si-wei.liu@oracle.com>
Reviewed-by: Eugenio Pérez <eperezma@redhat.com>
Acked-by: Jason Wang <jasowang@redhat.com>
Signed-off-by: Si-Wei Liu <si-wei.liu@oracle.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>

show more ...

6ec0a74614-Feb-2024 Si-Wei Liu <si-wei.liu@oracle.com>

vdpa: add vhost_vdpa_get_vring_base trace for svq mode

For better debuggability and observability.

Message-Id: <1707910082-10243-7-git-send-email-si-wei.liu@oracle.com>
Reviewed-by: Eugenio Pérez <

vdpa: add vhost_vdpa_get_vring_base trace for svq mode

For better debuggability and observability.

Message-Id: <1707910082-10243-7-git-send-email-si-wei.liu@oracle.com>
Reviewed-by: Eugenio Pérez <eperezma@redhat.com>
Acked-by: Jason Wang <jasowang@redhat.com>
Signed-off-by: Si-Wei Liu <si-wei.liu@oracle.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>

show more ...

c812b06514-Feb-2024 Si-Wei Liu <si-wei.liu@oracle.com>

vdpa: factor out vhost_vdpa_last_dev

Generalize duplicated condition check for the last vq of vdpa
device to a common function.

Message-Id: <1707910082-10243-4-git-send-email-si-wei.liu@oracle.com>

vdpa: factor out vhost_vdpa_last_dev

Generalize duplicated condition check for the last vq of vdpa
device to a common function.

Message-Id: <1707910082-10243-4-git-send-email-si-wei.liu@oracle.com>
Reviewed-by: Eugenio Pérez <eperezma@redhat.com>
Acked-by: Jason Wang <jasowang@redhat.com>
Signed-off-by: Si-Wei Liu <si-wei.liu@oracle.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>

show more ...


/qemu/.gitlab-ci.d/base.yml
/qemu/.gitlab-ci.d/buildtest.yml
/qemu/.gitlab-ci.d/cirrus.yml
/qemu/.gitlab-ci.d/opensbi.yml
/qemu/MAINTAINERS
/qemu/accel/tcg/cpu-exec.c
/qemu/accel/tcg/cputlb.c
/qemu/accel/tcg/plugin-gen.c
/qemu/accel/tcg/plugin-helpers.h
/qemu/accel/tcg/translate-all.c
/qemu/accel/tcg/user-exec.c
/qemu/accel/xen/xen-all.c
/qemu/blockdev.c
/qemu/bsd-user/bsd-file.h
/qemu/bsd-user/freebsd/os-proc.h
/qemu/bsd-user/main.c
/qemu/bsd-user/qemu.h
/qemu/bsd-user/signal.c
/qemu/chardev/char-fe.c
/qemu/chardev/char-socket.c
/qemu/configs/devices/mips-softmmu/common.mak
/qemu/configs/devices/mips64el-softmmu/default.mak
/qemu/contrib/plugins/cache.c
/qemu/contrib/plugins/execlog.c
/qemu/contrib/plugins/hotblocks.c
/qemu/contrib/plugins/howvec.c
/qemu/cpu-target.c
/qemu/disas/disas.c
/qemu/disas/hppa.c
/qemu/disas/riscv.c
/qemu/docs/about/deprecated.rst
/qemu/docs/about/removed-features.rst
/qemu/docs/conf.py
/qemu/docs/devel/acpi-bits.rst
/qemu/docs/devel/migration/features.rst
/qemu/docs/devel/migration/mapped-ram.rst
/qemu/docs/devel/multi-thread-tcg.rst
/qemu/docs/devel/qapi-code-gen.rst
/qemu/docs/devel/tcg-plugins.rst
/qemu/docs/devel/writing-monitor-commands.rst
/qemu/docs/interop/firmware.json
/qemu/docs/system/arm/b-l475e-iot01a.rst
/qemu/docs/system/arm/emulation.rst
/qemu/docs/system/arm/raspi.rst
/qemu/docs/user/main.rst
/qemu/gdbstub/gdbstub.c
/qemu/gdbstub/internals.h
/qemu/gdbstub/user-target.c
/qemu/gdbstub/user.c
/qemu/hmp-commands-info.hx
/qemu/hw/acpi/aml-build.c
/qemu/hw/arm/Kconfig
/qemu/hw/arm/b-l475e-iot01a.c
/qemu/hw/arm/bcm2835_peripherals.c
/qemu/hw/arm/stm32l4x5_soc.c
/qemu/hw/arm/virt-acpi-build.c
/qemu/hw/arm/xen_arm.c
/qemu/hw/char/pl011.c
/qemu/hw/char/xen_console.c
/qemu/hw/core/cpu-common.c
/qemu/hw/core/machine-smp.c
/qemu/hw/core/qdev-properties-system.c
/qemu/hw/cxl/cxl-cdat.c
/qemu/hw/display/Kconfig
/qemu/hw/gpio/Kconfig
/qemu/hw/gpio/meson.build
/qemu/hw/gpio/stm32l4x5_gpio.c
/qemu/hw/gpio/trace-events
/qemu/hw/hyperv/hv-balloon.c
/qemu/hw/hyperv/hyperv.c
/qemu/hw/hyperv/vmbus.c
/qemu/hw/i2c/Kconfig
/qemu/hw/i2c/bcm2835_i2c.c
/qemu/hw/i2c/meson.build
/qemu/hw/i386/meson.build
/qemu/hw/i386/pc.c
/qemu/hw/i386/pc_piix.c
/qemu/hw/i386/vapic.c
/qemu/hw/i386/xen/meson.build
/qemu/hw/i386/xen/xen-hvm.c
/qemu/hw/ide/core.c
/qemu/hw/ide/ide-dev.c
/qemu/hw/ide/ide-internal.h
/qemu/hw/intc/Kconfig
/qemu/hw/intc/apic.c
/qemu/hw/intc/grlib_irqmp.c
/qemu/hw/intc/riscv_aplic.c
/qemu/hw/loongarch/acpi-build.c
/qemu/hw/loongarch/virt.c
/qemu/hw/m68k/mcf5208.c
/qemu/hw/mem/cxl_type3.c
/qemu/hw/mips/Kconfig
/qemu/hw/misc/Kconfig
/qemu/hw/misc/meson.build
/qemu/hw/misc/stm32l4x5_rcc.c
/qemu/hw/misc/stm32l4x5_syscfg.c
/qemu/hw/misc/trace-events
/qemu/hw/net/virtio-net.c
/qemu/hw/net/xen_nic.c
/qemu/hw/pci-bridge/cxl_upstream.c
/qemu/hw/pci/msi.c
/qemu/hw/ppc/mac_newworld.c
/qemu/hw/remote/remote-obj.c
/qemu/hw/riscv/boot.c
/qemu/hw/riscv/virt-acpi-build.c
/qemu/hw/riscv/virt.c
/qemu/hw/rtc/sun4v-rtc.c
/qemu/hw/scsi/lsi53c895a.c
/qemu/hw/scsi/trace-events
/qemu/hw/tpm/tpm_ppi.c
/qemu/hw/usb/bus.c
/qemu/hw/vfio/migration.c
/qemu/hw/vfio/pci.c
/qemu/hw/vfio/trace-events
vhost-vdpa.c
/qemu/hw/xen/xen-hvm-common.c
/qemu/hw/xen/xen_pt.c
/qemu/hw/xen/xen_pt.h
/qemu/hw/xen/xen_pt_config_init.c
/qemu/hw/xen/xen_pt_graphics.c
/qemu/hw/xen/xen_pt_stub.c
/qemu/include/disas/dis-asm.h
/qemu/include/exec/cpu-all.h
/qemu/include/exec/cpu-common.h
/qemu/include/exec/gdbstub.h
/qemu/include/exec/memattrs.h
/qemu/include/exec/ramblock.h
/qemu/include/gdbstub/user.h
/qemu/include/hw/acpi/acpi-defs.h
/qemu/include/hw/acpi/aml-build.h
/qemu/include/hw/arm/bcm2835_peripherals.h
/qemu/include/hw/arm/stm32l4x5_soc.h
/qemu/include/hw/core/cpu.h
/qemu/include/hw/cxl/cxl_cdat.h
/qemu/include/hw/gpio/stm32l4x5_gpio.h
/qemu/include/hw/hyperv/dynmem-proto.h
/qemu/include/hw/hyperv/hyperv.h
/qemu/include/hw/i2c/bcm2835_i2c.h
/qemu/include/hw/i386/pc.h
/qemu/include/hw/ide/ide-dev.h
/qemu/include/hw/loongarch/virt.h
/qemu/include/hw/misc/stm32l4x5_rcc.h
/qemu/include/hw/misc/stm32l4x5_rcc_internals.h
/qemu/include/hw/misc/stm32l4x5_syscfg.h
/qemu/include/hw/qdev-properties-system.h
/qemu/include/hw/rtc/sun4v-rtc.h
/qemu/include/hw/vfio/vfio-common.h
/qemu/include/hw/virtio/virtio-net.h
/qemu/include/hw/xen/xen-hvm-common.h
/qemu/include/hw/xen/xen_igd.h
/qemu/include/io/channel.h
/qemu/include/migration/misc.h
/qemu/include/migration/qemu-file-types.h
/qemu/include/qapi/qmp/qerror.h
/qemu/include/qapi/type-helpers.h
/qemu/include/qapi/util.h
/qemu/include/qemu/atomic.h
/qemu/include/qemu/bitops.h
/qemu/include/qemu/notify.h
/qemu/include/qemu/plugin.h
/qemu/include/qemu/qemu-plugin.h
/qemu/include/qemu/typedefs.h
/qemu/include/standard-headers/drm/drm_fourcc.h
/qemu/include/standard-headers/linux/ethtool.h
/qemu/include/standard-headers/linux/virtio_config.h
/qemu/include/standard-headers/linux/virtio_pci.h
/qemu/include/standard-headers/linux/virtio_pmem.h
/qemu/include/sysemu/sysemu.h
/qemu/include/sysemu/xen-mapcache.h
/qemu/include/sysemu/xen.h
/qemu/include/user/safe-syscall.h
/qemu/io/channel-file.c
/qemu/io/channel.c
/qemu/linux-headers/asm-generic/unistd.h
/qemu/linux-headers/asm-mips/mman.h
/qemu/linux-headers/asm-mips/unistd_n32.h
/qemu/linux-headers/asm-mips/unistd_n64.h
/qemu/linux-headers/asm-mips/unistd_o32.h
/qemu/linux-headers/asm-powerpc/unistd_32.h
/qemu/linux-headers/asm-powerpc/unistd_64.h
/qemu/linux-headers/asm-riscv/kvm.h
/qemu/linux-headers/asm-s390/unistd_32.h
/qemu/linux-headers/asm-s390/unistd_64.h
/qemu/linux-headers/asm-x86/kvm.h
/qemu/linux-headers/asm-x86/unistd_32.h
/qemu/linux-headers/asm-x86/unistd_64.h
/qemu/linux-headers/asm-x86/unistd_x32.h
/qemu/linux-headers/linux/iommufd.h
/qemu/linux-headers/linux/kvm.h
/qemu/linux-headers/linux/userfaultfd.h
/qemu/linux-headers/linux/vfio.h
/qemu/linux-user/aarch64/cpu_loop.c
/qemu/linux-user/arm/cpu_loop.c
/qemu/linux-user/arm/signal.c
/qemu/linux-user/cris/cpu_loop.c
/qemu/linux-user/elfload.c
/qemu/linux-user/hppa/signal.c
/qemu/linux-user/linuxload.c
/qemu/linux-user/loongarch64/target_syscall.h
/qemu/linux-user/m68k/cpu_loop.c
/qemu/linux-user/m68k/target_cpu.h
/qemu/linux-user/main.c
/qemu/linux-user/mips/cpu_loop.c
/qemu/linux-user/mmap.c
/qemu/linux-user/nios2/cpu_loop.c
/qemu/linux-user/ppc/signal.c
/qemu/linux-user/qemu.h
/qemu/linux-user/riscv/cpu_loop.c
/qemu/linux-user/signal-common.h
/qemu/linux-user/signal.c
/qemu/linux-user/strace.c
/qemu/linux-user/strace.list
/qemu/linux-user/syscall.c
/qemu/linux-user/user-internals.h
/qemu/linux-user/vm86.c
/qemu/linux-user/xtensa/signal.c
/qemu/meson.build
/qemu/migration/exec.c
/qemu/migration/fd.c
/qemu/migration/fd.h
/qemu/migration/file.c
/qemu/migration/file.h
/qemu/migration/migration.c
/qemu/migration/migration.h
/qemu/migration/multifd-zlib.c
/qemu/migration/multifd-zstd.c
/qemu/migration/multifd.c
/qemu/migration/multifd.h
/qemu/migration/options.c
/qemu/migration/options.h
/qemu/migration/qemu-file.c
/qemu/migration/qemu-file.h
/qemu/migration/ram.c
/qemu/migration/ram.h
/qemu/migration/savevm.c
/qemu/migration/trace-events
/qemu/net/vhost-vdpa.c
/qemu/pc-bios/README
/qemu/pc-bios/meson.build
/qemu/plugins/api.c
/qemu/plugins/core.c
/qemu/plugins/plugin.h
/qemu/plugins/qemu-plugins.symbols
/qemu/qapi/block-core.json
/qemu/qapi/block-export.json
/qemu/qapi/block.json
/qemu/qapi/char.json
/qemu/qapi/dump.json
/qemu/qapi/machine-target.json
/qemu/qapi/machine.json
/qemu/qapi/migration.json
/qemu/qapi/misc-target.json
/qemu/qapi/misc.json
/qemu/qapi/net.json
/qemu/qapi/qapi-type-helpers.c
/qemu/qapi/qdev.json
/qemu/qapi/qom.json
/qemu/qapi/run-state.json
/qemu/qapi/tpm.json
/qemu/qapi/transaction.json
/qemu/qapi/ui.json
/qemu/qapi/virtio.json
/qemu/qapi/yank.json
/qemu/qemu-options.hx
/qemu/qga/qapi-schema.json
/qemu/replay/replay.c
/qemu/roms/Makefile
/qemu/scripts/coverity-scan/run-coverity-scan
/qemu/scripts/feature_to_c.py
/qemu/scripts/make-release
/qemu/scripts/qapi/parser.py
/qemu/semihosting/arm-compat-semi.c
/qemu/stubs/xen-hw-stub.c
/qemu/system/globals.c
/qemu/system/physmem.c
/qemu/system/qdev-monitor.c
/qemu/system/vl.c
/qemu/target/alpha/cpu-param.h
/qemu/target/arm/cpu-features.h
/qemu/target/arm/cpu-param.h
/qemu/target/arm/cpu.c
/qemu/target/arm/cpu.h
/qemu/target/arm/cpu64.c
/qemu/target/arm/gdbstub.c
/qemu/target/arm/gdbstub64.c
/qemu/target/arm/helper.c
/qemu/target/arm/internals.h
/qemu/target/arm/meson.build
/qemu/target/arm/ptw.c
/qemu/target/arm/tcg/cpu-v7m.c
/qemu/target/arm/tcg/cpu32.c
/qemu/target/arm/tcg/cpu64.c
/qemu/target/arm/tcg/hflags.c
/qemu/target/arm/tcg/meson.build
/qemu/target/arm/tcg/sme_helper.c
/qemu/target/arm/tcg/translate.c
/qemu/target/arm/trace-events
/qemu/target/avr/cpu.c
/qemu/target/hexagon/cpu.c
/qemu/target/hexagon/gdbstub.c
/qemu/target/hexagon/internal.h
/qemu/target/hppa/cpu.c
/qemu/target/hppa/helper.c
/qemu/target/hppa/mem_helper.c
/qemu/target/hppa/op_helper.c
/qemu/target/i386/cpu.c
/qemu/target/i386/cpu.h
/qemu/target/i386/kvm/hyperv-stub.c
/qemu/target/i386/kvm/hyperv.c
/qemu/target/i386/kvm/hyperv.h
/qemu/target/i386/kvm/kvm.c
/qemu/target/i386/sev.c
/qemu/target/i386/tcg/sysemu/excp_helper.c
/qemu/target/i386/tcg/sysemu/misc_helper.c
/qemu/target/i386/tcg/sysemu/svm_helper.c
/qemu/target/loongarch/cpu.c
/qemu/target/loongarch/disas.c
/qemu/target/loongarch/gdbstub.c
/qemu/target/m68k/cpu.c
/qemu/target/m68k/helper.c
/qemu/target/microblaze/cpu.c
/qemu/target/microblaze/cpu.h
/qemu/target/microblaze/gdbstub.c
/qemu/target/ppc/cpu-param.h
/qemu/target/ppc/cpu-qom.h
/qemu/target/ppc/cpu.h
/qemu/target/ppc/cpu_init.c
/qemu/target/ppc/gdbstub.c
/qemu/target/riscv/cpu.c
/qemu/target/riscv/cpu.h
/qemu/target/riscv/cpu_cfg.h
/qemu/target/riscv/cpu_helper.c
/qemu/target/riscv/csr.c
/qemu/target/riscv/gdbstub.c
/qemu/target/riscv/insn_trans/trans_rva.c.inc
/qemu/target/riscv/insn_trans/trans_rvi.c.inc
/qemu/target/riscv/insn_trans/trans_rvv.c.inc
/qemu/target/riscv/insn_trans/trans_rvzce.c.inc
/qemu/target/riscv/kvm/kvm-cpu.c
/qemu/target/riscv/machine.c
/qemu/target/riscv/pmu.h
/qemu/target/riscv/tcg/tcg-cpu.c
/qemu/target/riscv/translate.c
/qemu/target/riscv/vector_helper.c
/qemu/target/rx/cpu.c
/qemu/target/s390x/cpu.c
/qemu/target/s390x/cpu.h
/qemu/target/s390x/gdbstub.c
/qemu/target/sparc/mmu_helper.c
/qemu/tcg/aarch64/tcg-target.h
/qemu/tcg/optimize.c
/qemu/tests/plugin/bb.c
/qemu/tests/plugin/inline.c
/qemu/tests/plugin/insn.c
/qemu/tests/plugin/mem.c
/qemu/tests/plugin/meson.build
/qemu/tests/qapi-schema/doc-good.json
/qemu/tests/qapi-schema/doc-good.out
/qemu/tests/qapi-schema/doc-good.txt
/qemu/tests/qapi-schema/doc-invalid-return.err
/qemu/tests/qapi-schema/doc-invalid-return2.err
/qemu/tests/qapi-schema/doc-invalid-return2.json
/qemu/tests/qapi-schema/doc-invalid-return2.out
/qemu/tests/qapi-schema/meson.build
/qemu/tests/qtest/bcm2835-i2c-test.c
/qemu/tests/qtest/libqos/meson.build
/qemu/tests/qtest/libqos/qgraph.h
/qemu/tests/qtest/libqos/riscv-virt-machine.c
/qemu/tests/qtest/libqos/virtio.c
/qemu/tests/qtest/meson.build
/qemu/tests/qtest/migration-test.c
/qemu/tests/qtest/stm32l4x5_gpio-test.c
/qemu/tests/qtest/stm32l4x5_rcc-test.c
/qemu/tests/tcg/Makefile.target
/qemu/tests/tcg/aarch64/Makefile.target
/qemu/tests/tcg/aarch64/semicall.h
/qemu/tests/tcg/aarch64/sme-smopa-1.c
/qemu/tests/tcg/aarch64/sme-smopa-2.c
/qemu/tests/tcg/alpha/Makefile.target
/qemu/tests/tcg/arm/Makefile.target
/qemu/tests/tcg/arm/semicall.h
/qemu/tests/tcg/hppa/Makefile.target
/qemu/tests/tcg/i386/Makefile.target
/qemu/tests/tcg/i386/system/boot.S
/qemu/tests/tcg/m68k/Makefile.target
/qemu/tests/tcg/multiarch/Makefile.target
/qemu/tests/tcg/multiarch/arm-compat-semi/semiconsole.c
/qemu/tests/tcg/multiarch/arm-compat-semi/semihosting.c
/qemu/tests/tcg/multiarch/float_convd.c
/qemu/tests/tcg/multiarch/float_convs.c
/qemu/tests/tcg/multiarch/float_helpers.h
/qemu/tests/tcg/multiarch/float_madds.c
/qemu/tests/tcg/multiarch/follow-fork-mode.c
/qemu/tests/tcg/multiarch/gdbstub/follow-fork-mode-child.py
/qemu/tests/tcg/multiarch/gdbstub/follow-fork-mode-parent.py
/qemu/tests/tcg/multiarch/libs/float_helpers.c
/qemu/tests/tcg/multiarch/linux/linux-madvise.c
/qemu/tests/tcg/multiarch/linux/linux-shmat-maps.c
/qemu/tests/tcg/riscv64/Makefile.target
/qemu/tests/tcg/riscv64/semicall.h
/qemu/tests/tcg/sh4/Makefile.target
/qemu/tests/tcg/x86_64/system/boot.S
/qemu/tests/unit/test-smp-parse.c
/qemu/tests/unit/test-util-sockets.c
/qemu/tests/vm/Makefile.include
/qemu/tests/vm/basevm.py
/qemu/tests/vm/openbsd
/qemu/ui/cocoa.m
/qemu/ui/spice-core.c
/qemu/util/oslib-posix.c
ee1004bb29-Jan-2024 Philippe Mathieu-Daudé <philmd@linaro.org>

bulk: Access existing variables initialized to &S->F when available

When a variable is initialized to &struct->field, use it
in place. Rationale: while this makes the code more concise,
this also he

bulk: Access existing variables initialized to &S->F when available

When a variable is initialized to &struct->field, use it
in place. Rationale: while this makes the code more concise,
this also helps static analyzers.

Mechanical change using the following Coccinelle spatch script:

@@
type S, F;
identifier s, m, v;
@@
S *s;
...
F *v = &s->m;
<+...
- &s->m
+ v
...+>

Inspired-by: Zhao Liu <zhao1.liu@intel.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-ID: <20240129164514.73104-2-philmd@linaro.org>
Acked-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
Reviewed-by: Anthony PERARD <anthony.perard@citrix.com>
[thuth: Dropped hunks that need a rebase, and fixed sizeof() in pmu_realize()]
Signed-off-by: Thomas Huth <thuth@redhat.com>

show more ...

ff88dbec11-Mar-2024 Zhao Liu <zhao1.liu@intel.com>

hw/virtio/vhost: Fix missing ERRP_GUARD() for error_prepend()

As the comment in qapi/error, passing @errp to error_prepend() requires
ERRP_GUARD():

* = Why, when and how to use ERRP_GUARD() =
*
* W

hw/virtio/vhost: Fix missing ERRP_GUARD() for error_prepend()

As the comment in qapi/error, passing @errp to error_prepend() requires
ERRP_GUARD():

* = Why, when and how to use ERRP_GUARD() =
*
* Without ERRP_GUARD(), use of the @errp parameter is restricted:
...
* - It should not be passed to error_prepend(), error_vprepend() or
* error_append_hint(), because that doesn't work with &error_fatal.
* ERRP_GUARD() lifts these restrictions.
*
* To use ERRP_GUARD(), add it right at the beginning of the function.
* @errp can then be used without worrying about the argument being
* NULL or &error_fatal.

ERRP_GUARD() could avoid the case when @errp is &error_fatal, the user
can't see this additional information, because exit() happens in
error_setg earlier than information is added [1].

In hw/virtio/vhost.c, there are 2 functions passing @errp to
error_prepend() without ERRP_GUARD():
- vhost_save_backend_state()
- vhost_load_backend_state()

Their @errp both points to callers' @local_err. However, as the APIs
defined in include/hw/virtio/vhost.h, it is necessary to protect their
@errp with ERRP_GUARD().

To follow the requirement of @errp, add missing ERRP_GUARD() at their
beginning.

[1]: Issue description in the commit message of commit ae7c80a7bd73
("error: New macro ERRP_GUARD()").

Cc: "Michael S. Tsirkin" <mst@redhat.com>
Signed-off-by: Zhao Liu <zhao1.liu@intel.com>
Message-ID: <20240311033822.3142585-27-zhao1.liu@linux.intel.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>

show more ...

12345678910>>...63