Skip to content

Commit bb8394a

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 later commits where we will advance used ring once after processing multiple descriptors. Signed-off-by: Egor Lazarchuk <[email protected]>
1 parent 476d541 commit bb8394a

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
@@ -454,15 +454,19 @@ impl Queue {
454454
len,
455455
};
456456
self.write_used_ring(mem, next_used, used_element)?;
457+
self.advance_used_ring(mem, 1);
458+
Ok(())
459+
}
457460

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

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

464469
self.set_used_ring_idx(self.next_used.0, mem);
465-
Ok(())
466470
}
467471

468472
fn write_used_ring<M: GuestMemory>(

0 commit comments

Comments
 (0)