Always check shootdown reqs when locking addrsp.

This commit is contained in:
4lDO2
2024-03-04 15:17:23 +01:00
parent 3a592b9079
commit 1f8d7bc67c
13 changed files with 78 additions and 56 deletions
+2 -2
View File
@@ -408,12 +408,12 @@ impl Context {
if let Some(ref prev_addrsp) = self.addr_space {
assert!(Arc::ptr_eq(&this_percpu.current_addrsp.borrow().as_ref().unwrap(), prev_addrsp));
prev_addrsp.inner.read().used_by.atomic_clear(this_percpu.cpu_id);
prev_addrsp.acquire_read().used_by.atomic_clear(this_percpu.cpu_id);
}
*this_percpu.current_addrsp.borrow_mut() = Some(Arc::clone(&addr_space));
let new_addrsp = addr_space.inner.read();
let new_addrsp = addr_space.acquire_read();
new_addrsp.used_by.atomic_set(this_percpu.cpu_id);
unsafe {