Skip to content

Commit f3197af

Browse files
committed
refactor: move used ring update into a separate method
Move used ring update into a separate method. This will help with preprocessing of descriptor chains. Signed-off-by: Egor Lazarchuk <[email protected]>
1 parent 9f393ab commit f3197af

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
@@ -450,15 +450,19 @@ impl Queue {
450450
len,
451451
};
452452
self.write_used_ring(mem, next_used, used_element)?;
453+
self.advance_used_ring(mem, 1);
454+
Ok(())
455+
}
453456

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

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

460465
self.set_used_ring_idx(self.next_used.0, mem);
461-
Ok(())
462466
}
463467

464468
fn write_used_ring<M: GuestMemory>(

0 commit comments

Comments
 (0)