Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 16 May 2009 18:56:15 GMT
From:      Andi Kleen <andi-fbsd@firstfloor.org>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   misc/134586: Incorrect machine check exception handler test
Message-ID:  <200905161856.n4GIuFLO043761@www.freebsd.org>
Resent-Message-ID: <200905161900.n4GJ09vP024763@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         134586
>Category:       misc
>Synopsis:       Incorrect machine check exception handler test
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sat May 16 19:00:09 UTC 2009
>Closed-Date:
>Last-Modified:
>Originator:     Andi Kleen
>Release:        code review of HEAD 090516
>Organization:
Intel OTC
>Environment:
>Description:
Obvious bug found during code reading of the x86 machine check handler.

Machine check exceptions don't check for UC and PCC because the OVER
check always overwrites the check mask.  Obviously the OVER assignment
should be a or.

See the attached patch for a fix.

I think there are more problems, but that seems to be the most serious
one.

>How-To-Repeat:
Trigger a uncorrected memory error (e.g. hair dryer on DIMMs on a system with ECC memory) See if the system panics.


>Fix:
Apply patch.


Patch attached with submission follows:

Index: i386/i386/mca.c
===================================================================
--- i386/i386/mca.c	(revision 192202)
+++ i386/i386/mca.c	(working copy)
@@ -346,7 +346,7 @@
 
 	/* When handling a MCE#, treat the OVER flag as non-restartable. */
 	if (mcip)
-		ucmask = MC_STATUS_OVER;
+		ucmask |= MC_STATUS_OVER;
 	mcg_cap = rdmsr(MSR_MCG_CAP);
 	for (i = 0; i < (mcg_cap & MCG_CAP_COUNT); i++) {
 		rec = mca_record_entry(i);


>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200905161856.n4GIuFLO043761>