Update with the latest patches for the 1. CPU online fault isolation for arm event. 2. Modify recording Hisilicon common error data in the rasdaemon 3. In the ras-mc-ctl, 3.1. Improve Hisilicon common error statistics. 3.2. Add support to display the HiSilicon vendor-errors for a specified module. 3.3. Add printing usage if necessary parameters are not passed for the HiSilicon vendor-errors options. 3.4. Reformat error info of the HiSilicon Kunpeng920. 3.5. Relocate reading and display Kunpeng920 errors to under Kunpeng9xx. 3.6. Updated the HiSilicon platform name as KunPeng9xx. 4. Fixed a memory out-of-bounds issue in the rasdaemon. Signed-off-by: Shiju Jose <shiju.jose@huawei.com>
91 lines
2.9 KiB
Diff
91 lines
2.9 KiB
Diff
From c019f2f82b7f224e95968037f2afc16f63cc1d1d Mon Sep 17 00:00:00 2001
|
|
From: Shiju Jose <shiju.jose@huawei.com>
|
|
Date: Thu, 28 Apr 2022 22:59:04 +0100
|
|
Subject: [PATCH 10/10] rasdaemon: Fix for a memory out-of-bounds issue and
|
|
optimized code to remove duplicate function.
|
|
|
|
Fixed a memory out-of-bounds issue with string pointers and
|
|
optimized code structure to remove duplicate function.
|
|
|
|
Signed-off-by: Lei Feng <fenglei47@h-partners.com>
|
|
Signed-off-by: Shiju Jose <shiju.jose@huawei.com>
|
|
---
|
|
non-standard-hisi_hip08.c | 6 +++---
|
|
non-standard-hisilicon.c | 2 +-
|
|
ras-non-standard-handler.c | 16 +---------------
|
|
3 files changed, 5 insertions(+), 19 deletions(-)
|
|
|
|
diff --git a/non-standard-hisi_hip08.c b/non-standard-hisi_hip08.c
|
|
index 9092183..4ef47ea 100644
|
|
--- a/non-standard-hisi_hip08.c
|
|
+++ b/non-standard-hisi_hip08.c
|
|
@@ -1014,15 +1014,15 @@ static int decode_hip08_pcie_local_error(struct ras_events *ras,
|
|
|
|
static struct ras_ns_ev_decoder hip08_ns_ev_decoder[] = {
|
|
{
|
|
- .sec_type = "1f8161e155d641e6bd107afd1dc5f7c5",
|
|
+ .sec_type = "1f8161e1-55d6-41e6-bd10-7afd1dc5f7c5",
|
|
.decode = decode_hip08_oem_type1_error,
|
|
},
|
|
{
|
|
- .sec_type = "45534ea6ce2341158535e07ab3aef91d",
|
|
+ .sec_type = "45534ea6-ce23-4115-8535-e07ab3aef91d",
|
|
.decode = decode_hip08_oem_type2_error,
|
|
},
|
|
{
|
|
- .sec_type = "b2889fc9e7d74f9da867af42e98be772",
|
|
+ .sec_type = "b2889fc9-e7d7-4f9d-a867-af42e98be772",
|
|
.decode = decode_hip08_pcie_local_error,
|
|
},
|
|
};
|
|
diff --git a/non-standard-hisilicon.c b/non-standard-hisilicon.c
|
|
index d1e1774..6ee9271 100644
|
|
--- a/non-standard-hisilicon.c
|
|
+++ b/non-standard-hisilicon.c
|
|
@@ -387,7 +387,7 @@ static int decode_hisi_common_section(struct ras_events *ras,
|
|
|
|
static struct ras_ns_ev_decoder hisi_section_ns_ev_decoder[] = {
|
|
{
|
|
- .sec_type = "c8b328a899174af69a132e08ab2e7586",
|
|
+ .sec_type = "c8b328a8-9917-4af6-9a13-2e08ab2e7586",
|
|
.decode = decode_hisi_common_section,
|
|
},
|
|
};
|
|
diff --git a/ras-non-standard-handler.c b/ras-non-standard-handler.c
|
|
index 6d5a6f8..6932e58 100644
|
|
--- a/ras-non-standard-handler.c
|
|
+++ b/ras-non-standard-handler.c
|
|
@@ -52,20 +52,6 @@ static char *uuid_le(const char *uu)
|
|
return uuid;
|
|
}
|
|
|
|
-static int uuid_le_cmp(const char *sec_type, const char *uuid2)
|
|
-{
|
|
- static char uuid1[32];
|
|
- char *p = uuid1;
|
|
- int i;
|
|
- 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", (unsigned char) sec_type[le[i]]);
|
|
- *p = 0;
|
|
- return strncmp(uuid1, uuid2, 32);
|
|
-}
|
|
-
|
|
int register_ns_ev_decoder(struct ras_ns_ev_decoder *ns_ev_decoder)
|
|
{
|
|
struct ras_ns_ev_decoder *list;
|
|
@@ -96,7 +82,7 @@ static int find_ns_ev_decoder(const char *sec_type, struct ras_ns_ev_decoder **p
|
|
|
|
ns_ev_decoder = ras_ns_ev_dec_list;
|
|
while (ns_ev_decoder) {
|
|
- if (uuid_le_cmp(sec_type, ns_ev_decoder->sec_type) == 0) {
|
|
+ if (strcmp(uuid_le(sec_type), ns_ev_decoder->sec_type) == 0) {
|
|
*p_ns_ev_dec = ns_ev_decoder;
|
|
match = 1;
|
|
break;
|
|
--
|
|
2.25.1
|
|
|