Skip to content

Commit 3cedad8

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 c8a77a8 commit 3cedad8

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
@@ -452,15 +452,19 @@ impl Queue {
452452
len,
453453
};
454454
self.write_used_ring(mem, next_used, used_element)?;
455+
self.advance_used_ring(mem, 1);
456+
Ok(())
457+
}
455458

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

459464
// This fence ensures all descriptor writes are visible before the index update is.
460465
fence(Ordering::Release);
461466

462467
self.set_used_ring_idx(self.next_used.0, mem);
463-
Ok(())
464468
}
465469

466470
fn write_used_ring<M: GuestMemory>(

0 commit comments

Comments
 (0)