aboutsummaryrefslogtreecommitdiff
path: root/linux/dev/include/asm-i386/system.h
diff options
context:
space:
mode:
Diffstat (limited to 'linux/dev/include/asm-i386/system.h')
-rw-r--r--linux/dev/include/asm-i386/system.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/linux/dev/include/asm-i386/system.h b/linux/dev/include/asm-i386/system.h
index 41eb65a4..ac091e27 100644
--- a/linux/dev/include/asm-i386/system.h
+++ b/linux/dev/include/asm-i386/system.h
@@ -1,7 +1,8 @@
#ifndef __ASM_SYSTEM_H
#define __ASM_SYSTEM_H
-#include <i386/ipl.h> /* curr_ipl, splx */
+#include <i386/ipl.h> /* curr_ipl[], splx */
+#include <i386/cpu_number.h>
#include <asm/segment.h>
@@ -225,7 +226,7 @@ static inline unsigned long __xchg(unsigned long x, void * ptr, int size)
#define mb() __asm__ __volatile__ ("" : : :"memory")
#define __sti() __asm__ __volatile__ ("sti": : :"memory")
#define __cli() __asm__ __volatile__ ("cli": : :"memory")
-#define __save_flags(x) (x = ((curr_ipl > 0) ? 0 : (1 << 9)))
+#define __save_flags(x) (x = ((curr_ipl[cpu_number()] > 0) ? 0 : (1 << 9)))
#define __restore_flags(x) splx((x & (1 << 9)) ? 0 : 7)
#ifdef __SMP__