linux/arch
Joshua Wise 4f84e4be53 x86_64: fix misplaced `continue' in mce.c
Background:
  When a userspace application wants to know about machine check events, it
  opens /dev/mcelog and does a read(). Usually, we found that this interface
  works well, but in some cases, when the system was taking large numbers of
  machine check exceptions, the read() would hang. The system would output a
  soft-lockup warning, and the daemon reading from /dev/mcelog would suck up
  as much of a single CPU as it could spinning in system space.

Description:
  This patch fixes this bug. In particular, there was a "continue" inside a
  timeout loop that presumably was intended to break out of the outer loop,
  but instead caused the inner loop to continue. This patch also makes the
  condition for the break-out a little more evident by changing a
  !time_before to a time_after_eq.

Result:
  The read() no longer hangs in this test case.

Testing:
  On my system, I could replicate the bug with the following command:
    # for i in `seq 15000`; do ./inject_sbe.sh; done
  where inject_sbe.sh contains commands to inject a single-bit error into the
  next memory write transaction.

Patch:
  This patch is against git f1518a088b.

Signed-off-by: Joshua Wise <jwise@google.com>
Signed-off-by: Tim Hockin <thockin@google.com>
Cc: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-06-24 08:59:12 -07:00
..
alpha alpha: fix alignment problem in csum_ipv6_magic() 2007-06-24 08:59:11 -07:00
arm
arm26
avr32 [AVR32] Update defconfigs 2007-06-23 15:43:48 +02:00
blackfin Blackfin arch: match kernel startup messaage with new linker script 2007-06-21 11:34:16 +08:00
cris
frv
h8300
i386 i386: Make CMPXCHG64 only dependent on PAE 2007-06-22 18:41:18 -07:00
ia64
m32r
m68k x86_64: Quieten Atari keyboard warnings in Kconfig 2007-06-20 14:27:26 -07:00
m68knommu
mips
parisc [PARISC] unwinder improvements 2007-06-21 17:46:22 -04:00
powerpc
ppc
s390
sh
sh64
sparc
sparc64
um
v850
x86_64 x86_64: fix misplaced `continue' in mce.c 2007-06-24 08:59:12 -07:00
xtensa