-/* $OpenBSD: machdep.c,v 1.114 2014/12/10 15:29:53 mikeb Exp $ */
+/* $OpenBSD: machdep.c,v 1.115 2014/12/23 10:59:29 aoyama Exp $ */
/*
* Copyright (c) 1998, 1999, 2000, 2001 Steve Murphree, Jr.
* Copyright (c) 1996 Nivas Madhur
goto out;
#endif
-#ifdef MULTIPROCESSOR
- if (old_spl < IPL_SCHED)
- __mp_lock(&kernel_lock);
-#endif
/*
* Service the highest interrupt, in order.
*/
case 3:
#ifdef MULTIPROCESSOR
if (CPU_IS_PRIMARY(ci)) {
+ if (old_spl < IPL_SCHED)
+ __mp_lock(&kernel_lock);
#endif
isrdispatch_autovec(cur_int_level);
#ifdef MULTIPROCESSOR
+ if (old_spl < IPL_SCHED)
+ __mp_unlock(&kernel_lock);
}
#endif
break;
cur_int_level = cur_isr >> 29;
} while (cur_int_level != 0);
-#ifdef MULTIPROCESSOR
- if (old_spl < IPL_SCHED)
- __mp_unlock(&kernel_lock);
-#endif
-
out:
/*
* process any remaining data access exceptions before