diff options
Diffstat (limited to 'i386')
-rw-r--r-- | i386/i386/lock.h | 1 | ||||
-rw-r--r-- | i386/intel/pmap.c | 6 |
2 files changed, 4 insertions, 3 deletions
diff --git a/i386/i386/lock.h b/i386/i386/lock.h index 4b445ae4..b189a559 100644 --- a/i386/i386/lock.h +++ b/i386/i386/lock.h @@ -30,6 +30,7 @@ #define _I386_LOCK_H_ #if NCPUS > 1 +#include <i386/smp.h> /* * All of the locking routines are built from calls on diff --git a/i386/intel/pmap.c b/i386/intel/pmap.c index 3b52deb3..3605d120 100644 --- a/i386/intel/pmap.c +++ b/i386/intel/pmap.c @@ -3093,9 +3093,9 @@ void pmap_update_interrupt(void) * Wait for any pmap updates in progress, on either user * or kernel pmap. */ - while (*(volatile int *)&my_pmap->lock.lock_data || - *(volatile int *)&kernel_pmap->lock.lock_data) - continue; + while (my_pmap->lock.lock_data || + kernel_pmap->lock.lock_data) + cpu_pause(); process_pmap_updates(my_pmap); |