aboutsummaryrefslogtreecommitdiff
path: root/i386/intel
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2023-02-15 10:11:00 +0100
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2023-02-15 10:11:00 +0100
commit2fa00abdeb16e50dd3e98674784c9bd37a173926 (patch)
treee06dfda738b977cf5af1253bfa1ce44bbc262276 /i386/intel
parent66a3231294db21599b44a8f6e157f4d0ea72c86a (diff)
downloadgnumach-2fa00abdeb16e50dd3e98674784c9bd37a173926.tar.gz
gnumach-2fa00abdeb16e50dd3e98674784c9bd37a173926.tar.bz2
gnumach-2fa00abdeb16e50dd3e98674784c9bd37a173926.zip
pmap: Fix busy loop waiting for pmap users
We need to avoid the kernel optimizing away the read from pmap->cpus_using. Use a standard relaxing instruction for that.
Diffstat (limited to 'i386/intel')
-rw-r--r--i386/intel/pmap.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/i386/intel/pmap.c b/i386/intel/pmap.c
index 129e600b..0387fa8d 100644
--- a/i386/intel/pmap.c
+++ b/i386/intel/pmap.c
@@ -300,7 +300,7 @@ lock_data_t pmap_system_lock;
/* using the pmap */ \
signal_cpus(users, (pmap), (s), (e)); \
while ((pmap)->cpus_using & cpus_active & ~cpu_mask) \
- continue; \
+ cpu_pause(); \
} \
\
/* invalidate our own TLB if pmap is in use */ \