mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-16 04:37:07 +07:00
297b64c743
The UEFI spec includes non-standard section type support in the Common Platform Error Record. This is defined in section N.2.3 of UEFI version 2.5. Currently if the CPER section's type (UUID) does not match any section type that the kernel knows how to parse, a trace event is not generated. Generate a trace event which contains the raw error data for non-standard section type error records. Signed-off-by: Tyler Baicar <tbaicar@codeaurora.org> CC: Jonathan (Zhixiong) Zhang <zjzhang@codeaurora.org> Tested-by: Shiju Jose <shiju.jose@huawei.com> Signed-off-by: Will Deacon <will.deacon@arm.com>
49 lines
1007 B
C
49 lines
1007 B
C
/*
|
|
* Copyright (C) 2014 Intel Corporation
|
|
*
|
|
* Authors:
|
|
* Chen, Gong <gong.chen@linux.intel.com>
|
|
*/
|
|
|
|
#include <linux/init.h>
|
|
#include <linux/ras.h>
|
|
#include <linux/uuid.h>
|
|
|
|
#define CREATE_TRACE_POINTS
|
|
#define TRACE_INCLUDE_PATH ../../include/ras
|
|
#include <ras/ras_event.h>
|
|
|
|
void log_non_standard_event(const uuid_le *sec_type, const uuid_le *fru_id,
|
|
const char *fru_text, const u8 sev, const u8 *err,
|
|
const u32 len)
|
|
{
|
|
trace_non_standard_event(sec_type, fru_id, fru_text, sev, err, len);
|
|
}
|
|
|
|
static int __init ras_init(void)
|
|
{
|
|
int rc = 0;
|
|
|
|
ras_debugfs_init();
|
|
rc = ras_add_daemon_trace();
|
|
|
|
return rc;
|
|
}
|
|
subsys_initcall(ras_init);
|
|
|
|
#if defined(CONFIG_ACPI_EXTLOG) || defined(CONFIG_ACPI_EXTLOG_MODULE)
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(extlog_mem_event);
|
|
#endif
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(mc_event);
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(non_standard_event);
|
|
|
|
int __init parse_ras_param(char *str)
|
|
{
|
|
#ifdef CONFIG_RAS_CEC
|
|
parse_cec_param(str);
|
|
#endif
|
|
|
|
return 1;
|
|
}
|
|
__setup("ras", parse_ras_param);
|