From b5fc1882b8093c93638c797f071c8c1d04090026 Mon Sep 17 00:00:00 2001 From: Matthew Dillon Date: Thu, 22 Dec 2011 11:45:06 -0800 Subject: [PATCH] kernel - Reorder critical section interlock in splz() * Reorder a critical section interlock in splz() to remove a one-instruction window where an interrupt might nest against the splz() operation. --- sys/platform/pc32/i386/ipl.s | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/sys/platform/pc32/i386/ipl.s b/sys/platform/pc32/i386/ipl.s index 05bf5a2..01f2324 100644 --- a/sys/platform/pc32/i386/ipl.s +++ b/sys/platform/pc32/i386/ipl.s @@ -443,8 +443,8 @@ splz_soft: addl $FIRST_SOFTINT,%ecx /* actual intr number */ pushl %eax pushl %ecx - decl TD_CRITCOUNT(%ebx) incl TD_NEST_COUNT(%ebx) /* prevent doreti/splz nesting */ + decl TD_CRITCOUNT(%ebx) call sched_ithd_soft /* YYY must pull in imasks */ incl TD_CRITCOUNT(%ebx) decl TD_NEST_COUNT(%ebx) /* prevent doreti/splz nesting */ -- 1.7.7.2