linux/arch/x86/lib
Andrew Morton 35d5d08a08 x86: disable preemption in delay_tsc()
Marin Mitov points out that delay_tsc() can misbehave if it is preempted and
rescheduled on a different CPU which has a skewed TSC.  Fix it by disabling
preemption.

(I assume that the worst-case behaviour here is a stall of 2^32 cycles)

Cc: Andi Kleen <ak@suse.de>
Cc: Marin Mitov <mitov@issp.bas.bg>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-11-14 18:45:44 -08:00
..
Makefile x86_64: move lib 2007-10-11 11:17:08 +02:00
Makefile_32 i386: move lib 2007-10-11 11:16:33 +02:00
Makefile_64 x86_64: move lib 2007-10-11 11:17:08 +02:00
bitops_32.c i386: move lib 2007-10-11 11:16:33 +02:00
bitops_64.c x86_64: move lib 2007-10-11 11:17:08 +02:00
bitstr_64.c x86: fix off-by-one in find_next_zero_string 2007-10-17 20:15:22 +02:00
checksum_32.S i386: move lib 2007-10-11 11:16:33 +02:00
clear_page_64.S x86_64: move lib 2007-10-11 11:17:08 +02:00
copy_page_64.S x86_64: move lib 2007-10-11 11:17:08 +02:00
copy_user_64.S x86_64: move lib 2007-10-11 11:17:08 +02:00
copy_user_nocache_64.S x86: fence oostores on 64-bit 2007-10-12 18:41:21 -07:00
csum-copy_64.S x86_64: move lib 2007-10-11 11:17:08 +02:00
csum-partial_64.c x86_64: move lib 2007-10-11 11:17:08 +02:00
csum-wrappers_64.c x86_64: move lib 2007-10-11 11:17:08 +02:00
delay_32.c x86: disable preemption in delay_tsc() 2007-11-14 18:45:44 -08:00
delay_64.c x86: disable preemption in delay_tsc() 2007-11-14 18:45:44 -08:00
getuser_32.S i386: move lib 2007-10-11 11:16:33 +02:00
getuser_64.S x86_64: move lib 2007-10-11 11:17:08 +02:00
io_64.c x86_64: move lib 2007-10-11 11:17:08 +02:00
iomap_copy_64.S x86_64: move lib 2007-10-11 11:17:08 +02:00
memcpy_32.c i386: move lib 2007-10-11 11:16:33 +02:00
memcpy_64.S x86_64: move lib 2007-10-11 11:17:08 +02:00
memmove_64.c x86_64: move lib 2007-10-11 11:17:08 +02:00
memset_64.S x86_64: move lib 2007-10-11 11:17:08 +02:00
mmx_32.c i386: move lib 2007-10-11 11:16:33 +02:00
msr-on-cpu.c i386: simplify smp_call_function_single() call sequence in msr-on-cpu 2007-10-17 20:16:20 +02:00
putuser_32.S i386: move lib 2007-10-11 11:16:33 +02:00
putuser_64.S x86_64: move lib 2007-10-11 11:17:08 +02:00
rwlock_64.S x86: rename .i assembler includes to .h 2007-10-17 20:16:29 +02:00
semaphore_32.S x86: rename .i assembler includes to .h 2007-10-17 20:16:29 +02:00
string_32.c i386: Remove strrchr assembler implementation 2007-10-17 20:16:23 +02:00
strstr_32.c i386: move lib 2007-10-11 11:16:33 +02:00
thunk_64.S lockdep: x86_64: connect the sysexit hook 2007-10-11 22:11:12 +02:00
usercopy_32.c pid namespaces: define is_global_init() and is_container_init() 2007-10-19 11:53:37 -07:00
usercopy_64.c x86_64: move lib 2007-10-11 11:17:08 +02:00