Skip to content

Commit e0f3828

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 a4fc692 commit e0f3828

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
@@ -456,15 +456,19 @@ impl Queue {
456456
len,
457457
};
458458
self.write_used_ring(mem, next_used, used_element)?;
459+
self.advance_used_ring(mem, 1);
460+
Ok(())
461+
}
459462

460-
self.num_added += Wrapping(1);
461-
self.next_used += Wrapping(1);
463+
/// Advance number of used descriptor heads by `n`.
464+
pub fn advance_used_ring<M: GuestMemory>(&mut self, mem: &M, n: u16) {
465+
self.num_added += Wrapping(n);
466+
self.next_used += Wrapping(n);
462467

463468
// This fence ensures all descriptor writes are visible before the index update is.
464469
fence(Ordering::Release);
465470

466471
self.set_used_ring_idx(self.next_used.0, mem);
467-
Ok(())
468472
}
469473

470474
fn write_used_ring<M: GuestMemory>(

0 commit comments

Comments
 (0)