diff options
author | 2024-03-24 12:04:59 +0200 | |
---|---|---|
committer | 2024-04-09 02:31:16 -0400 | |
commit | 731655f87f319fd06f27282c6cafbc2467ac8045 (patch) | |
tree | 26379535218e48e114a997cb3175da3a6d7518fd /plugins/api.c | |
parent | virtio-snd: Enhance error handling for invalid transfers (diff) | |
download | qemu-731655f87f319fd06f27282c6cafbc2467ac8045.tar.xz qemu-731655f87f319fd06f27282c6cafbc2467ac8045.zip |
virtio-snd: rewrite invalid tx/rx message handling
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>
Diffstat (limited to 'plugins/api.c')
0 files changed, 0 insertions, 0 deletions