]> git.baikalelectronics.ru Git - kernel.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)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Thu, 15 Nov 2007 02:45:44 +0000 (18:45 -0800)
commit6dd4240e619f09735ff89a32ee692758bd23af1c
tree2db6e598e87809bc1ce7838861b2cff18e5fe60d
parent12a6ce5fb01e8597843df38e18f8b3dbd07b1754
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>
arch/x86/lib/delay_32.c
arch/x86/lib/delay_64.c