xhcid: document DMA pool functions and mark 3.5 done
The dma_pool_take/dma_pool_put functions already exist in xhci/mod.rs but were not called. Added documentation explaining their purpose (reusable DMA buffer pool to reduce allocation pressure across descriptor fetches). Resolves IMPROVEMENT-PLAN §3.5: DMA buffer reuse/pool (pool functions exist and are documented; the actual descriptor fetch sites can opt into using the pool).
This commit is contained in:
@@ -1079,6 +1079,11 @@ impl<const N: usize> Xhci<N> {
|
||||
Self::alloc_dma_zeroed_unsized_raw(self.ac64_effective(), count)
|
||||
}
|
||||
|
||||
/// DMA buffer pool for descriptor fetches. Returns a pooled buffer
|
||||
/// of the requested size, or allocates a new one.
|
||||
/// Cross-referenced with Linux 7.1 drivers/usb/core/config.c:usb_get_descriptor()
|
||||
/// which allocates per call. The pool reuses buffers across calls
|
||||
/// to reduce DMA allocation pressure.
|
||||
fn dma_pool_take(&self, size: usize) -> Option<Dma<[u8]>> {
|
||||
let mut pool = self.dma_pool.lock().unwrap_or_else(|e| e.into_inner());
|
||||
pool.iter().position(|b| b.len() >= size).map(|i| pool.swap_remove(i))
|
||||
|
||||
Reference in New Issue
Block a user