-
- Downloads
memory: prevent dma-reentracy issues
Add a flag to the DeviceState, when a device is engaged in PIO/MMIO/DMA. This flag is set/checked prior to calling a device's MemoryRegion handlers, and set when device code initiates DMA. The purpose of this flag is to prevent two types of DMA-based reentrancy issues: 1.) mmio -> dma -> mmio case 2.) bh -> dma write -> mmio case These issues have led to problems such as stack-exhaustion and use-after-frees. Summary of the problem from Peter Maydell: https://lore.kernel.org/qemu-devel/CAFEAcA_23vc7hE3iaM-JVA6W38LK4hJoWae5KcknhPRD5fPBZA@mail.gmail.com Resolves: qemu-project/qemu#62 Resolves: qemu-project/qemu#540 Resolves: qemu-project/qemu#541 Resolves: qemu-project/qemu#556 Resolves: qemu-project/qemu#557 Resolves: qemu-project/qemu#827 Resolves: qemu-project/qemu#1282 Signed-off-by:Alexander Bulekov <alxndr@bu.edu> Reviewed-by:
Darren Kenny <darren.kenny@oracle.com> Reviewed-by:
Stefan Hajnoczi <stefanha@redhat.com> Acked-by:
Peter Xu <peterx@redhat.com> Acked-by:
Michael S. Tsirkin <mst@redhat.com> Message-Id: <20230205040737.3567731-2-alxndr@bu.edu> Signed-off-by:
Thomas Huth <thuth@redhat.com>
Please register or sign in to comment