History log of /openbmc/qemu/block/ (Results 101 – 125 of 6196)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
53e8868d26-May-2023 Paolo Bonzini <pbonzini@redhat.com>

meson: remove OS definitions from config_targetos

CONFIG_DARWIN, CONFIG_LINUX and CONFIG_BSD are used in some rules, but
only CONFIG_LINUX has substantial use. Convert them all to if...endif.

Sign

meson: remove OS definitions from config_targetos

CONFIG_DARWIN, CONFIG_LINUX and CONFIG_BSD are used in some rules, but
only CONFIG_LINUX has substantial use. Convert them all to if...endif.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

show more ...


/openbmc/qemu/.gitlab-ci.d/buildtest.yml
/openbmc/qemu/MAINTAINERS
/openbmc/qemu/Makefile
/openbmc/qemu/VERSION
/openbmc/qemu/accel/kvm/kvm-all.c
/openbmc/qemu/accel/tcg/meson.build
/openbmc/qemu/backends/Kconfig
/openbmc/qemu/backends/iommufd.c
/openbmc/qemu/backends/meson.build
/openbmc/qemu/backends/trace-events
meson.build
/openbmc/qemu/blockdev.c
/openbmc/qemu/configure
/openbmc/qemu/docs/devel/index-internals.rst
/openbmc/qemu/docs/devel/s390-cpu-topology.rst
/openbmc/qemu/docs/devel/testing.rst
/openbmc/qemu/docs/devel/vfio-iommufd.rst
/openbmc/qemu/docs/specs/tpm.rst
/openbmc/qemu/docs/system/arm/xenpvh.rst
/openbmc/qemu/docs/system/arm/xlnx-versal-virt.rst
/openbmc/qemu/docs/system/invocation.rst
/openbmc/qemu/docs/system/qemu-manpage.rst
/openbmc/qemu/fsdev/meson.build
/openbmc/qemu/gdbstub/internals.h
/openbmc/qemu/gdbstub/system.c
/openbmc/qemu/hw/9pfs/meson.build
/openbmc/qemu/hw/acpi/erst.c
/openbmc/qemu/hw/arm/Kconfig
/openbmc/qemu/hw/arm/virt.c
/openbmc/qemu/hw/audio/hda-codec.c
/openbmc/qemu/hw/audio/via-ac97.c
/openbmc/qemu/hw/audio/virtio-snd-pci.c
/openbmc/qemu/hw/audio/virtio-snd.c
/openbmc/qemu/hw/avr/atmega.c
/openbmc/qemu/hw/block/vhost-user-blk.c
/openbmc/qemu/hw/core/machine.c
/openbmc/qemu/hw/core/qdev-properties.c
/openbmc/qemu/hw/display/meson.build
/openbmc/qemu/hw/dma/xlnx_csu_dma.c
/openbmc/qemu/hw/i386/Kconfig
/openbmc/qemu/hw/i386/pc.c
/openbmc/qemu/hw/i386/pc_piix.c
/openbmc/qemu/hw/i386/pc_q35.c
/openbmc/qemu/hw/i386/sgx-stub.c
/openbmc/qemu/hw/i386/x86.c
/openbmc/qemu/hw/ide/via.c
/openbmc/qemu/hw/input/stellaris_gamepad.c
/openbmc/qemu/hw/intc/arm_gicv3_its_kvm.c
/openbmc/qemu/hw/isa/vt82c686.c
/openbmc/qemu/hw/m68k/virt.c
/openbmc/qemu/hw/misc/imx7_snvs.c
/openbmc/qemu/hw/misc/mips_itu.c
/openbmc/qemu/hw/misc/mps2-scc.c
/openbmc/qemu/hw/misc/trace-events
/openbmc/qemu/hw/net/can/xlnx-zynqmp-can.c
/openbmc/qemu/hw/nvram/xlnx-efuse.c
/openbmc/qemu/hw/nvram/xlnx-versal-efuse-ctrl.c
/openbmc/qemu/hw/pci/msix.c
/openbmc/qemu/hw/pci/pcie_sriov.c
/openbmc/qemu/hw/ppc/Kconfig
/openbmc/qemu/hw/ppc/amigaone.c
/openbmc/qemu/hw/ppc/meson.build
/openbmc/qemu/hw/ppc/spapr.c
/openbmc/qemu/hw/ppc/spapr_hcall.c
/openbmc/qemu/hw/ppc/spapr_pci_vfio.c
/openbmc/qemu/hw/s390x/Kconfig
/openbmc/qemu/hw/s390x/ipl.c
/openbmc/qemu/hw/s390x/s390-virtio-ccw.c
/openbmc/qemu/hw/scsi/esp.c
/openbmc/qemu/hw/scsi/vhost-user-scsi.c
/openbmc/qemu/hw/ssi/xilinx_spips.c
/openbmc/qemu/hw/ufs/ufs.c
/openbmc/qemu/hw/usb/meson.build
/openbmc/qemu/hw/usb/vt82c686-uhci-pci.c
/openbmc/qemu/hw/vfio/ap.c
/openbmc/qemu/hw/vfio/ccw.c
/openbmc/qemu/hw/vfio/common.c
/openbmc/qemu/hw/vfio/container-base.c
/openbmc/qemu/hw/vfio/container.c
/openbmc/qemu/hw/vfio/helpers.c
/openbmc/qemu/hw/vfio/iommufd.c
/openbmc/qemu/hw/vfio/meson.build
/openbmc/qemu/hw/vfio/pci.c
/openbmc/qemu/hw/vfio/pci.h
/openbmc/qemu/hw/vfio/platform.c
/openbmc/qemu/hw/vfio/spapr.c
/openbmc/qemu/hw/vfio/trace-events
/openbmc/qemu/hw/virtio/vhost-user-gpio.c
/openbmc/qemu/hw/virtio/virtio-iommu-pci.c
/openbmc/qemu/hw/virtio/virtio-iommu.c
/openbmc/qemu/hw/virtio/virtio-pci.c
/openbmc/qemu/hw/virtio/virtio.c
/openbmc/qemu/include/exec/memory.h
/openbmc/qemu/include/hw/boards.h
/openbmc/qemu/include/hw/i386/pc.h
/openbmc/qemu/include/hw/isa/vt82c686.h
/openbmc/qemu/include/hw/misc/imx7_snvs.h
/openbmc/qemu/include/hw/misc/xlnx-versal-cframe-reg.h
/openbmc/qemu/include/hw/misc/xlnx-versal-cfu.h
/openbmc/qemu/include/hw/misc/xlnx-versal-crl.h
/openbmc/qemu/include/hw/misc/xlnx-versal-pmc-iou-slcr.h
/openbmc/qemu/include/hw/nvram/xlnx-efuse.h
/openbmc/qemu/include/hw/nvram/xlnx-versal-efuse.h
/openbmc/qemu/include/hw/nvram/xlnx-zynqmp-efuse.h
/openbmc/qemu/include/hw/ssi/xilinx_spips.h
/openbmc/qemu/include/hw/ssi/xlnx-versal-ospi.h
/openbmc/qemu/include/hw/vfio/vfio-common.h
/openbmc/qemu/include/hw/vfio/vfio-container-base.h
/openbmc/qemu/include/hw/virtio/virtio-pci.h
/openbmc/qemu/include/hw/xen/xen_native.h
/openbmc/qemu/include/qemu/chardev_open.h
/openbmc/qemu/include/qemu/osdep.h
/openbmc/qemu/include/sysemu/iommufd.h
/openbmc/qemu/include/sysemu/qtest.h
/openbmc/qemu/linux-user/sh4/termbits.h
/openbmc/qemu/meson.build
/openbmc/qemu/meson_options.txt
/openbmc/qemu/migration/migration.c
/openbmc/qemu/migration/multifd.c
/openbmc/qemu/net/can/meson.build
/openbmc/qemu/pc-bios/README
/openbmc/qemu/pc-bios/bios-256k.bin
/openbmc/qemu/pc-bios/bios-microvm.bin
/openbmc/qemu/pc-bios/bios.bin
/openbmc/qemu/pc-bios/slof.bin
/openbmc/qemu/pc-bios/vgabios-ati.bin
/openbmc/qemu/pc-bios/vgabios-bochs-display.bin
/openbmc/qemu/pc-bios/vgabios-cirrus.bin
/openbmc/qemu/pc-bios/vgabios-qxl.bin
/openbmc/qemu/pc-bios/vgabios-ramfb.bin
/openbmc/qemu/pc-bios/vgabios-stdvga.bin
/openbmc/qemu/pc-bios/vgabios-virtio.bin
/openbmc/qemu/pc-bios/vgabios-vmware.bin
/openbmc/qemu/pc-bios/vgabios.bin
/openbmc/qemu/qapi/qom.json
/openbmc/qemu/qapi/string-output-visitor.c
/openbmc/qemu/qemu-options.hx
/openbmc/qemu/qga/meson.build
/openbmc/qemu/qom/object.c
/openbmc/qemu/roms/SLOF
/openbmc/qemu/roms/seabios
/openbmc/qemu/scripts/analyze-migration.py
/openbmc/qemu/scsi/meson.build
/openbmc/qemu/system/memory.c
/openbmc/qemu/system/meson.build
/openbmc/qemu/system/qtest.c
/openbmc/qemu/target/arm/cpu.c
/openbmc/qemu/target/arm/cpu64.c
/openbmc/qemu/target/arm/debug_helper.c
/openbmc/qemu/target/arm/helper.c
/openbmc/qemu/target/arm/kvm.c
/openbmc/qemu/target/arm/kvm_arm.h
/openbmc/qemu/target/arm/meson.build
/openbmc/qemu/target/arm/syndrome.h
/openbmc/qemu/target/arm/tcg/op_helper.c
/openbmc/qemu/target/arm/tcg/translate-a64.c
/openbmc/qemu/target/avr/cpu.c
/openbmc/qemu/target/avr/cpu.h
/openbmc/qemu/target/hexagon/idef-parser/prepare
/openbmc/qemu/target/i386/cpu.c
/openbmc/qemu/target/i386/cpu.h
/openbmc/qemu/target/i386/kvm/kvm.c
/openbmc/qemu/target/i386/tcg/cc_helper.c
/openbmc/qemu/target/i386/tcg/decode-new.c.inc
/openbmc/qemu/target/i386/tcg/decode-new.h
/openbmc/qemu/target/i386/tcg/emit.c.inc
/openbmc/qemu/target/i386/tcg/excp_helper.c
/openbmc/qemu/target/i386/tcg/fpu_helper.c
/openbmc/qemu/target/i386/tcg/helper-tcg.h
/openbmc/qemu/target/i386/tcg/int_helper.c
/openbmc/qemu/target/i386/tcg/misc_helper.c
/openbmc/qemu/target/i386/tcg/seg_helper.c
/openbmc/qemu/target/i386/tcg/tcg-cpu.c
/openbmc/qemu/target/i386/tcg/translate.c
/openbmc/qemu/target/loongarch/cpu.c
/openbmc/qemu/target/riscv/kvm/kvm-cpu.c
/openbmc/qemu/target/sh4/cpu.h
/openbmc/qemu/target/sh4/helper.c
/openbmc/qemu/target/sh4/op_helper.c
/openbmc/qemu/target/sh4/translate.c
/openbmc/qemu/tcg/tcg-op-ldst.c
/openbmc/qemu/tcg/tcg.c
/openbmc/qemu/tests/avocado/boot_linux.py
/openbmc/qemu/tests/avocado/boot_linux_console.py
/openbmc/qemu/tests/avocado/intel_iommu.py
/openbmc/qemu/tests/avocado/linux_initrd.py
/openbmc/qemu/tests/avocado/machine_aarch64_sbsaref.py
/openbmc/qemu/tests/avocado/machine_aspeed.py
/openbmc/qemu/tests/avocado/machine_mips_malta.py
/openbmc/qemu/tests/avocado/machine_rx_gdbsim.py
/openbmc/qemu/tests/avocado/machine_s390_ccw_virtio.py
/openbmc/qemu/tests/avocado/replay_kernel.py
/openbmc/qemu/tests/avocado/reverse_debugging.py
/openbmc/qemu/tests/avocado/smmu.py
/openbmc/qemu/tests/avocado/tuxrun_baselines.py
/openbmc/qemu/tests/bench/meson.build
/openbmc/qemu/tests/qemu-iotests/149
/openbmc/qemu/tests/qemu-iotests/149.out
/openbmc/qemu/tests/qtest/bios-tables-test.c
/openbmc/qemu/tests/qtest/migration-test.c
/openbmc/qemu/tests/qtest/netdev-socket.c
/openbmc/qemu/tests/qtest/npcm7xx_pwm-test.c
/openbmc/qemu/tests/qtest/test-filter-mirror.c
/openbmc/qemu/tests/qtest/test-filter-redirector.c
/openbmc/qemu/tests/qtest/virtio-net-test.c
/openbmc/qemu/tests/tcg/aarch64/Makefile.softmmu-target
/openbmc/qemu/tests/tcg/aarch64/system/vtimer.c
/openbmc/qemu/tests/tcg/i386/Makefile.target
/openbmc/qemu/tests/tcg/i386/test-flags.c
/openbmc/qemu/tests/unit/test-io-task.c
/openbmc/qemu/tests/unit/test-qmp-event.c
/openbmc/qemu/ui/gtk-egl.c
/openbmc/qemu/ui/meson.build
/openbmc/qemu/ui/vnc-clipboard.c
/openbmc/qemu/util/chardev_open.c
/openbmc/qemu/util/meson.build
23c983c805-Dec-2023 Stefan Hajnoczi <stefanha@redhat.com>

block: remove outdated AioContext locking comments

The AioContext lock no longer exists.

There is one noteworthy change:

- * More specifically, these functions use BDRV_POLL_WHILE(bs), which
-

block: remove outdated AioContext locking comments

The AioContext lock no longer exists.

There is one noteworthy change:

- * More specifically, these functions use BDRV_POLL_WHILE(bs), which
- * requires the caller to be either in the main thread and hold
- * the BlockdriverState (bs) AioContext lock, or directly in the
- * home thread that runs the bs AioContext. Calling them from
- * another thread in another AioContext would cause deadlocks.
+ * More specifically, these functions use BDRV_POLL_WHILE(bs), which requires
+ * the caller to be either in the main thread or directly in the home thread
+ * that runs the bs AioContext. Calling them from another thread in another
+ * AioContext would cause deadlocks.

I am not sure whether deadlocks are still possible. Maybe they have just
moved to the fine-grained locks that have replaced the AioContext. Since
I am not sure if the deadlocks are gone, I have kept the substance
unchanged and just removed mention of the AioContext.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-ID: <20231205182011.1976568-15-stefanha@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

b49f475505-Dec-2023 Stefan Hajnoczi <stefanha@redhat.com>

block: remove AioContext locking

This is the big patch that removes
aio_context_acquire()/aio_context_release() from the block layer and
affected block layer users.

There isn't a clean way to split

block: remove AioContext locking

This is the big patch that removes
aio_context_acquire()/aio_context_release() from the block layer and
affected block layer users.

There isn't a clean way to split this patch and the reviewers are likely
the same group of people, so I decided to do it in one patch.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Paul Durrant <paul@xen.org>
Message-ID: <20231205182011.1976568-7-stefanha@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

6bc30f1905-Dec-2023 Stefan Hajnoczi <stefanha@redhat.com>

graph-lock: remove AioContext locking

Stop acquiring/releasing the AioContext lock in
bdrv_graph_wrlock()/bdrv_graph_unlock() since the lock no longer has any
effect.

The distinction between bdrv_g

graph-lock: remove AioContext locking

Stop acquiring/releasing the AioContext lock in
bdrv_graph_wrlock()/bdrv_graph_unlock() since the lock no longer has any
effect.

The distinction between bdrv_graph_wrunlock() and
bdrv_graph_wrunlock_ctx() becomes meaningless and they can be collapsed
into one function.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Message-ID: <20231205182011.1976568-6-stefanha@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

d3007d3401-Dec-2023 Kevin Wolf <kwolf@redhat.com>

block: Fix crash when loading snapshot on inactive node

bdrv_is_read_only() only checks if the node is configured to be
read-only eventually, but even if it returns false, writing to the node
may no

block: Fix crash when loading snapshot on inactive node

bdrv_is_read_only() only checks if the node is configured to be
read-only eventually, but even if it returns false, writing to the node
may not be permitted at the moment (because it's inactive).

bdrv_is_writable() checks that the node can be written to right now, and
this is what the snapshot operations really need.

Change bdrv_can_snapshot() to use bdrv_is_writable() to fix crashes like
the following:

$ ./qemu-system-x86_64 -hda /tmp/test.qcow2 -loadvm foo -incoming defer
qemu-system-x86_64: ../block/io.c:1990: int bdrv_co_write_req_prepare(BdrvChild *, int64_t, int64_t, BdrvTrackedRequest *, int): Assertion `!(bs->open_flags & BDRV_O_INACTIVE)' failed.

The resulting error message after this patch isn't perfect yet, but at
least it doesn't crash any more:

$ ./qemu-system-x86_64 -hda /tmp/test.qcow2 -loadvm foo -incoming defer
qemu-system-x86_64: Device 'ide0-hd0' is writable but does not support snapshots

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-ID: <20231201142520.32255-2-kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

cd0c0db014-Sep-2023 Stefan Hajnoczi <stefanha@redhat.com>

block/file-posix: set up Linux AIO and io_uring in the current thread

The file-posix block driver currently only sets up Linux AIO and
io_uring in the BDS's AioContext. In the multi-queue block laye

block/file-posix: set up Linux AIO and io_uring in the current thread

The file-posix block driver currently only sets up Linux AIO and
io_uring in the BDS's AioContext. In the multi-queue block layer we must
be able to submit I/O requests in AioContexts that do not have Linux AIO
and io_uring set up yet since any thread can call into the block driver.

Set up Linux AIO and io_uring for the current AioContext during request
submission. We lose the ability to return an error from
.bdrv_file_open() when Linux AIO and io_uring setup fails (e.g. due to
resource limits). Instead the user only gets warnings and we fall back
to aio=threads. This is still better than a fatal error after startup.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-ID: <20230914140101.1065008-2-stefanha@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...


/openbmc/qemu/.gitlab-ci.d/buildtest.yml
/openbmc/qemu/MAINTAINERS
/openbmc/qemu/VERSION
/openbmc/qemu/accel/kvm/kvm-all.c
/openbmc/qemu/backends/Kconfig
/openbmc/qemu/backends/iommufd.c
/openbmc/qemu/backends/meson.build
/openbmc/qemu/backends/trace-events
file-posix.c
/openbmc/qemu/blockdev.c
/openbmc/qemu/docs/devel/index-internals.rst
/openbmc/qemu/docs/devel/s390-cpu-topology.rst
/openbmc/qemu/docs/devel/testing.rst
/openbmc/qemu/docs/devel/vfio-iommufd.rst
/openbmc/qemu/docs/specs/tpm.rst
/openbmc/qemu/docs/system/arm/xenpvh.rst
/openbmc/qemu/docs/system/arm/xlnx-versal-virt.rst
/openbmc/qemu/docs/system/invocation.rst
/openbmc/qemu/docs/system/qemu-manpage.rst
/openbmc/qemu/gdbstub/internals.h
/openbmc/qemu/gdbstub/system.c
/openbmc/qemu/hw/acpi/erst.c
/openbmc/qemu/hw/arm/Kconfig
/openbmc/qemu/hw/arm/virt.c
/openbmc/qemu/hw/audio/hda-codec.c
/openbmc/qemu/hw/audio/via-ac97.c
/openbmc/qemu/hw/audio/virtio-snd-pci.c
/openbmc/qemu/hw/audio/virtio-snd.c
/openbmc/qemu/hw/avr/atmega.c
/openbmc/qemu/hw/block/vhost-user-blk.c
/openbmc/qemu/hw/core/machine.c
/openbmc/qemu/hw/core/qdev-properties.c
/openbmc/qemu/hw/dma/xlnx_csu_dma.c
/openbmc/qemu/hw/i386/Kconfig
/openbmc/qemu/hw/i386/pc.c
/openbmc/qemu/hw/i386/pc_piix.c
/openbmc/qemu/hw/i386/pc_q35.c
/openbmc/qemu/hw/i386/x86.c
/openbmc/qemu/hw/ide/via.c
/openbmc/qemu/hw/input/stellaris_gamepad.c
/openbmc/qemu/hw/intc/arm_gicv3_its_kvm.c
/openbmc/qemu/hw/isa/vt82c686.c
/openbmc/qemu/hw/m68k/virt.c
/openbmc/qemu/hw/misc/imx7_snvs.c
/openbmc/qemu/hw/misc/mips_itu.c
/openbmc/qemu/hw/misc/mps2-scc.c
/openbmc/qemu/hw/misc/trace-events
/openbmc/qemu/hw/net/can/xlnx-zynqmp-can.c
/openbmc/qemu/hw/nvram/xlnx-efuse.c
/openbmc/qemu/hw/nvram/xlnx-versal-efuse-ctrl.c
/openbmc/qemu/hw/pci/msix.c
/openbmc/qemu/hw/pci/pcie_sriov.c
/openbmc/qemu/hw/ppc/Kconfig
/openbmc/qemu/hw/ppc/amigaone.c
/openbmc/qemu/hw/ppc/spapr.c
/openbmc/qemu/hw/ppc/spapr_hcall.c
/openbmc/qemu/hw/ppc/spapr_pci_vfio.c
/openbmc/qemu/hw/s390x/Kconfig
/openbmc/qemu/hw/s390x/ipl.c
/openbmc/qemu/hw/s390x/s390-virtio-ccw.c
/openbmc/qemu/hw/scsi/vhost-user-scsi.c
/openbmc/qemu/hw/ssi/xilinx_spips.c
/openbmc/qemu/hw/ufs/ufs.c
/openbmc/qemu/hw/usb/vt82c686-uhci-pci.c
/openbmc/qemu/hw/vfio/ap.c
/openbmc/qemu/hw/vfio/ccw.c
/openbmc/qemu/hw/vfio/common.c
/openbmc/qemu/hw/vfio/container-base.c
/openbmc/qemu/hw/vfio/container.c
/openbmc/qemu/hw/vfio/helpers.c
/openbmc/qemu/hw/vfio/iommufd.c
/openbmc/qemu/hw/vfio/meson.build
/openbmc/qemu/hw/vfio/pci.c
/openbmc/qemu/hw/vfio/pci.h
/openbmc/qemu/hw/vfio/platform.c
/openbmc/qemu/hw/vfio/spapr.c
/openbmc/qemu/hw/vfio/trace-events
/openbmc/qemu/hw/virtio/vhost-user-gpio.c
/openbmc/qemu/hw/virtio/virtio-iommu-pci.c
/openbmc/qemu/hw/virtio/virtio-iommu.c
/openbmc/qemu/hw/virtio/virtio-pci.c
/openbmc/qemu/hw/virtio/virtio.c
/openbmc/qemu/include/exec/memory.h
/openbmc/qemu/include/hw/boards.h
/openbmc/qemu/include/hw/i386/pc.h
/openbmc/qemu/include/hw/isa/vt82c686.h
/openbmc/qemu/include/hw/misc/imx7_snvs.h
/openbmc/qemu/include/hw/misc/xlnx-versal-cframe-reg.h
/openbmc/qemu/include/hw/misc/xlnx-versal-cfu.h
/openbmc/qemu/include/hw/misc/xlnx-versal-crl.h
/openbmc/qemu/include/hw/misc/xlnx-versal-pmc-iou-slcr.h
/openbmc/qemu/include/hw/nvram/xlnx-efuse.h
/openbmc/qemu/include/hw/nvram/xlnx-versal-efuse.h
/openbmc/qemu/include/hw/nvram/xlnx-zynqmp-efuse.h
/openbmc/qemu/include/hw/ssi/xilinx_spips.h
/openbmc/qemu/include/hw/ssi/xlnx-versal-ospi.h
/openbmc/qemu/include/hw/vfio/vfio-common.h
/openbmc/qemu/include/hw/vfio/vfio-container-base.h
/openbmc/qemu/include/hw/virtio/virtio-pci.h
/openbmc/qemu/include/hw/xen/xen_native.h
/openbmc/qemu/include/qemu/chardev_open.h
/openbmc/qemu/include/qemu/osdep.h
/openbmc/qemu/include/sysemu/iommufd.h
/openbmc/qemu/include/sysemu/qtest.h
/openbmc/qemu/linux-user/sh4/termbits.h
/openbmc/qemu/meson.build
/openbmc/qemu/migration/migration.c
/openbmc/qemu/migration/multifd.c
/openbmc/qemu/nbd/server.c
/openbmc/qemu/pc-bios/README
/openbmc/qemu/pc-bios/bios-256k.bin
/openbmc/qemu/pc-bios/bios-microvm.bin
/openbmc/qemu/pc-bios/bios.bin
/openbmc/qemu/pc-bios/slof.bin
/openbmc/qemu/pc-bios/vgabios-ati.bin
/openbmc/qemu/pc-bios/vgabios-bochs-display.bin
/openbmc/qemu/pc-bios/vgabios-cirrus.bin
/openbmc/qemu/pc-bios/vgabios-qxl.bin
/openbmc/qemu/pc-bios/vgabios-ramfb.bin
/openbmc/qemu/pc-bios/vgabios-stdvga.bin
/openbmc/qemu/pc-bios/vgabios-virtio.bin
/openbmc/qemu/pc-bios/vgabios-vmware.bin
/openbmc/qemu/pc-bios/vgabios.bin
/openbmc/qemu/qapi/qom.json
/openbmc/qemu/qapi/string-output-visitor.c
/openbmc/qemu/qemu-options.hx
/openbmc/qemu/qom/object.c
/openbmc/qemu/roms/SLOF
/openbmc/qemu/roms/seabios
/openbmc/qemu/scripts/analyze-migration.py
/openbmc/qemu/system/memory.c
/openbmc/qemu/system/qtest.c
/openbmc/qemu/target/arm/cpu.c
/openbmc/qemu/target/arm/cpu64.c
/openbmc/qemu/target/arm/debug_helper.c
/openbmc/qemu/target/arm/helper.c
/openbmc/qemu/target/arm/kvm.c
/openbmc/qemu/target/arm/kvm_arm.h
/openbmc/qemu/target/arm/meson.build
/openbmc/qemu/target/arm/syndrome.h
/openbmc/qemu/target/arm/tcg/op_helper.c
/openbmc/qemu/target/arm/tcg/translate-a64.c
/openbmc/qemu/target/avr/cpu.c
/openbmc/qemu/target/avr/cpu.h
/openbmc/qemu/target/hexagon/idef-parser/prepare
/openbmc/qemu/target/i386/cpu.c
/openbmc/qemu/target/i386/cpu.h
/openbmc/qemu/target/i386/kvm/kvm.c
/openbmc/qemu/target/i386/tcg/tcg-cpu.c
/openbmc/qemu/target/i386/tcg/translate.c
/openbmc/qemu/target/loongarch/cpu.c
/openbmc/qemu/target/riscv/kvm/kvm-cpu.c
/openbmc/qemu/target/sh4/cpu.h
/openbmc/qemu/target/sh4/helper.c
/openbmc/qemu/target/sh4/op_helper.c
/openbmc/qemu/target/sh4/translate.c
/openbmc/qemu/tcg/tcg-op-ldst.c
/openbmc/qemu/tcg/tcg.c
/openbmc/qemu/tests/avocado/boot_linux.py
/openbmc/qemu/tests/avocado/boot_linux_console.py
/openbmc/qemu/tests/avocado/intel_iommu.py
/openbmc/qemu/tests/avocado/linux_initrd.py
/openbmc/qemu/tests/avocado/machine_aarch64_sbsaref.py
/openbmc/qemu/tests/avocado/machine_aspeed.py
/openbmc/qemu/tests/avocado/machine_mips_malta.py
/openbmc/qemu/tests/avocado/machine_rx_gdbsim.py
/openbmc/qemu/tests/avocado/machine_s390_ccw_virtio.py
/openbmc/qemu/tests/avocado/replay_kernel.py
/openbmc/qemu/tests/avocado/reverse_debugging.py
/openbmc/qemu/tests/avocado/smmu.py
/openbmc/qemu/tests/avocado/tuxrun_baselines.py
/openbmc/qemu/tests/qemu-iotests/149
/openbmc/qemu/tests/qemu-iotests/149.out
/openbmc/qemu/tests/qtest/bios-tables-test.c
/openbmc/qemu/tests/qtest/migration-test.c
/openbmc/qemu/tests/qtest/netdev-socket.c
/openbmc/qemu/tests/qtest/npcm7xx_pwm-test.c
/openbmc/qemu/tests/qtest/test-filter-mirror.c
/openbmc/qemu/tests/qtest/test-filter-redirector.c
/openbmc/qemu/tests/qtest/virtio-net-test.c
/openbmc/qemu/tests/tcg/aarch64/Makefile.softmmu-target
/openbmc/qemu/tests/tcg/aarch64/system/vtimer.c
/openbmc/qemu/tests/unit/test-io-task.c
/openbmc/qemu/tests/unit/test-qmp-event.c
/openbmc/qemu/ui/gtk-egl.c
/openbmc/qemu/ui/vnc-clipboard.c
/openbmc/qemu/util/chardev_open.c
/openbmc/qemu/util/meson.build
411132c927-Nov-2023 Kevin Wolf <kwolf@redhat.com>

export/vhost-user-blk: Fix consecutive drains

The vhost-user-blk export implement AioContext switches in its drain
implementation. This means that on drain_begin, it detaches the server
from its Aio

export/vhost-user-blk: Fix consecutive drains

The vhost-user-blk export implement AioContext switches in its drain
implementation. This means that on drain_begin, it detaches the server
from its AioContext and on drain_end, attaches it again and schedules
the server->co_trip coroutine in the updated AioContext.

However, nothing guarantees that server->co_trip is even safe to be
scheduled. Not only is it unclear that the coroutine is actually in a
state where it can be reentered externally without causing problems, but
with two consecutive drains, it is possible that the scheduled coroutine
didn't have a chance yet to run and trying to schedule an already
scheduled coroutine a second time crashes with an assertion failure.

Following the model of NBD, this commit makes the vhost-user-blk export
shut down server->co_trip during drain so that resuming the export means
creating and scheduling a new coroutine, which is always safe.

There is one exception: If the drain call didn't poll (for example, this
happens in the context of bdrv_graph_wrlock()), then the coroutine
didn't have a chance to shut down. However, in this case the AioContext
can't have changed; changing the AioContext always involves a polling
drain. So in this case we can simply assert that the AioContext is
unchanged and just leave the coroutine running or wake it up if it has
yielded to wait for the AioContext to be attached again.

Fixes: e1054cd4aad03a493a5d1cded7508f7c348205bf
Fixes: https://issues.redhat.com/browse/RHEL-1708
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-ID: <20231127115755.22846-1-kwolf@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

9fb7b35024-Nov-2023 Fam Zheng <fam@euphon.net>

vmdk: Don't corrupt desc file in vmdk_write_cid

If the text description file is larger than DESC_SIZE, we force the last
byte in the buffer to be 0 and write it out.

This results in a corruption.

vmdk: Don't corrupt desc file in vmdk_write_cid

If the text description file is larger than DESC_SIZE, we force the last
byte in the buffer to be 0 and write it out.

This results in a corruption.

Try to allocate a big buffer in this case.

Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1923

Signed-off-by: Fam Zheng <fam@euphon.net>
Message-ID: <20231124115654.3239137-1-fam@euphon.net>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...


/openbmc/qemu/.gitlab-ci.d/buildtest.yml
/openbmc/qemu/.gitlab-ci.d/cirrus.yml
/openbmc/qemu/.gitlab-ci.d/cirrus/macos-13.vars
/openbmc/qemu/.gitlab-ci.d/cirrus/macos-14.vars
/openbmc/qemu/.gitlab-ci.d/container-cross.yml
/openbmc/qemu/.gitlab-ci.d/containers.yml
/openbmc/qemu/.gitlab-ci.d/crossbuilds.yml
/openbmc/qemu/VERSION
/openbmc/qemu/audio/audio.c
vmdk.c
/openbmc/qemu/configure
/openbmc/qemu/contrib/plugins/Makefile
/openbmc/qemu/disas/cris.c
/openbmc/qemu/docs/about/deprecated.rst
/openbmc/qemu/docs/about/emulation.rst
/openbmc/qemu/docs/devel/build-system.rst
/openbmc/qemu/docs/system/gdb.rst
/openbmc/qemu/hw/arm/fsl-imx25.c
/openbmc/qemu/hw/arm/fsl-imx6.c
/openbmc/qemu/hw/arm/netduino2.c
/openbmc/qemu/hw/arm/netduinoplus2.c
/openbmc/qemu/hw/arm/olimex-stm32-h405.c
/openbmc/qemu/hw/arm/stm32f100_soc.c
/openbmc/qemu/hw/arm/stm32f205_soc.c
/openbmc/qemu/hw/arm/stm32f405_soc.c
/openbmc/qemu/hw/arm/stm32vldiscovery.c
/openbmc/qemu/hw/block/xen-block.c
/openbmc/qemu/hw/core/loader.c
/openbmc/qemu/hw/hppa/machine.c
/openbmc/qemu/hw/ide/core.c
/openbmc/qemu/hw/ide/ioport.c
/openbmc/qemu/hw/ide/pci.c
/openbmc/qemu/hw/ide/via.c
/openbmc/qemu/hw/intc/arm_gicv3_cpuif.c
/openbmc/qemu/hw/m68k/q800.c
/openbmc/qemu/hw/net/allwinner-sun8i-emac.c
/openbmc/qemu/hw/net/allwinner_emac.c
/openbmc/qemu/hw/net/cadence_gem.c
/openbmc/qemu/hw/net/dp8393x.c
/openbmc/qemu/hw/net/e1000.c
/openbmc/qemu/hw/net/e1000e.c
/openbmc/qemu/hw/net/eepro100.c
/openbmc/qemu/hw/net/etraxfs_eth.c
/openbmc/qemu/hw/net/fsl_etsec/etsec.c
/openbmc/qemu/hw/net/ftgmac100.c
/openbmc/qemu/hw/net/i82596.c
/openbmc/qemu/hw/net/igb.c
/openbmc/qemu/hw/net/imx_fec.c
/openbmc/qemu/hw/net/lan9118.c
/openbmc/qemu/hw/net/mcf_fec.c
/openbmc/qemu/hw/net/mipsnet.c
/openbmc/qemu/hw/net/msf2-emac.c
/openbmc/qemu/hw/net/mv88w8618_eth.c
/openbmc/qemu/hw/net/ne2000-isa.c
/openbmc/qemu/hw/net/ne2000-pci.c
/openbmc/qemu/hw/net/npcm7xx_emc.c
/openbmc/qemu/hw/net/opencores_eth.c
/openbmc/qemu/hw/net/pcnet.c
/openbmc/qemu/hw/net/rocker/rocker_fp.c
/openbmc/qemu/hw/net/rtl8139.c
/openbmc/qemu/hw/net/smc91c111.c
/openbmc/qemu/hw/net/spapr_llan.c
/openbmc/qemu/hw/net/stellaris_enet.c
/openbmc/qemu/hw/net/sungem.c
/openbmc/qemu/hw/net/sunhme.c
/openbmc/qemu/hw/net/tulip.c
/openbmc/qemu/hw/net/virtio-net.c
/openbmc/qemu/hw/net/vmxnet3.c
/openbmc/qemu/hw/net/xen_nic.c
/openbmc/qemu/hw/net/xgmac.c
/openbmc/qemu/hw/net/xilinx_axienet.c
/openbmc/qemu/hw/net/xilinx_ethlite.c
/openbmc/qemu/hw/nios2/10m50_devboard.c
/openbmc/qemu/hw/nios2/generic_nommu.c
/openbmc/qemu/hw/ppc/pnv.c
/openbmc/qemu/hw/ppc/pnv_i2c.c
/openbmc/qemu/hw/riscv/sifive_e.c
/openbmc/qemu/hw/riscv/virt.c
/openbmc/qemu/hw/usb/dev-network.c
/openbmc/qemu/include/hw/arm/stm32f100_soc.h
/openbmc/qemu/include/hw/arm/stm32f205_soc.h
/openbmc/qemu/include/hw/arm/stm32f405_soc.h
/openbmc/qemu/include/hw/boards.h
/openbmc/qemu/include/hw/ide/internal.h
/openbmc/qemu/include/hw/ide/pci.h
/openbmc/qemu/include/net/net.h
/openbmc/qemu/include/ui/pixman-minimal.h
/openbmc/qemu/linux-user/elfload.c
/openbmc/qemu/linux-user/syscall.c
/openbmc/qemu/net/net.c
/openbmc/qemu/pc-bios/hppa-firmware.img
/openbmc/qemu/plugins/meson.build
/openbmc/qemu/python/scripts/vendor.py
/openbmc/qemu/python/wheels/meson-1.2.3-py3-none-any.whl
/openbmc/qemu/pythondeps.toml
/openbmc/qemu/qga/meson.build
/openbmc/qemu/roms/seabios-hppa
/openbmc/qemu/scripts/coverity-scan/model.c
/openbmc/qemu/scripts/coverity-scan/run-coverity-scan
/openbmc/qemu/system/memory.c
/openbmc/qemu/system/physmem.c
/openbmc/qemu/system/vl.c
/openbmc/qemu/target/arm/tcg/cpu64.c
/openbmc/qemu/target/arm/tcg/sme_helper.c
/openbmc/qemu/target/ppc/fpu_helper.c
/openbmc/qemu/target/riscv/cpu_helper.c
/openbmc/qemu/target/riscv/tcg/tcg-cpu.c
/openbmc/qemu/tcg/loongarch64/tcg-target.c.inc
/openbmc/qemu/tests/Makefile.include
/openbmc/qemu/tests/avocado/reverse_debugging.py
/openbmc/qemu/tests/docker/Makefile.include
/openbmc/qemu/tests/docker/dockerfiles/debian-i686-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian.docker
/openbmc/qemu/tests/lcitool/libvirt-ci
/openbmc/qemu/tests/lcitool/refresh
/openbmc/qemu/tests/plugin/meson.build
/openbmc/qemu/tests/qemu-iotests/059
/openbmc/qemu/tests/qemu-iotests/059.out
/openbmc/qemu/tests/qemu-iotests/testenv.py
/openbmc/qemu/tests/qemu-iotests/tests/iothreads-stream
/openbmc/qemu/tests/qemu-iotests/tests/iothreads-stream.out
/openbmc/qemu/tests/tcg/aarch64/Makefile.softmmu-target
/openbmc/qemu/tests/tcg/arm/Makefile.softmmu-target
/openbmc/qemu/tests/tcg/arm/system/boot.S
/openbmc/qemu/tests/tcg/arm/system/kernel.ld
/openbmc/qemu/tests/tcg/arm/system/semiconsole.c
/openbmc/qemu/tests/tcg/arm/system/test-armv6m-undef.S
/openbmc/qemu/tests/tcg/arm/system/test-armv6m-undef.ld
/openbmc/qemu/tests/tcg/multiarch/gdbstub/registers.py
/openbmc/qemu/tests/tcg/ppc64/Makefile.target
/openbmc/qemu/tests/tcg/ppc64/vsx_f2i_nan.c
/openbmc/qemu/tests/tcg/s390x/Makefile.target
/openbmc/qemu/ui/console.c
/openbmc/qemu/ui/dbus.c
/openbmc/qemu/ui/gtk.c
/openbmc/qemu/ui/spice-app.c
1dbc7d3415-Nov-2023 Kevin Wolf <kwolf@redhat.com>

stream: Fix AioContext locking during bdrv_graph_wrlock()

In stream_prepare(), we need to temporarily drop the AioContext lock
that job_prepare_locked() took for us while calling the graph write loc

stream: Fix AioContext locking during bdrv_graph_wrlock()

In stream_prepare(), we need to temporarily drop the AioContext lock
that job_prepare_locked() took for us while calling the graph write lock
functions which can poll.

All block nodes related to this block job are in the same AioContext, so
we can pass any of them to bdrv_graph_wrlock()/ bdrv_graph_wrunlock().
Unfortunately, the one that we picked is base, which can be NULL - and
in this case the AioContext lock is not released and deadlocks can
occur.

Fix this by passing s->target_bs, which is never NULL.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-ID: <20231115172012.112727-4-kwolf@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

6bc0bcc815-Nov-2023 Kevin Wolf <kwolf@redhat.com>

block: Fix deadlocks in bdrv_graph_wrunlock()

bdrv_graph_wrunlock() calls aio_poll(), which may run callbacks that
have a nested event loop. Nested event loops can depend on other
iothreads making p

block: Fix deadlocks in bdrv_graph_wrunlock()

bdrv_graph_wrunlock() calls aio_poll(), which may run callbacks that
have a nested event loop. Nested event loops can depend on other
iothreads making progress, so in order to allow them to make progress it
must not hold the AioContext lock of another thread while calling
aio_poll().

This introduces a @bs parameter to bdrv_graph_wrunlock() whose
AioContext is temporarily dropped (which matches bdrv_graph_wrlock()),
and a bdrv_graph_wrunlock_ctx() that can be used if the BlockDriverState
doesn't necessarily exist any more when unlocking.

This also requires a change to bdrv_schedule_unref(), which was relying
on the incorrectly taken lock. It needs to take the lock itself now.
While this is a separate bug, it can't be fixed a separate patch because
otherwise the intermediate state would either deadlock or try to release
a lock that we don't even hold.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-ID: <20231115172012.112727-3-kwolf@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
[kwolf: Fixed up bdrv_schedule_unref()]
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

bb092d6d15-Nov-2023 Kevin Wolf <kwolf@redhat.com>

block: Fix bdrv_graph_wrlock() call in blk_remove_bs()

While not all callers of blk_remove_bs() are correct in this respect,
the assumption in the function is that callers hold the AioContext lock
o

block: Fix bdrv_graph_wrlock() call in blk_remove_bs()

While not all callers of blk_remove_bs() are correct in this respect,
the assumption in the function is that callers hold the AioContext lock
of the BlockBackend (this is required by the drain calls in it).

In order to avoid deadlock in the nested event loop, bdrv_graph_wrlock()
has then to be called with the root BlockDriverState as its parameter
instead of NULL, so that this AioContext lock is temporarily dropped.

Fixes: https://issues.redhat.com/browse/RHEL-1761
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-ID: <20231115172012.112727-2-kwolf@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...


/openbmc/qemu/MAINTAINERS
/openbmc/qemu/VERSION
/openbmc/qemu/accel/tcg/cpu-exec.c
/openbmc/qemu/accel/tcg/cputlb.c
/openbmc/qemu/accel/tcg/tb-maint.c
/openbmc/qemu/accel/tcg/translate-all.c
/openbmc/qemu/accel/tcg/translator.c
block-backend.c
/openbmc/qemu/bsd-user/bsd-mem.h
/openbmc/qemu/bsd-user/freebsd/os-proc.c
/openbmc/qemu/bsd-user/freebsd/os-stat.h
/openbmc/qemu/contrib/vhost-user-gpu/virgl.c
/openbmc/qemu/disas/hppa.c
/openbmc/qemu/docs/about/deprecated.rst
/openbmc/qemu/docs/devel/migration.rst
/openbmc/qemu/docs/devel/tcg-icount.rst
/openbmc/qemu/docs/devel/testing.rst
/openbmc/qemu/docs/sphinx/qapidoc.py
/openbmc/qemu/docs/system/arm/emulation.rst
/openbmc/qemu/dump/dump.c
/openbmc/qemu/gdbstub/gdbstub.c
/openbmc/qemu/host/include/generic/host/atomic128-cas.h
/openbmc/qemu/host/include/generic/host/atomic128-ldst.h
/openbmc/qemu/hw/arm/virt.c
/openbmc/qemu/hw/audio/es1370.c
/openbmc/qemu/hw/audio/virtio-snd.c
/openbmc/qemu/hw/core/machine.c
/openbmc/qemu/hw/cxl/cxl-component-utils.c
/openbmc/qemu/hw/cxl/cxl-mailbox-utils.c
/openbmc/qemu/hw/display/vmware_vga.c
/openbmc/qemu/hw/hppa/machine.c
/openbmc/qemu/hw/ide/ahci.c
/openbmc/qemu/hw/mem/memory-device.c
/openbmc/qemu/hw/mips/Kconfig
/openbmc/qemu/hw/net/cadence_gem.c
/openbmc/qemu/hw/net/igb.c
/openbmc/qemu/hw/net/igb_common.h
/openbmc/qemu/hw/net/igb_core.c
/openbmc/qemu/hw/net/igb_core.h
/openbmc/qemu/hw/net/igbvf.c
/openbmc/qemu/hw/net/trace-events
/openbmc/qemu/hw/pci-host/astro.c
/openbmc/qemu/hw/pci-host/meson.build
/openbmc/qemu/hw/ppc/spapr_pci.c
/openbmc/qemu/hw/s390x/s390-pci-vfio.c
/openbmc/qemu/hw/virtio/virtio-mem.c
/openbmc/qemu/hw/watchdog/wdt_aspeed.c
/openbmc/qemu/include/block/ufs.h
/openbmc/qemu/include/exec/translation-block.h
/openbmc/qemu/include/hw/cxl/cxl_device.h
/openbmc/qemu/include/hw/hyperv/dynmem-proto.h
/openbmc/qemu/include/hw/virtio/vhost.h
/openbmc/qemu/include/qemu/int128.h
/openbmc/qemu/include/sysemu/dump-arch.h
/openbmc/qemu/linux-user/ppc/vdso.S
/openbmc/qemu/linux-user/syscall.c
/openbmc/qemu/linux-user/xtensa/signal.c
/openbmc/qemu/meson.build
/openbmc/qemu/migration/rdma.c
/openbmc/qemu/monitor/hmp-cmds.c
/openbmc/qemu/net/net.c
/openbmc/qemu/pc-bios/hppa-firmware.img
/openbmc/qemu/qapi/migration.json
/openbmc/qemu/qapi/pragma.json
/openbmc/qemu/qga/commands.c
/openbmc/qemu/roms/seabios-hppa
/openbmc/qemu/scripts/qapi/schema.py
/openbmc/qemu/system/balloon.c
/openbmc/qemu/system/watchpoint.c
/openbmc/qemu/target/arm/tcg/cpu32.c
/openbmc/qemu/target/arm/tcg/helper-a64.c
/openbmc/qemu/target/arm/tcg/hflags.c
/openbmc/qemu/target/arm/tcg/mte_helper.c
/openbmc/qemu/target/arm/tcg/translate-a64.c
/openbmc/qemu/target/hppa/cpu-param.h
/openbmc/qemu/target/hppa/cpu.h
/openbmc/qemu/target/hppa/int_helper.c
/openbmc/qemu/target/hppa/machine.c
/openbmc/qemu/target/hppa/mem_helper.c
/openbmc/qemu/target/hppa/op_helper.c
/openbmc/qemu/target/hppa/translate.c
/openbmc/qemu/target/i386/cpu.c
/openbmc/qemu/target/riscv/cpu.h
/openbmc/qemu/target/s390x/arch_dump.c
/openbmc/qemu/target/sparc/translate.c
/openbmc/qemu/tests/avocado/avocado_qemu/__init__.py
/openbmc/qemu/tests/avocado/cpu_queries.py
/openbmc/qemu/tests/avocado/empty_cpu_model.py
/openbmc/qemu/tests/avocado/intel_iommu.py
/openbmc/qemu/tests/avocado/machine_s390_ccw_virtio.py
/openbmc/qemu/tests/avocado/mem-addr-space-check.py
/openbmc/qemu/tests/avocado/multiprocess.py
/openbmc/qemu/tests/avocado/pc_cpu_hotplug_props.py
/openbmc/qemu/tests/avocado/replay_kernel.py
/openbmc/qemu/tests/avocado/reverse_debugging.py
/openbmc/qemu/tests/avocado/version.py
/openbmc/qemu/tests/avocado/virtio-gpu.py
/openbmc/qemu/tests/avocado/x86_cpu_model_versions.py
/openbmc/qemu/tests/data/qobject/qdict.txt
/openbmc/qemu/tests/qapi-schema/test-qapi.py
/openbmc/qemu/tests/qtest/migration-test.c
/openbmc/qemu/tests/qtest/ufs-test.c
/openbmc/qemu/tests/tsan/ignore.tsan
/openbmc/qemu/tests/unit/test-resv-mem.c
/openbmc/qemu/tests/vm/netbsd
/openbmc/qemu/ui/ui-qmp-cmds.c
/openbmc/qemu/util/filemonitor-inotify.c
/openbmc/qemu/util/range.c
6ab4f1c923-Oct-2023 Thomas Huth <thuth@redhat.com>

block/snapshot: Fix compiler warning with -Wshadow=local

No need to declare a new variable in the the inner code block
here, we can re-use the "ret" variable that has been declared
at the beginning

block/snapshot: Fix compiler warning with -Wshadow=local

No need to declare a new variable in the the inner code block
here, we can re-use the "ret" variable that has been declared
at the beginning of the function. With this change, the code
can now be successfully compiled with -Wshadow=local again.

Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-ID: <20231023175038.111607-1-thuth@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
[Commit message tweaked]
Signed-off-by: Markus Armbruster <armbru@redhat.com>

show more ...


/openbmc/qemu/.gitlab-ci.d/crossbuilds.yml
/openbmc/qemu/.gitlab-ci.d/windows.yml
/openbmc/qemu/.mailmap
/openbmc/qemu/MAINTAINERS
/openbmc/qemu/accel/stubs/tcg-stub.c
/openbmc/qemu/accel/tcg/cputlb.c
/openbmc/qemu/accel/tcg/tcg-accel-ops.c
/openbmc/qemu/accel/tcg/translate-all.c
/openbmc/qemu/accel/tcg/user-exec-stub.c
/openbmc/qemu/audio/wavaudio.c
snapshot.c
/openbmc/qemu/bsd-user/main.c
/openbmc/qemu/configs/devices/ppc-softmmu/default.mak
/openbmc/qemu/configs/targets/loongarch64-linux-user.mak
/openbmc/qemu/configure
/openbmc/qemu/contrib/gitdm/domain-map
/openbmc/qemu/contrib/plugins/Makefile
/openbmc/qemu/contrib/plugins/win32_linker.c
/openbmc/qemu/cpu-common.c
/openbmc/qemu/cpu-target.c
/openbmc/qemu/crypto/rsakey-builtin.c.inc
/openbmc/qemu/dump/dump.c
/openbmc/qemu/gdb-xml/arm-neon.xml
/openbmc/qemu/gdbstub/gdbstub.c
/openbmc/qemu/hw/arm/Kconfig
/openbmc/qemu/hw/arm/mps2-tz.c
/openbmc/qemu/hw/arm/mps2.c
/openbmc/qemu/hw/arm/sbsa-ref.c
/openbmc/qemu/hw/arm/vexpress.c
/openbmc/qemu/hw/arm/virt.c
/openbmc/qemu/hw/arm/xen_arm.c
/openbmc/qemu/hw/arm/xlnx-versal.c
/openbmc/qemu/hw/core/cpu-common.c
/openbmc/qemu/hw/core/loader.c
/openbmc/qemu/hw/core/qdev-properties-system.c
/openbmc/qemu/hw/core/qdev-properties.c
/openbmc/qemu/hw/i2c/pmbus_device.c
/openbmc/qemu/hw/i386/pc.c
/openbmc/qemu/hw/ide/ahci.c
/openbmc/qemu/hw/ide/core.c
/openbmc/qemu/hw/isa/i82378.c
/openbmc/qemu/hw/pci-host/Kconfig
/openbmc/qemu/hw/pci-host/articia.c
/openbmc/qemu/hw/pci-host/meson.build
/openbmc/qemu/hw/pci-host/pnv_phb4.c
/openbmc/qemu/hw/pci-host/pnv_phb4_pec.c
/openbmc/qemu/hw/ppc/Kconfig
/openbmc/qemu/hw/ppc/amigaone.c
/openbmc/qemu/hw/ppc/e500.c
/openbmc/qemu/hw/ppc/meson.build
/openbmc/qemu/hw/ppc/pnv.c
/openbmc/qemu/hw/ppc/pnv_i2c.c
/openbmc/qemu/hw/ppc/spapr_rtas.c
/openbmc/qemu/hw/rx/rx62n.c
/openbmc/qemu/hw/s390x/css.c
/openbmc/qemu/hw/s390x/sclp.c
/openbmc/qemu/hw/sd/aspeed_sdhci.c
/openbmc/qemu/hw/sd/bcm2835_sdhost.c
/openbmc/qemu/hw/sd/cadence_sdhci.c
/openbmc/qemu/hw/sd/core.c
/openbmc/qemu/hw/sd/npcm7xx_sdhci.c
/openbmc/qemu/hw/sd/pl181.c
/openbmc/qemu/hw/sd/pxa2xx_mmci.c
/openbmc/qemu/hw/sd/sd.c
/openbmc/qemu/hw/sd/sdhci-pci.c
/openbmc/qemu/hw/sd/ssi-sd.c
/openbmc/qemu/hw/sensor/Kconfig
/openbmc/qemu/hw/sensor/adm1266.c
/openbmc/qemu/hw/sensor/meson.build
/openbmc/qemu/include/exec/cpu-common.h
/openbmc/qemu/include/exec/gdbstub.h
/openbmc/qemu/include/exec/tb-flush.h
/openbmc/qemu/include/hw/core/cpu.h
/openbmc/qemu/include/hw/i2c/pmbus_device.h
/openbmc/qemu/include/hw/i386/topology.h
/openbmc/qemu/include/hw/loader.h
/openbmc/qemu/include/hw/pci-host/articia.h
/openbmc/qemu/include/hw/pci-host/pnv_phb4.h
/openbmc/qemu/include/hw/pci-host/pnv_phb4_regs.h
/openbmc/qemu/include/hw/ppc/pnv_chip.h
/openbmc/qemu/include/hw/ppc/pnv_i2c.h
/openbmc/qemu/include/hw/ppc/pnv_xscom.h
/openbmc/qemu/include/hw/ppc/ppc.h
/openbmc/qemu/include/hw/qdev-properties.h
/openbmc/qemu/include/hw/s390x/css.h
/openbmc/qemu/include/hw/s390x/sclp.h
/openbmc/qemu/include/hw/xen/xen_native.h
/openbmc/qemu/include/qemu/qemu-plugin.h
/openbmc/qemu/include/qom/object.h
/openbmc/qemu/include/sysemu/accel-ops.h
/openbmc/qemu/include/sysemu/kvm.h
/openbmc/qemu/io/net-listener.c
/openbmc/qemu/linux-user/main.c
/openbmc/qemu/meson.build
/openbmc/qemu/plugins/core.c
/openbmc/qemu/plugins/meson.build
/openbmc/qemu/qom/object.c
/openbmc/qemu/scripts/cpu-x86-uarch-abi.py
/openbmc/qemu/scripts/feature_to_c.py
/openbmc/qemu/scripts/tracetool/__init__.py
/openbmc/qemu/system/cpus.c
/openbmc/qemu/system/vl.c
/openbmc/qemu/target/alpha/cpu-qom.h
/openbmc/qemu/target/alpha/cpu.c
/openbmc/qemu/target/alpha/cpu.h
/openbmc/qemu/target/arm/cpu-qom.h
/openbmc/qemu/target/arm/cpu.c
/openbmc/qemu/target/arm/cpu.h
/openbmc/qemu/target/arm/debug_helper.c
/openbmc/qemu/target/arm/helper.c
/openbmc/qemu/target/arm/internals.h
/openbmc/qemu/target/avr/cpu-qom.h
/openbmc/qemu/target/avr/cpu.c
/openbmc/qemu/target/avr/cpu.h
/openbmc/qemu/target/cris/cpu-qom.h
/openbmc/qemu/target/cris/cpu.c
/openbmc/qemu/target/cris/cpu.h
/openbmc/qemu/target/hexagon/cpu-qom.h
/openbmc/qemu/target/hexagon/cpu.c
/openbmc/qemu/target/hexagon/cpu.h
/openbmc/qemu/target/hppa/cpu-qom.h
/openbmc/qemu/target/hppa/cpu.h
/openbmc/qemu/target/i386/cpu-qom.h
/openbmc/qemu/target/i386/cpu.c
/openbmc/qemu/target/i386/cpu.h
/openbmc/qemu/target/i386/hvf/hvf.c
/openbmc/qemu/target/i386/hvf/x86_emu.c
/openbmc/qemu/target/i386/hvf/x86_emu.h
/openbmc/qemu/target/i386/kvm/kvm-cpu.c
/openbmc/qemu/target/i386/monitor.c
/openbmc/qemu/target/loongarch/cpu-qom.h
/openbmc/qemu/target/loongarch/cpu.c
/openbmc/qemu/target/loongarch/cpu.h
/openbmc/qemu/target/m68k/cpu-qom.h
/openbmc/qemu/target/m68k/cpu.c
/openbmc/qemu/target/m68k/cpu.h
/openbmc/qemu/target/microblaze/cpu-qom.h
/openbmc/qemu/target/microblaze/cpu.h
/openbmc/qemu/target/mips/cpu-qom.h
/openbmc/qemu/target/mips/cpu.h
/openbmc/qemu/target/mips/tcg/msa.decode
/openbmc/qemu/target/mips/tcg/tx79.decode
/openbmc/qemu/target/nios2/cpu-qom.h
/openbmc/qemu/target/nios2/cpu.c
/openbmc/qemu/target/nios2/cpu.h
/openbmc/qemu/target/openrisc/cpu-qom.h
/openbmc/qemu/target/openrisc/cpu.c
/openbmc/qemu/target/openrisc/cpu.h
/openbmc/qemu/target/ppc/cpu-qom.h
/openbmc/qemu/target/ppc/cpu.h
/openbmc/qemu/target/ppc/excp_helper.c
/openbmc/qemu/target/ppc/internal.h
/openbmc/qemu/target/ppc/kvm.c
/openbmc/qemu/target/ppc/kvm_ppc.h
/openbmc/qemu/target/ppc/meson.build
/openbmc/qemu/target/riscv/cpu-qom.h
/openbmc/qemu/target/riscv/cpu.c
/openbmc/qemu/target/riscv/cpu.h
/openbmc/qemu/target/riscv/internals.h
/openbmc/qemu/target/rx/cpu-qom.h
/openbmc/qemu/target/rx/cpu.c
/openbmc/qemu/target/rx/cpu.h
/openbmc/qemu/target/s390x/cpu-qom.h
/openbmc/qemu/target/s390x/cpu.h
/openbmc/qemu/target/s390x/cpu_models.c
/openbmc/qemu/target/s390x/cpu_models.h
/openbmc/qemu/target/s390x/diag.c
/openbmc/qemu/target/s390x/kvm/kvm.c
/openbmc/qemu/target/s390x/kvm/stsi-topology.c
/openbmc/qemu/target/s390x/tcg/insn-data.h.inc
/openbmc/qemu/target/s390x/tcg/misc_helper.c
/openbmc/qemu/target/s390x/tcg/translate.c
/openbmc/qemu/target/sh4/cpu-qom.h
/openbmc/qemu/target/sh4/cpu.c
/openbmc/qemu/target/sh4/cpu.h
/openbmc/qemu/target/sparc/cpu-qom.h
/openbmc/qemu/target/sparc/cpu.h
/openbmc/qemu/target/tricore/cpu-qom.h
/openbmc/qemu/target/tricore/cpu.c
/openbmc/qemu/target/tricore/cpu.h
/openbmc/qemu/target/xtensa/cpu-qom.h
/openbmc/qemu/target/xtensa/cpu.c
/openbmc/qemu/target/xtensa/cpu.h
/openbmc/qemu/target/xtensa/op_helper.c
/openbmc/qemu/tests/avocado/machine_m68k_nextcube.py
/openbmc/qemu/tests/avocado/ppc_amiga.py
/openbmc/qemu/tests/avocado/tcg_plugins.py
/openbmc/qemu/tests/avocado/tesseract_utils.py
/openbmc/qemu/tests/plugin/meson.build
/openbmc/qemu/tests/qtest/adm1266-test.c
/openbmc/qemu/tests/qtest/ahci-test.c
/openbmc/qemu/tests/qtest/max34451-test.c
/openbmc/qemu/tests/qtest/meson.build
/openbmc/qemu/tests/tcg/multiarch/Makefile.target
/openbmc/qemu/tests/tcg/multiarch/gdbstub/registers.py
/openbmc/qemu/tests/tcg/multiarch/system/Makefile.softmmu-target
/openbmc/qemu/tests/tcg/nios2/Makefile.target
/openbmc/qemu/tests/tcg/ppc64/Makefile.target
/openbmc/qemu/tests/tcg/s390x/Makefile.target
/openbmc/qemu/tests/tcg/s390x/add-logical-with-carry.c
/openbmc/qemu/tests/tcg/s390x/clc.c
/openbmc/qemu/tests/tcg/s390x/laalg.c
/openbmc/qemu/tests/unit/meson.build
/openbmc/qemu/tests/unit/test-seccomp.c
/openbmc/qemu/tests/unit/test-x86-topo.c
/openbmc/qemu/tests/vm/ubuntu.aarch64
/openbmc/qemu/ui/sdl2.c
1f051dcb27-Oct-2023 Kevin Wolf <kwolf@redhat.com>

block: Protect bs->file with graph_lock

Almost all functions that access bs->file already take the graph
lock now. Add locking to the remaining users and finally annotate the
struct field itself as

block: Protect bs->file with graph_lock

Almost all functions that access bs->file already take the graph
lock now. Add locking to the remaining users and finally annotate the
struct field itself as protected by the graph lock.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-ID: <20231027155333.420094-25-kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

a4b740db27-Oct-2023 Kevin Wolf <kwolf@redhat.com>

block: Take graph lock for most of .bdrv_open

Most implementations of .bdrv_open first open their file child (which is
an operation that internally takes the write lock and therefore we
shouldn't ho

block: Take graph lock for most of .bdrv_open

Most implementations of .bdrv_open first open their file child (which is
an operation that internally takes the write lock and therefore we
shouldn't hold the graph lock while calling it), and afterwards many
operations that require holding the graph lock, e.g. for accessing
bs->file.

This changes block drivers that follow this pattern to take the graph
lock after opening the child node.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-ID: <20231027155333.420094-24-kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

65ff757d27-Oct-2023 Kevin Wolf <kwolf@redhat.com>

vhdx: Take locks for accessing bs->file

This updates the vhdx code to add GRAPH_RDLOCK annotations for all
places that read bs->file.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-ID: <20231

vhdx: Take locks for accessing bs->file

This updates the vhdx code to add GRAPH_RDLOCK annotations for all
places that read bs->file.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-ID: <20231027155333.420094-23-kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

8f89734127-Oct-2023 Kevin Wolf <kwolf@redhat.com>

qcow2: Take locks for accessing bs->file

This updates the qcow2 code to add GRAPH_RDLOCK annotations for all
places that read bs->file.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-ID: <202

qcow2: Take locks for accessing bs->file

This updates the qcow2 code to add GRAPH_RDLOCK annotations for all
places that read bs->file.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-ID: <20231027155333.420094-22-kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

79a5586627-Oct-2023 Kevin Wolf <kwolf@redhat.com>

block: Add missing GRAPH_RDLOCK annotations

This adds GRAPH_RDLOCK to some driver callbacks that are already called
with the graph lock held, and which will need the annotation because
they access b

block: Add missing GRAPH_RDLOCK annotations

This adds GRAPH_RDLOCK to some driver callbacks that are already called
with the graph lock held, and which will need the annotation because
they access bs->file, but don't have it yet.

This also covers a few callbacks that were not marked GRAPH_RDLOCK
before, but where updating BlockDriver is trivially possible.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-ID: <20231027155333.420094-21-kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

e2dd273727-Oct-2023 Kevin Wolf <kwolf@redhat.com>

block: Introduce bdrv_co_change_backing_file()

bdrv_change_backing_file() is called both inside and outside coroutine
context. This makes it difficult for it to take the graph lock
internally. It al

block: Introduce bdrv_co_change_backing_file()

bdrv_change_backing_file() is called both inside and outside coroutine
context. This makes it difficult for it to take the graph lock
internally. It also means that driver implementations need to be able to
run outside of coroutines, too. Switch it to the usual model with a
coroutine based implementation and a co_wrapper instead. The new
function is marked GRAPH_RDLOCK.

As the co_wrapper now runs the function in the AioContext of the node
(as it should always have done), this is not GLOBAL_STATE_CODE() any
more.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-ID: <20231027155333.420094-20-kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

244b26d227-Oct-2023 Kevin Wolf <kwolf@redhat.com>

blkverify: Add locking for request_fn

This is either bdrv_co_preadv() or bdrv_co_pwritev() which both need to
have the graph locked. Annotate the function pointer accordingly and add
locking to its

blkverify: Add locking for request_fn

This is either bdrv_co_preadv() or bdrv_co_pwritev() which both need to
have the graph locked. Annotate the function pointer accordingly and add
locking to its callers.

This shouldn't actually have resulted in a bug because the graph lock is
already held by blkverify_co_prwv(), which waits for the coroutines to
terminate. Annotate with GRAPH_RDLOCK as well to make this clearer.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-ID: <20231027155333.420094-19-kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

004915a927-Oct-2023 Kevin Wolf <kwolf@redhat.com>

block: Protect bs->backing with graph_lock

Almost all functions that access bs->backing already take the graph
lock now. Add locking to the remaining users and finally annotate the
struct field itse

block: Protect bs->backing with graph_lock

Almost all functions that access bs->backing already take the graph
lock now. Add locking to the remaining users and finally annotate the
struct field itself as protected by the graph lock.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-ID: <20231027155333.420094-18-kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

ccd6a37927-Oct-2023 Kevin Wolf <kwolf@redhat.com>

block: Mark bdrv_replace_node() GRAPH_WRLOCK

Instead of taking the writer lock internally, require callers to already
hold it when calling bdrv_replace_node(). Its callers may already want
to hold t

block: Mark bdrv_replace_node() GRAPH_WRLOCK

Instead of taking the writer lock internally, require callers to already
hold it when calling bdrv_replace_node(). Its callers may already want
to hold the graph lock and so wouldn't be able to call functions that
take it internally.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-ID: <20231027155333.420094-17-kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

d0f9fd9427-Oct-2023 Kevin Wolf <kwolf@redhat.com>

block: Mark bdrv_set_backing_hd_drained() GRAPH_WRLOCK

Instead of taking the writer lock internally, require callers to already
hold it when calling bdrv_set_backing_hd_drained(). Basically everthin

block: Mark bdrv_set_backing_hd_drained() GRAPH_WRLOCK

Instead of taking the writer lock internally, require callers to already
hold it when calling bdrv_set_backing_hd_drained(). Basically everthing
in the function needs the lock and its callers may already want to hold
the graph lock and so wouldn't be able to call functions that take it
internally.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-ID: <20231027155333.420094-14-kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

78a9c76e27-Oct-2023 Kevin Wolf <kwolf@redhat.com>

block: Mark bdrv_cow_child() and callers GRAPH_RDLOCK

This adds GRAPH_RDLOCK annotations to declare that callers of
bdrv_cow_child() need to hold a reader lock for the graph because it
accesses bs->

block: Mark bdrv_cow_child() and callers GRAPH_RDLOCK

This adds GRAPH_RDLOCK annotations to declare that callers of
bdrv_cow_child() need to hold a reader lock for the graph because it
accesses bs->backing.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-ID: <20231027155333.420094-13-kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

79bb762727-Oct-2023 Kevin Wolf <kwolf@redhat.com>

block: Mark bdrv_chain_contains() and callers GRAPH_RDLOCK

This adds GRAPH_RDLOCK annotations to declare that callers of
bdrv_chain_contains() need to hold a reader lock for the graph because
it cal

block: Mark bdrv_chain_contains() and callers GRAPH_RDLOCK

This adds GRAPH_RDLOCK annotations to declare that callers of
bdrv_chain_contains() need to hold a reader lock for the graph because
it calls bdrv_filter_or_cow_bs(), which accesses bs->file/backing.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-ID: <20231027155333.420094-11-kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

9275fc7227-Oct-2023 Kevin Wolf <kwolf@redhat.com>

block: Mark bdrv_(un)freeze_backing_chain() and callers GRAPH_RDLOCK

This adds GRAPH_RDLOCK annotations to declare that callers of
bdrv_(un)freeze_backing_chain() need to hold a reader lock for the

block: Mark bdrv_(un)freeze_backing_chain() and callers GRAPH_RDLOCK

This adds GRAPH_RDLOCK annotations to declare that callers of
bdrv_(un)freeze_backing_chain() need to hold a reader lock for the
graph because it calls bdrv_filter_or_cow_child(), which accesses
bs->file/backing.

Use the opportunity to make bdrv_is_backing_chain_frozen() static, it
has no external callers.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-ID: <20231027155333.420094-10-kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

12345678910>>...248