]> git.kernelconcepts.de Git - karo-tx-linux.git/commit
x86: disable preemption in delay_tsc()
authorAndrew Morton <akpm@linux-foundation.org>
Thu, 15 Nov 2007 01:00:41 +0000 (17:00 -0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 26 Nov 2007 17:42:29 +0000 (09:42 -0800)
commit778b656e0e63efe0437fe337b9556bec73dc2f9d
tree351f3a7a7dd9ce211163613151a5195fcb9d1989
parente35595f90a819298c9d518a2a84007a4d5a797fe
x86: disable preemption in delay_tsc()

patch 35d5d08a085c56f153458c3f5d8ce24123617faf in mainline.

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>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
arch/i386/lib/delay.c
arch/x86_64/lib/delay.c