Skip to content

Commit aef15a6

Browse files
committed
refactor(queue): move used ring update into a separate method
Move used ring update into a separate method. This will help with preprocessing of descriptor chains in the future. Signed-off-by: Egor Lazarchuk <[email protected]>
1 parent 105f6ab commit aef15a6

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

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

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -449,15 +449,19 @@ impl Queue {
449449
len,
450450
};
451451
self.write_used_ring(mem, next_used, used_element)?;
452+
self.advance_used_ring(mem, 1);
453+
Ok(())
454+
}
452455

453-
self.num_added += Wrapping(1);
454-
self.next_used += Wrapping(1);
456+
/// Advance number of used descriptor heads by `n`.
457+
pub fn advance_used_ring<M: GuestMemory>(&mut self, mem: &M, n: u16) {
458+
self.num_added += Wrapping(n);
459+
self.next_used += Wrapping(n);
455460

456461
// This fence ensures all descriptor writes are visible before the index update is.
457462
fence(Ordering::Release);
458463

459464
self.set_used_ring_idx(self.next_used.0, mem);
460-
Ok(())
461465
}
462466

463467
fn write_used_ring<M: GuestMemory>(

0 commit comments

Comments
 (0)