From: Joe Korty o Fix lockmeter under preemption (i386 only) o Fix compile warnings in kernel/lockmeter.c 25-akpm/arch/i386/Kconfig | 2 +- 25-akpm/include/asm-i386/spinlock.h | 2 ++ 25-akpm/kernel/lockmeter.c | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) diff -puN arch/i386/Kconfig~lockmeter-preemption-fixes arch/i386/Kconfig --- 25/arch/i386/Kconfig~lockmeter-preemption-fixes Thu Nov 20 13:33:12 2003 +++ 25-akpm/arch/i386/Kconfig Thu Nov 20 13:33:12 2003 @@ -1252,7 +1252,7 @@ config DEBUG_INFO config LOCKMETER bool "Kernel lock metering" - depends on SMP && !PREEMPT + depends on SMP help Say Y to enable kernel lock metering, which adds overhead to SMP locks, but allows you to see various statistics using the lockstat command. diff -puN include/asm-i386/spinlock.h~lockmeter-preemption-fixes include/asm-i386/spinlock.h --- 25/include/asm-i386/spinlock.h~lockmeter-preemption-fixes Thu Nov 20 13:33:12 2003 +++ 25-akpm/include/asm-i386/spinlock.h Thu Nov 20 13:33:12 2003 @@ -270,10 +270,12 @@ repeat: return 0; slow_path: + preempt_disable(); _metered_spin_lock(lock); if (atomic_dec_and_test(atomic)) return 1; _metered_spin_unlock(lock); + preempt_enable(); return 0; } diff -puN kernel/lockmeter.c~lockmeter-preemption-fixes kernel/lockmeter.c --- 25/kernel/lockmeter.c~lockmeter-preemption-fixes Thu Nov 20 13:33:12 2003 +++ 25-akpm/kernel/lockmeter.c Thu Nov 20 13:33:12 2003 @@ -23,6 +23,7 @@ #include #include #include +#include #include #include _