Revision 20cd0c86553e14c495451ce7d1e2e4efd81041f0 authored by Manos Pitsidianakis on 24 March 2024, 10:04:59 UTC, committed by Michael Tokarev on 09 April 2024, 18:15:05 UTC
The current handling of invalid virtqueue elements inside the TX/RX virt queue handlers is wrong. They are added in a per-stream invalid queue to be processed after the handler is done examining each message, but the invalid message might not be specifying any stream_id; which means it's invalid to add it to any stream->invalid queue since stream could be NULL at this point. This commit moves the invalid queue to the VirtIOSound struct which guarantees there will always be a valid temporary place to store them inside the tx/rx handlers. The queue will be emptied before the handler returns, so the queue must be empty at any other point of the device's lifetime. Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org> Message-Id: <virtio-snd-rewrite-invalid-tx-rx-message-handling-v1.manos.pitsidianakis@linaro.org> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> (cherry picked from commit 731655f87f319fd06f27282c6cafbc2467ac8045) Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
1 parent 627aa46
File | Mode | Size |
---|---|---|
.github | ||
.gitlab | ||
.gitlab-ci.d | ||
accel | ||
audio | ||
authz | ||
backends | ||
block | ||
bsd-user | ||
chardev | ||
common-user | ||
configs | ||
contrib | ||
crypto | ||
disas | ||
docs | ||
dump | ||
ebpf | ||
fpu | ||
fsdev | ||
gdb-xml | ||
gdbstub | ||
host | ||
hw | ||
include | ||
io | ||
libdecnumber | ||
linux-headers | ||
linux-user | ||
migration | ||
monitor | ||
nbd | ||
net | ||
pc-bios | ||
plugins | ||
po | ||
python | ||
qapi | ||
qga | ||
qobject | ||
qom | ||
replay | ||
roms | ||
scripts | ||
scsi | ||
semihosting | ||
stats | ||
storage-daemon | ||
stubs | ||
subprojects | ||
system | ||
target | ||
tcg | ||
tests | ||
tools | ||
trace | ||
ui | ||
util | ||
.dir-locals.el | -rw-r--r-- | 75 bytes |
.editorconfig | -rw-r--r-- | 951 bytes |
.exrc | -rw-r--r-- | 220 bytes |
.gdbinit | -rw-r--r-- | 326 bytes |
.git-blame-ignore-revs | -rw-r--r-- | 474 bytes |
.gitattributes | -rw-r--r-- | 100 bytes |
.gitignore | -rw-r--r-- | 194 bytes |
.gitlab-ci.yml | -rw-r--r-- | 884 bytes |
.gitmodules | -rw-r--r-- | 1.5 KB |
.gitpublish | -rw-r--r-- | 1.6 KB |
.mailmap | -rw-r--r-- | 10.7 KB |
.patchew.yml | -rw-r--r-- | 8.3 KB |
.readthedocs.yml | -rw-r--r-- | 621 bytes |
.travis.yml | -rw-r--r-- | 7.6 KB |
COPYING | -rw-r--r-- | 17.6 KB |
COPYING.LIB | -rw-r--r-- | 25.9 KB |
Kconfig | -rw-r--r-- | 132 bytes |
Kconfig.host | -rw-r--r-- | 677 bytes |
LICENSE | -rw-r--r-- | 1.1 KB |
MAINTAINERS | -rw-r--r-- | 95.8 KB |
Makefile | -rw-r--r-- | 11.4 KB |
README.rst | -rw-r--r-- | 5.4 KB |
VERSION | -rw-r--r-- | 6 bytes |
block.c | -rw-r--r-- | 254.7 KB |
blockdev-nbd.c | -rw-r--r-- | 7.6 KB |
blockdev.c | -rw-r--r-- | 113.9 KB |
blockjob.c | -rw-r--r-- | 18.1 KB |
configure | -rwxr-xr-x | 56.2 KB |
cpu-common.c | -rw-r--r-- | 12.2 KB |
cpu-target.c | -rw-r--r-- | 11.2 KB |
event-loop-base.c | -rw-r--r-- | 4.0 KB |
gitdm.config | -rw-r--r-- | 1.9 KB |
hmp-commands-info.hx | -rw-r--r-- | 21.7 KB |
hmp-commands.hx | -rw-r--r-- | 54.8 KB |
iothread.c | -rw-r--r-- | 11.6 KB |
job-qmp.c | -rw-r--r-- | 4.3 KB |
job.c | -rw-r--r-- | 32.4 KB |
memory_ldst.c.inc | -rw-r--r-- | 15.7 KB |
meson.build | -rw-r--r-- | 158.8 KB |
meson_options.txt | -rw-r--r-- | 18.5 KB |
module-common.c | -rw-r--r-- | 113 bytes |
os-posix.c | -rw-r--r-- | 7.6 KB |
os-win32.c | -rw-r--r-- | 2.0 KB |
page-vary-common.c | -rw-r--r-- | 1.6 KB |
page-vary-target.c | -rw-r--r-- | 1.2 KB |
pythondeps.toml | -rw-r--r-- | 1.5 KB |
qemu-bridge-helper.c | -rw-r--r-- | 11.9 KB |
qemu-edid.c | -rw-r--r-- | 3.7 KB |
qemu-img-cmds.hx | -rw-r--r-- | 5.5 KB |
qemu-img.c | -rw-r--r-- | 166.0 KB |
qemu-io-cmds.c | -rw-r--r-- | 72.3 KB |
qemu-io.c | -rw-r--r-- | 17.9 KB |
qemu-keymap.c | -rw-r--r-- | 7.6 KB |
qemu-nbd.c | -rw-r--r-- | 39.7 KB |
qemu-options.hx | -rw-r--r-- | 250.2 KB |
qemu.nsi | -rw-r--r-- | 6.7 KB |
qemu.sasl | -rw-r--r-- | 1.7 KB |
replication.c | -rw-r--r-- | 2.5 KB |
trace-events | -rw-r--r-- | 2.4 KB |
version.rc | -rw-r--r-- | 867 bytes |
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...