virtio-devices: block, block_io_uring: Don't assume max queue count

Don't assume that the number of queues provided match the number of
queues offered. The virtio spec allows the driver to program fewer
queues.

Signed-off-by: Rob Bradford <robert.bradford@intel.com>
This commit is contained in:
Rob Bradford
2021-01-18 13:55:37 +00:00
committed by Sebastien Boeuf
parent c9b68a3be6
commit c366efc19e
2 changed files with 8 additions and 6 deletions

View File

@@ -444,8 +444,9 @@ impl<T: 'static + DiskFile + Send> VirtioDevice for Block<T> {
self.update_writeback();
let mut epoll_threads = Vec::new();
for i in 0..self.common.queue_sizes.len() {
for i in 0..queues.len() {
let queue_evt = queue_evts.remove(0);
let queue = queues.remove(0);
let kill_evt = self
.common
.kill_evt
@@ -467,7 +468,7 @@ impl<T: 'static + DiskFile + Send> VirtioDevice for Block<T> {
ActivateError::BadActivate
})?;
let mut handler = BlockEpollHandler {
queue: queues.remove(0),
queue,
mem: mem.clone(),
disk_image: self.disk_image.clone(),
disk_nsectors: self.disk_nsectors,