]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
x86 MCA: Fix a deadlock in MCA exception processing
authorcem <cem@FreeBSD.org>
Fri, 28 Apr 2017 18:25:10 +0000 (18:25 +0000)
committercem <cem@FreeBSD.org>
Fri, 28 Apr 2017 18:25:10 +0000 (18:25 +0000)
commit2f88ac47ebdf787c598b767fcbc740d46e97b41a
tree7d542901697696baeb812ec36ae70a6188868578
parent49410d83f108a7f9de59a6d85b89e96391d78745
x86 MCA: Fix a deadlock in MCA exception processing

In exceptional circumstances, an MCA exception will trigger when the
freelist is exhausted. In such a case, no error will be logged on the list
and 'mca_count' will not be incremented.

Prior to this patch, all CPUs that received the exception would spin
forever.

With this change, the CPU that detects the error but finds the freelist
empty will proceed to panic the machine, ending the deadlock.

A follow-up to r260457.

Reported by: Ryan Libby <rlibby at gmail.com>
Reviewed by: jhb@
Sponsored by: Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D10536
sys/x86/x86/mca.c