diff options
Diffstat (limited to 'arch/x86/include/asm/atomic.h')
-rw-r--r-- | arch/x86/include/asm/atomic.h | 16 |
1 files changed, 0 insertions, 16 deletions
diff --git a/arch/x86/include/asm/atomic.h b/arch/x86/include/asm/atomic.h index b6c3b821acf6..722aa3b04624 100644 --- a/arch/x86/include/asm/atomic.h +++ b/arch/x86/include/asm/atomic.h | |||
@@ -172,23 +172,7 @@ static inline int atomic_add_negative(int i, atomic_t *v) | |||
172 | */ | 172 | */ |
173 | static inline int atomic_add_return(int i, atomic_t *v) | 173 | static inline int atomic_add_return(int i, atomic_t *v) |
174 | { | 174 | { |
175 | #ifdef CONFIG_M386 | ||
176 | int __i; | ||
177 | unsigned long flags; | ||
178 | if (unlikely(boot_cpu_data.x86 <= 3)) | ||
179 | goto no_xadd; | ||
180 | #endif | ||
181 | /* Modern 486+ processor */ | ||
182 | return i + xadd(&v->counter, i); | 175 | return i + xadd(&v->counter, i); |
183 | |||
184 | #ifdef CONFIG_M386 | ||
185 | no_xadd: /* Legacy 386 processor */ | ||
186 | raw_local_irq_save(flags); | ||
187 | __i = atomic_read(v); | ||
188 | atomic_set(v, i + __i); | ||
189 | raw_local_irq_restore(flags); | ||
190 | return i + __i; | ||
191 | #endif | ||
192 | } | 176 | } |
193 | 177 | ||
194 | /** | 178 | /** |