diff options
author | Damien Zammit <damien@zamaudio.com> | 2024-02-22 08:24:39 +0000 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2024-02-22 09:43:10 +0100 |
commit | 2981d798351958d2c153bd3cb3c00cc2ebc9f27c (patch) | |
tree | 2bd39146f36c09c14b1987a5d91f69be57c09d25 /kern/processor.c | |
parent | 13b2f36d85756df7088be24acdcf847944b6b9ef (diff) | |
download | gnumach-2981d798351958d2c153bd3cb3c00cc2ebc9f27c.tar.gz gnumach-2981d798351958d2c153bd3cb3c00cc2ebc9f27c.tar.bz2 gnumach-2981d798351958d2c153bd3cb3c00cc2ebc9f27c.zip |
kern/gsync: Use vm_map_lookup with keep_map_locked
This prevents a deadlock in smp where a read lock on the map
is taken in gsync and then the map is locked again inside
vm_map_lookup() but another thread had a pre-existing write lock,
therefore the second read lock blocks.
This is fixed by removing the initial gsync read lock on the map
but keeping the read lock held upon returning from vm_map_lookup().
Co-Authored-By: Sergey Bugaev <bugaevc@gmail.com>
Message-ID: <20240222082410.422869-4-damien@zamaudio.com>
Diffstat (limited to 'kern/processor.c')
0 files changed, 0 insertions, 0 deletions