X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=include%2Fasm-i386%2Fatomic.h;h=4f061fa7379410f3d08624adbe1faecc1e755aff;hb=c3d8e682b7d10f57d13c86ecbb15806781d6e953;hp=22d80ece95cb48de54ed1dea6e0c9475d10935ba;hpb=1ebbe2b20091d306453a5cf480a87e6cd28ae76f;p=linux-2.6 diff --git a/include/asm-i386/atomic.h b/include/asm-i386/atomic.h index 22d80ece95..4f061fa737 100644 --- a/include/asm-i386/atomic.h +++ b/include/asm-i386/atomic.h @@ -1,7 +1,6 @@ #ifndef __ARCH_I386_ATOMIC__ #define __ARCH_I386_ATOMIC__ -#include #include #include @@ -183,6 +182,7 @@ static __inline__ int atomic_add_return(int i, atomic_t *v) { int __i; #ifdef CONFIG_M386 + unsigned long flags; if(unlikely(boot_cpu_data.x86==3)) goto no_xadd; #endif @@ -196,10 +196,10 @@ static __inline__ int atomic_add_return(int i, atomic_t *v) #ifdef CONFIG_M386 no_xadd: /* Legacy 386 processor */ - local_irq_disable(); + local_irq_save(flags); __i = atomic_read(v); atomic_set(v, i + __i); - local_irq_enable(); + local_irq_restore(flags); return i + __i; #endif }