xref: /kernel/linux/linux-6.6/drivers/ras/ras.c (revision 62306a36)
162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (C) 2014 Intel Corporation
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Authors:
662306a36Sopenharmony_ci *	Chen, Gong <gong.chen@linux.intel.com>
762306a36Sopenharmony_ci */
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci#include <linux/init.h>
1062306a36Sopenharmony_ci#include <linux/ras.h>
1162306a36Sopenharmony_ci#include <linux/uuid.h>
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ci#define CREATE_TRACE_POINTS
1462306a36Sopenharmony_ci#define TRACE_INCLUDE_PATH ../../include/ras
1562306a36Sopenharmony_ci#include <ras/ras_event.h>
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_civoid log_non_standard_event(const guid_t *sec_type, const guid_t *fru_id,
1862306a36Sopenharmony_ci			    const char *fru_text, const u8 sev, const u8 *err,
1962306a36Sopenharmony_ci			    const u32 len)
2062306a36Sopenharmony_ci{
2162306a36Sopenharmony_ci	trace_non_standard_event(sec_type, fru_id, fru_text, sev, err, len);
2262306a36Sopenharmony_ci}
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_civoid log_arm_hw_error(struct cper_sec_proc_arm *err)
2562306a36Sopenharmony_ci{
2662306a36Sopenharmony_ci	trace_arm_event(err);
2762306a36Sopenharmony_ci}
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_cistatic int __init ras_init(void)
3062306a36Sopenharmony_ci{
3162306a36Sopenharmony_ci	int rc = 0;
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci	ras_debugfs_init();
3462306a36Sopenharmony_ci	rc = ras_add_daemon_trace();
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ci	return rc;
3762306a36Sopenharmony_ci}
3862306a36Sopenharmony_cisubsys_initcall(ras_init);
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ci#if defined(CONFIG_ACPI_EXTLOG) || defined(CONFIG_ACPI_EXTLOG_MODULE)
4162306a36Sopenharmony_ciEXPORT_TRACEPOINT_SYMBOL_GPL(extlog_mem_event);
4262306a36Sopenharmony_ci#endif
4362306a36Sopenharmony_ciEXPORT_TRACEPOINT_SYMBOL_GPL(mc_event);
4462306a36Sopenharmony_ciEXPORT_TRACEPOINT_SYMBOL_GPL(non_standard_event);
4562306a36Sopenharmony_ciEXPORT_TRACEPOINT_SYMBOL_GPL(arm_event);
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_cistatic int __init parse_ras_param(char *str)
4862306a36Sopenharmony_ci{
4962306a36Sopenharmony_ci#ifdef CONFIG_RAS_CEC
5062306a36Sopenharmony_ci	parse_cec_param(str);
5162306a36Sopenharmony_ci#endif
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ci	return 1;
5462306a36Sopenharmony_ci}
5562306a36Sopenharmony_ci__setup("ras", parse_ras_param);
56