Skip to content

Commit 974ae3d

Browse files
committed
virtio: initialize queue size with max_size
Apparently, PCI needs Queue::size to be initialized to the maximum possible size supported by the device, otherwise initialization fails. Signed-off-by: Babis Chalios <[email protected]>
1 parent 144b625 commit 974ae3d

File tree

3 files changed

+4
-4
lines changed

3 files changed

+4
-4
lines changed

src/vmm/src/devices/virtio/queue.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,7 @@ impl Queue {
262262
pub fn new(max_size: u16) -> Queue {
263263
Queue {
264264
max_size,
265-
size: 0,
265+
size: max_size,
266266
ready: false,
267267
desc_table_address: GuestAddress(0),
268268
avail_ring_address: GuestAddress(0),

src/vmm/src/devices/virtio/transport/mmio.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -798,7 +798,7 @@ pub(crate) mod tests {
798798
assert_eq!(d.queue_select, 3);
799799

800800
d.queue_select = 0;
801-
assert_eq!(d.locked_device().queues()[0].size, 0);
801+
assert_eq!(d.locked_device().queues()[0].size, 16);
802802
write_le_u32(&mut buf[..], 16);
803803
d.write(0x0, 0x38, &buf[..]);
804804
assert_eq!(d.locked_device().queues()[0].size, 16);

src/vmm/src/devices/virtio/vhost_user.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -922,10 +922,10 @@ pub(crate) mod tests {
922922
// the backend.
923923
let expected_config = VringData {
924924
index: 0,
925-
size: 0,
925+
size: 69,
926926
config: VringConfigData {
927927
queue_max_size: 69,
928-
queue_size: 0,
928+
queue_size: 69,
929929
flags: 0,
930930
desc_table_addr: guest_memory
931931
.get_host_address(queue.desc_table_address)

0 commit comments

Comments
 (0)