Skip to content

Fix machine check recovery for instruction fault on Sandy Bridge

Tony Luck lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest2 patches 2 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/2x86/mce: Move MCACOD defines from mce-severity.c to <asm/mce.h>arch/x86/include/asm/mce.h arch/x86/kernel/cpu/mcheck/mce-severity.c+8 -71 reply
2/2x86/mce: Add quirk for instruction recovery on Sandy Bridge processorsarch/x86/kernel/cpu/mcheck/mce.c+40 -31 reply

Reviews trailers per patch

All 2 patches have a Reviewed-by or Acked-by.

PatchBorislav Petkov
1/2A-b A-b
2/2A-b A-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [PATCH 0/2] Fix machine check recovery for instruction fault on Sandy Bridge

[Unchanged since last posted - except to add Boris' Acked-by
since after further discussion his nitpick didn't warrant a change. Ready for x86/mce branch ... and if possible to move to Linus in this merge window]

This patch series adds a workaround for some strange asymmetry between how machine checks are reported for data and instruction fetches. For instruction fetch error the processor does not set the EIPV bit in the MCG_STATUS register on the affected processor, leading us to believe that the cs/ip values saved on the stack are not associated with the machine check ... which in turn makes us unable to determine whether the machine check was taken in kernel or user mode. The workaround is to fake the presence of the EIPV bit for this error on this processor model. Not pretty, but avoids having to make special cases later in the code.

Tony Luck (2):
x86/mce: Move MCACOD defines from mce-severity.c to <asm/mce.h> x86/mce: Add quirk for instruction recovery on Sandy Bridge
processors

 arch/x86/include/asm/mce.h                |  8 ++++++
 arch/x86/kernel/cpu/mcheck/mce-severity.c |  7 -----
 arch/x86/kernel/cpu/mcheck/mce.c          | 43 ++++++++++++++++++++++++++++---
 3 files changed, 48 insertions(+), 10 deletions(-)
Signature · 1 line
1.7.10.2.552.gaa3bb87