linux-edac.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/4] rasdaemon: Some little fixes and add some modules support
@ 2021-10-20  6:33 Xiaofei Tan
  2021-10-20  6:33 ` [PATCH 1/4] rasdaemon: Fix the issue of sprintf data type mismatch in uuid_le() Xiaofei Tan
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: Xiaofei Tan @ 2021-10-20  6:33 UTC (permalink / raw)
  To: mchehab, linux-edac; +Cc: shiju.jose, linuxarm, jonathan.cameron, Xiaofei Tan

Some little fixes and add some modules support for kunpeng series.

Xiaofei Tan (4):
  rasdaemon: Fix the issue of sprintf data type mismatch in uuid_le()
  rasdaemon: Fix the issue of command option -r for hip08
  rasdaemon: Fix some print format issues for hisi common error section
  rasdaemon: Add some modules supported by hisi common error section

 non-standard-hisi_hip08.c  |  6 +++---
 non-standard-hisilicon.c   | 32 +++++++++++++++++++++-----------
 ras-extlog-handler.c       |  2 +-
 ras-non-standard-handler.c |  4 ++--
 4 files changed, 27 insertions(+), 17 deletions(-)

-- 
2.33.0


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 1/4] rasdaemon: Fix the issue of sprintf data type mismatch in uuid_le()
  2021-10-20  6:33 [PATCH 0/4] rasdaemon: Some little fixes and add some modules support Xiaofei Tan
@ 2021-10-20  6:33 ` Xiaofei Tan
  2021-10-20  6:33 ` [PATCH 2/4] rasdaemon: Fix the issue of command option -r for hip08 Xiaofei Tan
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Xiaofei Tan @ 2021-10-20  6:33 UTC (permalink / raw)
  To: mchehab, linux-edac; +Cc: shiju.jose, linuxarm, jonathan.cameron, Xiaofei Tan

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


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 2/4] rasdaemon: Fix the issue of command option -r for hip08
  2021-10-20  6:33 [PATCH 0/4] rasdaemon: Some little fixes and add some modules support Xiaofei Tan
  2021-10-20  6:33 ` [PATCH 1/4] rasdaemon: Fix the issue of sprintf data type mismatch in uuid_le() Xiaofei Tan
@ 2021-10-20  6:33 ` Xiaofei Tan
  2021-10-20  6:33 ` [PATCH 3/4] rasdaemon: Fix some print format issues for hisi common error section Xiaofei Tan
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Xiaofei Tan @ 2021-10-20  6:33 UTC (permalink / raw)
  To: mchehab, linux-edac; +Cc: shiju.jose, linuxarm, jonathan.cameron, Xiaofei Tan

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


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 3/4] rasdaemon: Fix some print format issues for hisi common error section
  2021-10-20  6:33 [PATCH 0/4] rasdaemon: Some little fixes and add some modules support Xiaofei Tan
  2021-10-20  6:33 ` [PATCH 1/4] rasdaemon: Fix the issue of sprintf data type mismatch in uuid_le() Xiaofei Tan
  2021-10-20  6:33 ` [PATCH 2/4] rasdaemon: Fix the issue of command option -r for hip08 Xiaofei Tan
@ 2021-10-20  6:33 ` Xiaofei Tan
  2021-10-20  6:33 ` [PATCH 4/4] rasdaemon: Add some modules supported by " Xiaofei Tan
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Xiaofei Tan @ 2021-10-20  6:33 UTC (permalink / raw)
  To: mchehab, linux-edac; +Cc: shiju.jose, linuxarm, jonathan.cameron, Xiaofei Tan

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


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 4/4] rasdaemon: Add some modules supported by hisi common error section
  2021-10-20  6:33 [PATCH 0/4] rasdaemon: Some little fixes and add some modules support Xiaofei Tan
                   ` (2 preceding siblings ...)
  2021-10-20  6:33 ` [PATCH 3/4] rasdaemon: Fix some print format issues for hisi common error section Xiaofei Tan
@ 2021-10-20  6:33 ` Xiaofei Tan
  2021-12-21  1:22 ` [PATCH 0/4] rasdaemon: Some little fixes and add some modules support tanxiaofei
  2022-04-01  9:08 ` Mauro Carvalho Chehab
  5 siblings, 0 replies; 7+ messages in thread
From: Xiaofei Tan @ 2021-10-20  6:33 UTC (permalink / raw)
  To: mchehab, linux-edac; +Cc: shiju.jose, linuxarm, jonathan.cameron, Xiaofei Tan

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


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH 0/4] rasdaemon: Some little fixes and add some modules support
  2021-10-20  6:33 [PATCH 0/4] rasdaemon: Some little fixes and add some modules support Xiaofei Tan
                   ` (3 preceding siblings ...)
  2021-10-20  6:33 ` [PATCH 4/4] rasdaemon: Add some modules supported by " Xiaofei Tan
@ 2021-12-21  1:22 ` tanxiaofei
  2022-04-01  9:08 ` Mauro Carvalho Chehab
  5 siblings, 0 replies; 7+ messages in thread
From: tanxiaofei @ 2021-12-21  1:22 UTC (permalink / raw)
  To: mchehab, mchehab+huawei
  Cc: shiju.jose, linuxarm, jonathan.cameron, linux-edac

Hi Mauro

Please help to review this patchset, many thanks.

在 2021/10/20 14:33, Xiaofei Tan 写道:
> Some little fixes and add some modules support for kunpeng series.
> 
> Xiaofei Tan (4):
>    rasdaemon: Fix the issue of sprintf data type mismatch in uuid_le()
>    rasdaemon: Fix the issue of command option -r for hip08
>    rasdaemon: Fix some print format issues for hisi common error section
>    rasdaemon: Add some modules supported by hisi common error section
> 
>   non-standard-hisi_hip08.c  |  6 +++---
>   non-standard-hisilicon.c   | 32 +++++++++++++++++++++-----------
>   ras-extlog-handler.c       |  2 +-
>   ras-non-standard-handler.c |  4 ++--
>   4 files changed, 27 insertions(+), 17 deletions(-)
> 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 0/4] rasdaemon: Some little fixes and add some modules support
  2021-10-20  6:33 [PATCH 0/4] rasdaemon: Some little fixes and add some modules support Xiaofei Tan
                   ` (4 preceding siblings ...)
  2021-12-21  1:22 ` [PATCH 0/4] rasdaemon: Some little fixes and add some modules support tanxiaofei
@ 2022-04-01  9:08 ` Mauro Carvalho Chehab
  5 siblings, 0 replies; 7+ messages in thread
From: Mauro Carvalho Chehab @ 2022-04-01  9:08 UTC (permalink / raw)
  To: Xiaofei Tan; +Cc: linux-edac, shiju.jose, linuxarm, jonathan.cameron

Em Wed, 20 Oct 2021 14:33:36 +0800
Xiaofei Tan <tanxiaofei@huawei.com> escreveu:

> Some little fixes and add some modules support for kunpeng series.
> 
> Xiaofei Tan (4):
>   rasdaemon: Fix the issue of sprintf data type mismatch in uuid_le()
>   rasdaemon: Fix the issue of command option -r for hip08
>   rasdaemon: Fix some print format issues for hisi common error section
>   rasdaemon: Add some modules supported by hisi common error section
> 
>  non-standard-hisi_hip08.c  |  6 +++---
>  non-standard-hisilicon.c   | 32 +++++++++++++++++++++-----------
>  ras-extlog-handler.c       |  2 +-
>  ras-non-standard-handler.c |  4 ++--
>  4 files changed, 27 insertions(+), 17 deletions(-)
> 

Patches applied, thanks!


Thanks,
Mauro

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2022-04-01  9:08 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-20  6:33 [PATCH 0/4] rasdaemon: Some little fixes and add some modules support Xiaofei Tan
2021-10-20  6:33 ` [PATCH 1/4] rasdaemon: Fix the issue of sprintf data type mismatch in uuid_le() Xiaofei Tan
2021-10-20  6:33 ` [PATCH 2/4] rasdaemon: Fix the issue of command option -r for hip08 Xiaofei Tan
2021-10-20  6:33 ` [PATCH 3/4] rasdaemon: Fix some print format issues for hisi common error section Xiaofei Tan
2021-10-20  6:33 ` [PATCH 4/4] rasdaemon: Add some modules supported by " Xiaofei Tan
2021-12-21  1:22 ` [PATCH 0/4] rasdaemon: Some little fixes and add some modules support tanxiaofei
2022-04-01  9:08 ` Mauro Carvalho Chehab

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).