mirror of
https://github.com/torvalds/linux.git
synced 2026-01-25 07:47:50 +00:00
gpu: nova-core: Simplify DmaObject::from_data in nova-core/dma.rs
This patch solves one of the existing mentions of COHA, a task in the Nova task list about improving the `CoherentAllocation` API. It uses the `write` method from `CoherentAllocation`. Signed-off-by: Daniel del Castillo <delcastillodelarosadaniel@gmail.com> [acourbot@nvidia.com: set prefix to "gpu: nova-core:".] Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Message-ID: <20251104193756.57726-3-delcastillodelarosadaniel@gmail.com>
This commit is contained in:
committed by
Alexandre Courbot
parent
571ce401a7
commit
3577e265e4
@@ -30,20 +30,11 @@ impl DmaObject {
|
||||
}
|
||||
|
||||
pub(crate) fn from_data(dev: &device::Device<device::Bound>, data: &[u8]) -> Result<Self> {
|
||||
Self::new(dev, data.len()).map(|mut dma_obj| {
|
||||
// TODO[COHA]: replace with `CoherentAllocation::write()` once available.
|
||||
// SAFETY:
|
||||
// - `dma_obj`'s size is at least `data.len()`.
|
||||
// - We have just created this object and there is no other user at this stage.
|
||||
unsafe {
|
||||
core::ptr::copy_nonoverlapping(
|
||||
data.as_ptr(),
|
||||
dma_obj.dma.start_ptr_mut(),
|
||||
data.len(),
|
||||
);
|
||||
}
|
||||
|
||||
dma_obj
|
||||
Self::new(dev, data.len()).and_then(|mut dma_obj| {
|
||||
// SAFETY: We have just allocated the DMA memory, we are the only users and
|
||||
// we haven't made the device aware of the handle yet.
|
||||
unsafe { dma_obj.write(data, 0)? }
|
||||
Ok(dma_obj)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user