mirror of https://gitee.com/openkylin/linux.git
x86/mce: Fix mce=nobootlog
Since commit8b38937b7a
("x86/mce: Do not enter deferred errors into the generic pool twice") the mce=nobootlog option has become mostly ineffective (after being only slightly ineffective before), as the code is taking actions on MCEs left over from boot when they have a usable address. Move the check for MCP_DONTLOG a bit outward to make it effective again. Also, since commit011d826111
("RAS: Add a Corrected Errors Collector") the two branches of the remaining "if" at the bottom of machine_check_poll() do same. Unify them. Signed-off-by: Jan H. Schönherr <jschoenh@amazon.de> Signed-off-by: Borislav Petkov <bp@suse.de> Link: https://lkml.kernel.org/r/20200103150722.20313-3-jschoenh@amazon.de
This commit is contained in:
parent
8438b84ab4
commit
90454e4959
|
@ -755,26 +755,22 @@ bool machine_check_poll(enum mcp_flags flags, mce_banks_t *b)
|
|||
log_it:
|
||||
error_seen = true;
|
||||
|
||||
if (flags & MCP_DONTLOG)
|
||||
goto clear_it;
|
||||
|
||||
mce_read_aux(&m, i);
|
||||
|
||||
m.severity = mce_severity(&m, mca_cfg.tolerant, NULL, false);
|
||||
|
||||
/*
|
||||
* Don't get the IP here because it's unlikely to
|
||||
* have anything to do with the actual error location.
|
||||
*/
|
||||
if (!(flags & MCP_DONTLOG) && !mca_cfg.dont_log_ce)
|
||||
mce_log(&m);
|
||||
else if (mce_usable_address(&m)) {
|
||||
/*
|
||||
* Although we skipped logging this, we still want
|
||||
* to take action. Add to the pool so the registered
|
||||
* notifiers will see it.
|
||||
*/
|
||||
if (!mce_gen_pool_add(&m))
|
||||
mce_schedule_work();
|
||||
}
|
||||
|
||||
if (mca_cfg.dont_log_ce && !mce_usable_address(&m))
|
||||
goto clear_it;
|
||||
|
||||
mce_log(&m);
|
||||
|
||||
clear_it:
|
||||
/*
|
||||
* Clear state for this bank.
|
||||
*/
|
||||
|
|
Loading…
Reference in New Issue