rmm: Remove fallback impl of invalidate_all
It doesn't work on all non-x86 architectures.
This commit is contained in:
+1
-9
@@ -79,17 +79,9 @@ pub trait Arch: Clone + Copy {
|
||||
}
|
||||
|
||||
unsafe fn invalidate(address: VirtualAddress);
|
||||
|
||||
#[inline(always)]
|
||||
unsafe fn invalidate_all() {
|
||||
unsafe {
|
||||
//TODO: this stub only works on x86_64, maybe make the arch implement this?
|
||||
Self::set_table(TableKind::User, Self::table(TableKind::User));
|
||||
}
|
||||
}
|
||||
unsafe fn invalidate_all();
|
||||
|
||||
unsafe fn table(table_kind: TableKind) -> PhysicalAddress;
|
||||
|
||||
unsafe fn set_table(table_kind: TableKind, address: PhysicalAddress);
|
||||
|
||||
#[inline(always)]
|
||||
|
||||
@@ -36,6 +36,11 @@ impl Arch for X86Arch {
|
||||
unsafe { asm!("invlpg [{0}]", in(reg) address.data()) };
|
||||
}
|
||||
|
||||
#[inline(always)]
|
||||
unsafe fn invalidate_all() {
|
||||
unsafe { Self::set_table(TableKind::User, Self::table(TableKind::User)) };
|
||||
}
|
||||
|
||||
#[inline(always)]
|
||||
unsafe fn table(_table_kind: TableKind) -> PhysicalAddress {
|
||||
let address: usize;
|
||||
|
||||
@@ -35,6 +35,11 @@ impl Arch for X8664Arch {
|
||||
unsafe { asm!("invlpg [{0}]", in(reg) address.data()) };
|
||||
}
|
||||
|
||||
#[inline(always)]
|
||||
unsafe fn invalidate_all() {
|
||||
unsafe { Self::set_table(TableKind::User, Self::table(TableKind::User)) };
|
||||
}
|
||||
|
||||
#[inline(always)]
|
||||
unsafe fn table(_table_kind: TableKind) -> PhysicalAddress {
|
||||
let address: usize;
|
||||
|
||||
Reference in New Issue
Block a user