Skip to content

Commit 4db9e35

Browse files
hoshinolinajannau
authored andcommitted
drm/asahi: mmu: Add some barriers
Just being paranoid. Signed-off-by: Asahi Lina <lina@asahilina.net>
1 parent b24ed83 commit 4db9e35

1 file changed

Lines changed: 4 additions & 0 deletions

File tree

drivers/gpu/drm/asahi/mmu.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -303,6 +303,7 @@ impl gpuvm::DriverGpuVm for VmInner {
303303
self.unmap_pages(va.addr(), UAT_PGSZ, (va.range() >> UAT_PGBIT) as usize)?;
304304

305305
if let Some(asid) = self.slot() {
306+
fence(Ordering::SeqCst);
306307
mem::tlbi_range(asid as u8, va.addr() as usize, va.range() as usize);
307308
mod_dev_dbg!(
308309
self.dev,
@@ -356,6 +357,7 @@ impl gpuvm::DriverGpuVm for VmInner {
356357
self.unmap_pages(unmap_start, UAT_PGSZ, (unmap_range >> UAT_PGBIT) as usize)?;
357358

358359
if let Some(asid) = self.slot() {
360+
fence(Ordering::SeqCst);
359361
mem::tlbi_range(asid as u8, unmap_start as usize, unmap_range as usize);
360362
mod_dev_dbg!(
361363
self.dev,
@@ -665,6 +667,7 @@ impl KernelMapping {
665667
self.size()
666668
);
667669
}
670+
fence(Ordering::SeqCst);
668671

669672
// If we don't have (and have never had) a VM slot, just return
670673
let slot = match owner.slot() {
@@ -815,6 +818,7 @@ impl Drop for KernelMapping {
815818
}
816819

817820
if let Some(asid) = owner.slot() {
821+
fence(Ordering::SeqCst);
818822
mem::tlbi_range(asid as u8, self.iova() as usize, self.size());
819823
mod_dev_dbg!(
820824
owner.dev,

0 commit comments

Comments
 (0)