aboutsummaryrefslogtreecommitdiff
path: root/qemu-io.c
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2024-11-06 08:59:07 +0100
committerPaolo Bonzini <pbonzini@redhat.com>2024-12-10 18:49:25 +0100
commit37fb26601dd156369ebb84096c2ecfbe89f0a83b (patch)
treefd230a0b955edccb1b6dea0d87d4a2ff739b4954 /qemu-io.c
parent281305d3e08ac7330dfe7cf7b3978c119a888bad (diff)
downloadqemu-37fb26601dd156369ebb84096c2ecfbe89f0a83b.zip
qemu-37fb26601dd156369ebb84096c2ecfbe89f0a83b.tar.gz
qemu-37fb26601dd156369ebb84096c2ecfbe89f0a83b.tar.bz2
bql: check that the BQL is not dropped within marked sections
The Big QEMU Lock (BQL) is used to provide interior mutability to Rust code. While BqlCell performs indivisible accesses, an equivalent of RefCell will allow the borrower to hold to the interior content for a long time. If the BQL is dropped, another thread could come and mutate the data from C code (Rust code would panic on borrow_mut() instead). In order to prevent this, add a new BQL primitive that can mark BQL-atomic sections and aborts if the BQL is dropped within them. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'qemu-io.c')
0 files changed, 0 insertions, 0 deletions