Fix some issues:
1.Backport 4 patches from openEuler master branch. 2.Enable compilation of the feature memory fault prediction based on corrected error. 3.Fix changelog date error of this spec file. Signed-off-by: Xiaofei Tan <tanxiaofei@huawei.com> (cherry picked from commit beb85dd5cfd3920dee725abb2e07fffd13f3dc1c)
This commit is contained in:
parent
cdc3865890
commit
cefb2d1861
@ -0,0 +1,55 @@
|
||||
From 44fa917e290255570772926a2a11fd5bee3af90c Mon Sep 17 00:00:00 2001
|
||||
From: Xiaofei Tan <tanxiaofei@huawei.com>
|
||||
Date: Mon, 11 Oct 2021 10:22:10 +0800
|
||||
Subject: [PATCH 1/4] rasdaemon: Fix the issue of sprintf data type mismatch in
|
||||
uuid_le()
|
||||
|
||||
The data type of sprintf called in the function uuid_le() is mismatch.
|
||||
Arm64 compiler force it to unsigned char by default, and can work normally.
|
||||
But if someone compile it with the option -fsigned-char, the function
|
||||
can't work correctly.
|
||||
|
||||
Signed-off-by: Xiaofei Tan <tanxiaofei@huawei.com>
|
||||
---
|
||||
ras-extlog-handler.c | 2 +-
|
||||
ras-non-standard-handler.c | 4 ++--
|
||||
2 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/ras-extlog-handler.c b/ras-extlog-handler.c
|
||||
index 5fd3580..1834687 100644
|
||||
--- a/ras-extlog-handler.c
|
||||
+++ b/ras-extlog-handler.c
|
||||
@@ -152,7 +152,7 @@ static char *uuid_le(const char *uu)
|
||||
static const unsigned char le[16] = {3,2,1,0,5,4,7,6,8,9,10,11,12,13,14,15};
|
||||
|
||||
for (i = 0; i < 16; i++) {
|
||||
- p += sprintf(p, "%.2x", uu[le[i]]);
|
||||
+ p += sprintf(p, "%.2x", (unsigned char) uu[le[i]]);
|
||||
switch (i) {
|
||||
case 3:
|
||||
case 5:
|
||||
diff --git a/ras-non-standard-handler.c b/ras-non-standard-handler.c
|
||||
index 6ccf5bc..6d5a6f8 100644
|
||||
--- a/ras-non-standard-handler.c
|
||||
+++ b/ras-non-standard-handler.c
|
||||
@@ -36,7 +36,7 @@ static char *uuid_le(const char *uu)
|
||||
static const unsigned char le[16] = {3,2,1,0,5,4,7,6,8,9,10,11,12,13,14,15};
|
||||
|
||||
for (i = 0; i < 16; i++) {
|
||||
- p += sprintf(p, "%.2x", uu[le[i]]);
|
||||
+ p += sprintf(p, "%.2x", (unsigned char) uu[le[i]]);
|
||||
switch (i) {
|
||||
case 3:
|
||||
case 5:
|
||||
@@ -61,7 +61,7 @@ static int uuid_le_cmp(const char *sec_type, const char *uuid2)
|
||||
3, 2, 1, 0, 5, 4, 7, 6, 8, 9, 10, 11, 12, 13, 14, 15};
|
||||
|
||||
for (i = 0; i < 16; i++)
|
||||
- p += sprintf(p, "%.2x", sec_type[le[i]]);
|
||||
+ p += sprintf(p, "%.2x", (unsigned char) sec_type[le[i]]);
|
||||
*p = 0;
|
||||
return strncmp(uuid1, uuid2, 32);
|
||||
}
|
||||
--
|
||||
2.33.0
|
||||
|
||||
@ -0,0 +1,72 @@
|
||||
From 6af26231fd58be578ea7d2ceb009fddf14c386a7 Mon Sep 17 00:00:00 2001
|
||||
From: Xiaofei Tan <tanxiaofei@huawei.com>
|
||||
Date: Mon, 1 Feb 2021 19:09:59 +0800
|
||||
Subject: [PATCH 2/4] rasdaemon: Fix the issue of command option -r for hip08
|
||||
|
||||
It will record event even the option -r is not provided for hip08.
|
||||
It is not right, and fix it.
|
||||
|
||||
Signed-off-by: Xiaofei Tan <tanxiaofei@huawei.com>
|
||||
---
|
||||
non-standard-hisi_hip08.c | 6 +++---
|
||||
non-standard-hisilicon.c | 6 ++++++
|
||||
2 files changed, 9 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/non-standard-hisi_hip08.c b/non-standard-hisi_hip08.c
|
||||
index ebf03e1..9092183 100644
|
||||
--- a/non-standard-hisi_hip08.c
|
||||
+++ b/non-standard-hisi_hip08.c
|
||||
@@ -670,7 +670,7 @@ static int decode_hip08_oem_type1_error(struct ras_events *ras,
|
||||
}
|
||||
|
||||
#ifdef HAVE_SQLITE3
|
||||
- if (!ev_decoder->stmt_dec_record) {
|
||||
+ if (ras->record_events && !ev_decoder->stmt_dec_record) {
|
||||
if (ras_mc_add_vendor_table(ras, &ev_decoder->stmt_dec_record,
|
||||
&hip08_oem_type1_event_tab)
|
||||
!= SQLITE_OK) {
|
||||
@@ -842,7 +842,7 @@ static int decode_hip08_oem_type2_error(struct ras_events *ras,
|
||||
}
|
||||
|
||||
#ifdef HAVE_SQLITE3
|
||||
- if (!ev_decoder->stmt_dec_record) {
|
||||
+ if (ras->record_events && !ev_decoder->stmt_dec_record) {
|
||||
if (ras_mc_add_vendor_table(ras, &ev_decoder->stmt_dec_record,
|
||||
&hip08_oem_type2_event_tab) != SQLITE_OK) {
|
||||
trace_seq_printf(s,
|
||||
@@ -992,7 +992,7 @@ static int decode_hip08_pcie_local_error(struct ras_events *ras,
|
||||
}
|
||||
|
||||
#ifdef HAVE_SQLITE3
|
||||
- if (!ev_decoder->stmt_dec_record) {
|
||||
+ if (ras->record_events && !ev_decoder->stmt_dec_record) {
|
||||
if (ras_mc_add_vendor_table(ras, &ev_decoder->stmt_dec_record,
|
||||
&hip08_pcie_local_event_tab) != SQLITE_OK) {
|
||||
trace_seq_printf(s,
|
||||
diff --git a/non-standard-hisilicon.c b/non-standard-hisilicon.c
|
||||
index a6f5e78..3fccff6 100644
|
||||
--- a/non-standard-hisilicon.c
|
||||
+++ b/non-standard-hisilicon.c
|
||||
@@ -77,6 +77,9 @@ void record_vendor_data(struct ras_ns_ev_decoder *ev_decoder,
|
||||
enum hisi_oem_data_type data_type,
|
||||
int id, int64_t data, const char *text)
|
||||
{
|
||||
+ if (ev_decoder->stmt_dec_record == NULL)
|
||||
+ return;
|
||||
+
|
||||
switch (data_type) {
|
||||
case HISI_OEM_DATA_TYPE_INT:
|
||||
sqlite3_bind_int(ev_decoder->stmt_dec_record, id, data);
|
||||
@@ -94,6 +97,9 @@ int step_vendor_data_tab(struct ras_ns_ev_decoder *ev_decoder, const char *name)
|
||||
{
|
||||
int rc;
|
||||
|
||||
+ if (ev_decoder->stmt_dec_record == NULL)
|
||||
+ return 0;
|
||||
+
|
||||
rc = sqlite3_step(ev_decoder->stmt_dec_record);
|
||||
if (rc != SQLITE_OK && rc != SQLITE_DONE)
|
||||
log(TERM, LOG_ERR,
|
||||
--
|
||||
2.33.0
|
||||
|
||||
@ -0,0 +1,76 @@
|
||||
From 6ff3528ea696377fe1ec666839258abfcf8802b6 Mon Sep 17 00:00:00 2001
|
||||
From: Xiaofei Tan <tanxiaofei@huawei.com>
|
||||
Date: Fri, 20 Aug 2021 10:02:04 +0800
|
||||
Subject: [PATCH 3/4] rasdaemon: Fix some print format issues for hisi common
|
||||
error section
|
||||
|
||||
It is not right to use '%d' to print uint8_t and uint16_t, although
|
||||
there is no function issue. Change to use '%hhu' and '%hu' separately.
|
||||
|
||||
Signed-off-by: Xiaofei Tan <tanxiaofei@huawei.com>
|
||||
---
|
||||
non-standard-hisilicon.c | 20 ++++++++++----------
|
||||
1 file changed, 10 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/non-standard-hisilicon.c b/non-standard-hisilicon.c
|
||||
index 3fccff6..f9c7bd4 100644
|
||||
--- a/non-standard-hisilicon.c
|
||||
+++ b/non-standard-hisilicon.c
|
||||
@@ -198,7 +198,7 @@ static const char* get_soc_desc(uint8_t soc_id)
|
||||
static void decode_module(struct hisi_event *event, uint8_t module_id)
|
||||
{
|
||||
if (module_id >= sizeof(module_name)/sizeof(char *))
|
||||
- HISI_SNPRINTF(event->error_msg, "module=unknown(id=%d) ", module_id);
|
||||
+ HISI_SNPRINTF(event->error_msg, "module=unknown(id=%hhu) ", module_id);
|
||||
else
|
||||
HISI_SNPRINTF(event->error_msg, "module=%s ", module_name[module_id]);
|
||||
}
|
||||
@@ -207,36 +207,36 @@ static void decode_hisi_common_section_hdr(struct ras_ns_ev_decoder *ev_decoder,
|
||||
const struct hisi_common_error_section *err,
|
||||
struct hisi_event *event)
|
||||
{
|
||||
- HISI_SNPRINTF(event->error_msg, "[ table_version=%d", err->version);
|
||||
+ HISI_SNPRINTF(event->error_msg, "[ table_version=%hhu", err->version);
|
||||
if (err->val_bits & BIT(HISI_COMMON_VALID_SOC_ID))
|
||||
HISI_SNPRINTF(event->error_msg, "soc=%s", get_soc_desc(err->soc_id));
|
||||
|
||||
if (err->val_bits & BIT(HISI_COMMON_VALID_SOCKET_ID))
|
||||
- HISI_SNPRINTF(event->error_msg, "socket_id=%d", err->socket_id);
|
||||
+ HISI_SNPRINTF(event->error_msg, "socket_id=%hhu", err->socket_id);
|
||||
|
||||
if (err->val_bits & BIT(HISI_COMMON_VALID_TOTEM_ID))
|
||||
- HISI_SNPRINTF(event->error_msg, "totem_id=%d", err->totem_id);
|
||||
+ HISI_SNPRINTF(event->error_msg, "totem_id=%hhu", err->totem_id);
|
||||
|
||||
if (err->val_bits & BIT(HISI_COMMON_VALID_NIMBUS_ID))
|
||||
- HISI_SNPRINTF(event->error_msg, "nimbus_id=%d", err->nimbus_id);
|
||||
+ HISI_SNPRINTF(event->error_msg, "nimbus_id=%hhu", err->nimbus_id);
|
||||
|
||||
if (err->val_bits & BIT(HISI_COMMON_VALID_SUBSYSTEM_ID))
|
||||
- HISI_SNPRINTF(event->error_msg, "subsystem_id=%d", err->subsystem_id);
|
||||
+ HISI_SNPRINTF(event->error_msg, "subsystem_id=%hhu", err->subsystem_id);
|
||||
|
||||
if (err->val_bits & BIT(HISI_COMMON_VALID_MODULE_ID))
|
||||
decode_module(event, err->module_id);
|
||||
|
||||
if (err->val_bits & BIT(HISI_COMMON_VALID_SUBMODULE_ID))
|
||||
- HISI_SNPRINTF(event->error_msg, "submodule_id=%d", err->submodule_id);
|
||||
+ HISI_SNPRINTF(event->error_msg, "submodule_id=%hhu", err->submodule_id);
|
||||
|
||||
if (err->val_bits & BIT(HISI_COMMON_VALID_CORE_ID))
|
||||
- HISI_SNPRINTF(event->error_msg, "core_id=%d", err->core_id);
|
||||
+ HISI_SNPRINTF(event->error_msg, "core_id=%hhu", err->core_id);
|
||||
|
||||
if (err->val_bits & BIT(HISI_COMMON_VALID_PORT_ID))
|
||||
- HISI_SNPRINTF(event->error_msg, "port_id=%d", err->port_id);
|
||||
+ HISI_SNPRINTF(event->error_msg, "port_id=%hhu", err->port_id);
|
||||
|
||||
if (err->val_bits & BIT(HISI_COMMON_VALID_ERR_TYPE))
|
||||
- HISI_SNPRINTF(event->error_msg, "err_type=%d", err->err_type);
|
||||
+ HISI_SNPRINTF(event->error_msg, "err_type=%hu", err->err_type);
|
||||
|
||||
if (err->val_bits & BIT(HISI_COMMON_VALID_PCIE_INFO))
|
||||
HISI_SNPRINTF(event->error_msg, "pcie_device_id=%04x:%02x:%02x.%x",
|
||||
--
|
||||
2.33.0
|
||||
|
||||
@ -0,0 +1,35 @@
|
||||
From 31c1d5f335aa63fb02583eca8fe21a18fbcb865e Mon Sep 17 00:00:00 2001
|
||||
From: Xiaofei Tan <tanxiaofei@huawei.com>
|
||||
Date: Fri, 20 Aug 2021 10:39:12 +0800
|
||||
Subject: [PATCH 4/4] rasdaemon: Add some modules supported by hisi common
|
||||
error section
|
||||
|
||||
Add some modules supported by hisi common error section. Besides,
|
||||
HHA is the module for some old platform, and it takes the same place
|
||||
of MATA, so remove it.
|
||||
|
||||
Signed-off-by: Xiaofei Tan <tanxiaofei@huawei.com>
|
||||
---
|
||||
non-standard-hisilicon.c | 6 +++++-
|
||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/non-standard-hisilicon.c b/non-standard-hisilicon.c
|
||||
index f9c7bd4..1432163 100644
|
||||
--- a/non-standard-hisilicon.c
|
||||
+++ b/non-standard-hisilicon.c
|
||||
@@ -184,7 +184,11 @@ static const char* module_name[] = {
|
||||
"SEC",
|
||||
"RDE",
|
||||
"MEE",
|
||||
- "HHA",
|
||||
+ "L4D",
|
||||
+ "Tsensor",
|
||||
+ "ROH",
|
||||
+ "BTC",
|
||||
+ "HILINK"
|
||||
};
|
||||
|
||||
static const char* get_soc_desc(uint8_t soc_id)
|
||||
--
|
||||
2.33.0
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
Name: rasdaemon
|
||||
Version: 0.6.7
|
||||
Release: 2
|
||||
Release: 3
|
||||
License: GPLv2
|
||||
Summary: Utility to get Platform Reliability, Availability and Serviceability (RAS) reports via the Kernel tracing events
|
||||
URL: https://github.com/mchehab/rasdaemon.git
|
||||
@ -25,6 +25,10 @@ Patch3: bugfix-fix-disk-error-log-storm.patch
|
||||
Patch4: backport-configure.ac-fix-SYSCONFDEFDIR-default-value.patch
|
||||
Patch5: 0001-Support-cpu-fault-isolation-for-corrected-errors.patch
|
||||
Patch6: 0002-Support-cpu-fault-isolation-for-recoverable-errors.patch
|
||||
Patch7: 0001-rasdaemon-Fix-the-issue-of-sprintf-data-type-mismatc.patch
|
||||
Patch8: 0002-rasdaemon-Fix-the-issue-of-command-option-r-for-hip0.patch
|
||||
Patch9: 0003-rasdaemon-Fix-some-print-format-issues-for-hisi-comm.patch
|
||||
Patch10: 0004-rasdaemon-Add-some-modules-supported-by-hisi-common-.patch
|
||||
|
||||
%description
|
||||
The rasdaemon program is a daemon which monitors the platform
|
||||
@ -43,7 +47,7 @@ autoheader
|
||||
libtoolize --automake --copy --debug --force
|
||||
automake --add-missing
|
||||
%ifarch %{arm} aarch64
|
||||
%configure --enable-mce --enable-aer --enable-sqlite3 --enable-extlog --enable-abrt-report --enable-devlink --enable-diskerror --enable-non-standard --enable-hisi-ns-decode --enable-arm
|
||||
%configure --enable-mce --enable-aer --enable-sqlite3 --enable-extlog --enable-abrt-report --enable-devlink --enable-diskerror --enable-non-standard --enable-hisi-ns-decode --enable-arm --enable-memory-failure --enable-memory-ce-pfa
|
||||
%else
|
||||
%configure --enable-mce --enable-aer --enable-sqlite3 --enable-extlog --enable-abrt-report --enable-devlink --enable-diskerror
|
||||
%endif
|
||||
@ -70,6 +74,20 @@ rm INSTALL %{buildroot}/usr/include/*.h
|
||||
/usr/bin/systemctl enable rasdaemon.service >/dev/null 2>&1 || :
|
||||
|
||||
%changelog
|
||||
* Wed Mar 2 2022 tanxiaofei<tanxiaofei@huawei.com> - 0.6.7-3
|
||||
- Type:bugfix
|
||||
- ID:NA
|
||||
- SUG:NA
|
||||
- DESC:
|
||||
1. Backport 4 patches from openEuler master branch.
|
||||
1) Fix the issue of sprintf data type mismatch in uuid_le()
|
||||
2) Fix the issue of command option -r for hip08
|
||||
3) Fix some print format issues for hisi common error section
|
||||
4) Add some modules supported by hisi common error section
|
||||
2.Enable compilation of the feature memory fault prediction based on
|
||||
corrected error.
|
||||
3.Fix changelog date error of this spec file.
|
||||
|
||||
* Wed Feb 23 2022 luoshengwei<luoshengwei@huawei.com> - 0.6.7-2
|
||||
- Type:feature
|
||||
- ID:NA
|
||||
@ -79,7 +97,7 @@ rm INSTALL %{buildroot}/usr/include/*.h
|
||||
* Wed Dec 8 2021 xujing <xujing99@huawei.com> - 0.6.7-1
|
||||
- Update software to v0.6.7
|
||||
|
||||
* Sat July 29 2021 tanxiaofei<tanxiaofei@huawei.com> - 0.6.6-6
|
||||
* Thu Jul 29 2021 tanxiaofei<tanxiaofei@huawei.com> - 0.6.6-6
|
||||
- Type:feature
|
||||
- ID:NA
|
||||
- SUG:NA
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user