diff --git a/fix-sysSentry-plugin-env-bug.patch b/fix-sysSentry-plugin-env-bug.patch new file mode 100644 index 0000000000000000000000000000000000000000..0e072abd11efbe217dffb1b423506a68684b3e96 --- /dev/null +++ b/fix-sysSentry-plugin-env-bug.patch @@ -0,0 +1,71 @@ +From 402bfdee50b69d6c36ca6cc3b720130f50ff209a Mon Sep 17 00:00:00 2001 +From: luckky +Date: Tue, 19 Nov 2024 20:29:23 +0800 +Subject: [PATCH 3/4] fix sysSentry plugin env bug + +--- + src/python/syssentry/cron_process.py | 2 +- + src/python/syssentry/global_values.py | 14 ++++++-------- + 2 files changed, 7 insertions(+), 9 deletions(-) + +diff --git a/src/python/syssentry/cron_process.py b/src/python/syssentry/cron_process.py +index 50780b3..08e0b9d 100644 +--- a/src/python/syssentry/cron_process.py ++++ b/src/python/syssentry/cron_process.py +@@ -79,7 +79,7 @@ class PeriodTask(InspectTask): + logfile = subprocess.PIPE + try: + child = subprocess.Popen(cmd_list, stdout=logfile, +- stderr=subprocess.STDOUT, close_fds=True) ++ stderr=subprocess.STDOUT, close_fds=True, env=self.environ_conf) + except OSError: + self.result_info["result"] = ResultLevel.FAIL.name + self.result_info["error_msg"] = RESULT_LEVEL_ERR_MSG_DICT.get(ResultLevel.FAIL.name) +diff --git a/src/python/syssentry/global_values.py b/src/python/syssentry/global_values.py +index 483d544..d42b87c 100644 +--- a/src/python/syssentry/global_values.py ++++ b/src/python/syssentry/global_values.py +@@ -74,6 +74,8 @@ class InspectTask: + self.onstart = False + # ccnfig env_file + self.env_file = "" ++ # env conf to popen arg ++ self.environ_conf = {} + # start mode + self.conflict = "up" + +@@ -108,7 +110,7 @@ class InspectTask: + logging.error("task %s log_file %s open failed", self.name, self.log_file) + logfile = subprocess.PIPE + try: +- child = subprocess.Popen(cmd_list, stdout=logfile, stderr=subprocess.STDOUT, close_fds=True) ++ child = subprocess.Popen(cmd_list, stdout=logfile, stderr=subprocess.STDOUT, close_fds=True, env=self.environ_conf) + except OSError: + logging.error("task %s start Popen error, invalid cmd") + self.result_info["result"] = ResultLevel.FAIL.name +@@ -195,7 +197,7 @@ class InspectTask: + return + + # read config +- environ_conf = {} ++ self.environ_conf = dict(os.environ) + with open(self.env_file, 'r') as file: + for line in file: + line = line.strip() +@@ -206,11 +208,7 @@ class InspectTask: + if not key or not value: + logging.error("env_file = %s format is error, use default environ", self.env_file) + return +- environ_conf[key] = value +- +- # set environ +- for key, value in environ_conf.items(): +- logging.debug("environ key=%s, value=%s", key, value) +- os.environ[key] = value ++ self.environ_conf[key] = value ++ logging.debug("environ key=%s, value=%s", key, value) + + logging.debug("the subprocess=[%s] begin to run", self.name) +-- +2.43.0 + diff --git a/hbm-online-repair-add-pid-file-to-keep-single-instan.patch b/hbm-online-repair-add-pid-file-to-keep-single-instan.patch new file mode 100644 index 0000000000000000000000000000000000000000..ebfefd8c06002b9d689420a2009f48761c2fba60 --- /dev/null +++ b/hbm-online-repair-add-pid-file-to-keep-single-instan.patch @@ -0,0 +1,121 @@ +From da1f503c33778635afc3fed326bc7e72dbcd5c36 Mon Sep 17 00:00:00 2001 +From: luckky +Date: Tue, 19 Nov 2024 20:28:33 +0800 +Subject: [PATCH 2/4] hbm online repair add pid file to keep single instance + running + +--- + src/c/hbm_online_repair/hbm_online_repair.c | 66 ++++++++++++++++++++- + 1 file changed, 64 insertions(+), 2 deletions(-) + +diff --git a/src/c/hbm_online_repair/hbm_online_repair.c b/src/c/hbm_online_repair/hbm_online_repair.c +index 2560dc3..c97173a 100644 +--- a/src/c/hbm_online_repair/hbm_online_repair.c ++++ b/src/c/hbm_online_repair/hbm_online_repair.c +@@ -3,6 +3,7 @@ + #include + #include + #include ++#include + + #include "logger.h" + #include "ras-events.h" +@@ -10,12 +11,66 @@ + + #define DEFAULT_LOG_LEVEL LOG_INFO + #define DEFAULT_PAGE_ISOLATION_THRESHOLD 3355443 ++#define PID_FILE_PATH "/var/run/"TOOL_NAME".pid" + + #define DRIVER_COMMAND_LEN 32 + + int global_level_setting; + int page_isolation_threshold; + ++int handle_file_lock(int fd, bool lock) ++{ ++ int ret; ++ struct flock fl; ++ fl.l_type = lock ? F_WRLCK : F_UNLCK; ++ fl.l_whence = SEEK_SET; ++ fl.l_start = 0; ++ fl.l_len = 0; ++ ++ ret = fcntl(fd, F_SETLK, &fl); ++ if (ret < 0) { ++ log(LOG_ERROR, "fcntl failed, error msg is %s\n", strerror(errno)); ++ } ++ log(LOG_DEBUG, "fcntl success, lock ret code is %d\n", ret); ++ return ret; ++} ++ ++int check_and_set_pid_file() ++{ ++ int ret, fd; ++ fd = open(PID_FILE_PATH, O_CREAT | O_RDWR, 0600); ++ if (fd < 0) { ++ log(LOG_ERROR, "open file %s failed!\n", PID_FILE_PATH); ++ return -1; ++ } ++ ++ ret = handle_file_lock(fd, true); ++ if (ret < 0) { ++ log(LOG_ERROR, "%s is already running\n", TOOL_NAME); ++ close(fd); ++ return ret; ++ } ++ ++ return fd; ++} ++ ++int release_pid_file(int fd) ++{ ++ int ret; ++ ret = handle_file_lock(fd, false); ++ if (ret < 0) { ++ log(LOG_ERROR, "release pid file %s lock failed, error msg is %s\n", PID_FILE_PATH, strerror(errno)); ++ return ret; ++ } ++ ++ close(fd); ++ ret = remove(PID_FILE_PATH); ++ if (ret < 0) { ++ log(LOG_ERROR, "remove %s failed, error msg is %s\n", PID_FILE_PATH, strerror(errno)); ++ } ++ return ret; ++} ++ + int string2int(const char* str, int* value) + { + if (!str) { +@@ -123,13 +178,18 @@ void hbm_param_init(void) + + int main(int argc, char *argv[]) + { +- int ret; ++ int ret, pid_fd; + + hbm_param_init(); + ++ pid_fd = check_and_set_pid_file(); ++ if (pid_fd < 0) { ++ return pid_fd; ++ } ++ + ret = handle_all_drivers(true); + if (ret < 0) { +- return ret; ++ goto err_release; + } + + struct ras_events *ras = init_trace_instance(); +@@ -157,5 +217,7 @@ err_free: + free(ras); + err_unload: + handle_all_drivers(false); ++err_release: ++ release_pid_file(pid_fd); + return ret; + } +-- +2.43.0 + diff --git a/hbm-online-repair-add-unload-driver.patch b/hbm-online-repair-add-unload-driver.patch new file mode 100644 index 0000000000000000000000000000000000000000..6f403cbb546765e376b3ac1fa08e1cf7cafb0ce4 --- /dev/null +++ b/hbm-online-repair-add-unload-driver.patch @@ -0,0 +1,108 @@ +From 10ad2b0a94a8f54b7609feab814ecb00eb03708a Mon Sep 17 00:00:00 2001 +From: luckky +Date: Tue, 19 Nov 2024 20:25:32 +0800 +Subject: [PATCH 1/4] hbm online repair add unload driver + +--- + src/c/hbm_online_repair/hbm_online_repair.c | 46 ++++++++++++++------- + 1 file changed, 30 insertions(+), 16 deletions(-) + +diff --git a/src/c/hbm_online_repair/hbm_online_repair.c b/src/c/hbm_online_repair/hbm_online_repair.c +index 00c9c0b..2560dc3 100644 +--- a/src/c/hbm_online_repair/hbm_online_repair.c ++++ b/src/c/hbm_online_repair/hbm_online_repair.c +@@ -11,6 +11,8 @@ + #define DEFAULT_LOG_LEVEL LOG_INFO + #define DEFAULT_PAGE_ISOLATION_THRESHOLD 3355443 + ++#define DRIVER_COMMAND_LEN 32 ++ + int global_level_setting; + int page_isolation_threshold; + +@@ -57,25 +59,34 @@ int execute_command(const char *command) + return -1; + } + +- ret = WEXITSTATUS(ret); ++ ret = -WEXITSTATUS(ret); + log(LOG_DEBUG, "command %s exited with status: %d\n", command, ret); + return ret; + } + +-int load_required_driver(void) ++int handle_driver(char* driver_name, bool load) + { + int ret; +- ret = execute_command("modprobe hisi_mem_ras 2>&1"); ++ char command[DRIVER_COMMAND_LEN]; ++ ++ snprintf(command, DRIVER_COMMAND_LEN, "%s %s 2>&1", load ? "modprobe" : "rmmod", driver_name); ++ ret = execute_command(command); + if (ret < 0) { +- log(LOG_ERROR, "load repair driver failed\n"); +- return ret; ++ log(LOG_ERROR, "%s %s failed\n", load ? "load" : "unload", driver_name); + } +- ret = execute_command("modprobe page_eject 2>&1"); +- if (ret < 0) { +- log(LOG_ERROR, "load page driver failed\n"); ++ log(LOG_DEBUG, "%s %s success\n", load ? "load" : "unload", driver_name); ++ return ret; ++} ++ ++int handle_all_drivers(bool load) ++{ ++ int ret; ++ ++ ret = handle_driver("hisi_mem_ras", load); ++ if (ret < 0) + return ret; +- } +- log(LOG_INFO, "load required driver success\n"); ++ ++ ret = handle_driver("page_eject", load); + return ret; + } + +@@ -116,21 +127,21 @@ int main(int argc, char *argv[]) + + hbm_param_init(); + +- ret = load_required_driver(); ++ ret = handle_all_drivers(true); + if (ret < 0) { +- log(LOG_DEBUG, "load required driver failed\n"); + return ret; + } + + struct ras_events *ras = init_trace_instance(); +- if (!ras) +- return -1; ++ if (!ras) { ++ ret = -1; ++ goto err_unload; ++ } + + ret = toggle_ras_event(ras->tracing, "ras", "non_standard_event", 1); + if (ret < 0) { + log(LOG_WARNING, "unable to enable ras non_standard_event.\n"); +- free(ras); +- return -1; ++ goto err_free; + } + + get_flash_total_size(); +@@ -142,6 +153,9 @@ int main(int argc, char *argv[]) + log(LOG_WARNING, "unable to disable ras non_standard_event.\n"); + } + ++err_free: + free(ras); ++err_unload: ++ handle_all_drivers(false); + return ret; + } +-- +2.43.0 + diff --git a/hbm-online-repair-refactor-fault_addr_info-parse-and.patch b/hbm-online-repair-refactor-fault_addr_info-parse-and.patch new file mode 100644 index 0000000000000000000000000000000000000000..e5d19b072e8faed3011dbe074e09c3bb17416872 --- /dev/null +++ b/hbm-online-repair-refactor-fault_addr_info-parse-and.patch @@ -0,0 +1,238 @@ +From 1c6e3441fa0f21b11cb87a18508050fe3f407299 Mon Sep 17 00:00:00 2001 +From: luckky +Date: Tue, 19 Nov 2024 20:36:37 +0800 +Subject: [PATCH 4/4] hbm online repair refactor fault_addr_info parse and + debug info print + +--- + src/c/hbm_online_repair/logger.h | 10 +- + .../non-standard-hbm-repair.c | 109 ++++++++---------- + .../non-standard-hbm-repair.h | 31 ++--- + 3 files changed, 71 insertions(+), 79 deletions(-) + +diff --git a/src/c/hbm_online_repair/logger.h b/src/c/hbm_online_repair/logger.h +index ddfa932..5385bd2 100644 +--- a/src/c/hbm_online_repair/logger.h ++++ b/src/c/hbm_online_repair/logger.h +@@ -3,10 +3,12 @@ + + #define TOOL_NAME "hbm_online_repair" + +-#define LOG_DEBUG 0 +-#define LOG_INFO 1 +-#define LOG_WARNING 2 +-#define LOG_ERROR 3 ++enum log_level { ++ LOG_DEBUG, ++ LOG_INFO, ++ LOG_WARNING, ++ LOG_ERROR ++}; + + extern int global_level_setting; + +diff --git a/src/c/hbm_online_repair/non-standard-hbm-repair.c b/src/c/hbm_online_repair/non-standard-hbm-repair.c +index 97cb9a7..e3d0b60 100644 +--- a/src/c/hbm_online_repair/non-standard-hbm-repair.c ++++ b/src/c/hbm_online_repair/non-standard-hbm-repair.c +@@ -43,19 +43,28 @@ struct hisi_common_error_section { + }; + + struct fault_addr_info { +- uint32_t processer_id; +- uint32_t die_id; +- uint32_t stack_id; +- uint32_t sid; +- uint32_t channel_id; +- uint32_t bankgroup_id; +- uint32_t bank_id; +- uint32_t row_id; +- uint32_t column_id; +- uint32_t error_type; +- uint32_t repair_type; +- uint32_t reserved; +- uint32_t crc8; ++ uint32_t fields[FAULT_FIELD_NUM]; ++}; ++ ++typedef struct { ++ const char* name; ++ uint32_t len; ++} fault_field_meta; ++ ++static const fault_field_meta field_meta[FAULT_FIELD_NUM] = { ++ {"processor_id", FAULT_ADDR_PROCESSOR_ID_LEN}, ++ {"die_id", FAULT_ADDR_DIE_ID_LEN}, ++ {"stack_id", FAULT_ADDR_STACK_ID_LEN}, ++ {"sid", FAULT_ADDR_SID_LEN}, ++ {"channel_id", FAULT_ADDR_CHANNEL_ID_LEN}, ++ {"bankgroup_id", FAULT_ADDR_BANKGROUP_ID_LEN}, ++ {"bank_id", FAULT_ADDR_BANK_ID_LEN}, ++ {"row_id", FAULT_ADDR_ROW_ID_LEN}, ++ {"column_id", FAULT_ADDR_COLUMN_ID_LEN}, ++ {"error_type", FAULT_ADDR_ERROR_TYPE_LEN}, ++ {"repair_type", FAULT_ADDR_REPAIR_TYPE_LEN}, ++ {"reserved", FAULT_ADDR_RESERVED_LEN}, ++ {"crc8", FAULT_ADDR_CRC8_LEN}, + }; + + typedef struct { +@@ -87,7 +96,8 @@ char *flash_guids[FLASH_ENTRY_NUM] = { + "6AED17B4-50C7-4a40-A5A7-48AF55DD8EAC" + }; + +-static int get_guid_index(uint32_t socket_id, uint32_t error_type) { ++static int get_guid_index(uint32_t socket_id, uint32_t error_type) ++{ + if (2 * socket_id + error_type >= FLASH_ENTRY_NUM) + return -1; + return 2 * socket_id + error_type; +@@ -95,31 +105,18 @@ static int get_guid_index(uint32_t socket_id, uint32_t error_type) { + + static void parse_fault_addr_info(struct fault_addr_info* info_struct, unsigned long long fault_addr) + { +- info_struct->processer_id = fault_addr & FAULT_ADDR_PROCESSOR_ID_MASK; +- fault_addr >>= FAULT_ADDR_PROCESSOR_ID_LEN; +- info_struct->die_id = fault_addr & FAULT_ADDR_DIE_ID_MASK; +- fault_addr >>= FAULT_ADDR_DIE_ID_LEN; +- info_struct->stack_id = fault_addr & FAULT_ADDR_STACK_ID_MASK; +- fault_addr >>= FAULT_ADDR_STACK_ID_LEN; +- info_struct->sid = fault_addr & FAULT_ADDR_SID_MASK; +- fault_addr >>= FAULT_ADDR_SID_LEN; +- info_struct->channel_id = fault_addr & FAULT_ADDR_CHANNEL_ID_MASK; +- fault_addr >>= FAULT_ADDR_CHANNEL_ID_LEN; +- info_struct->bankgroup_id = fault_addr & FAULT_ADDR_BANKGROUP_ID_MASK; +- fault_addr >>= FAULT_ADDR_BANKGROUP_ID_LEN; +- info_struct->bank_id = fault_addr & FAULT_ADDR_BANK_ID_MASK; +- fault_addr >>= FAULT_ADDR_BANK_ID_LEN; +- info_struct->row_id = fault_addr & FAULT_ADDR_ROW_ID_MASK; +- fault_addr >>= FAULT_ADDR_ROW_ID_LEN; +- info_struct->column_id = fault_addr & FAULT_ADDR_COLUMN_ID_MASK; +- fault_addr >>= FAULT_ADDR_COLUMN_ID_LEN; +- info_struct->error_type = fault_addr & FAULT_ADDR_ERROR_TYPE_MASK; +- fault_addr >>= FAULT_ADDR_ERROR_TYPE_LEN; +- info_struct->repair_type = fault_addr & FAULT_ADDR_REPAIR_TYPE_MASK; +- fault_addr >>= FAULT_ADDR_REPAIR_TYPE_LEN; +- info_struct->reserved = fault_addr & FAULT_ADDR_RESERVED_MASK; +- fault_addr >>= FAULT_ADDR_RESERVED_LEN; +- info_struct->crc8 = (uint32_t)fault_addr; ++ for (int i = 0; i < FAULT_FIELD_NUM - 1; i++) { ++ const fault_field_meta* meta = &field_meta[i]; ++ info_struct->fields[i] = (uint32_t)(fault_addr & FAULT_ADDR_FIELD_MASK(meta->len)); ++ fault_addr >>= meta->len; ++ } ++ info_struct->fields[FAULT_FIELD_NUM - 1] = (uint32_t)fault_addr; ++} ++ ++static void log_fault_addr_info(enum log_level level, const struct fault_addr_info* info_struct) ++{ ++ for (int i = 0; i < FAULT_FIELD_NUM; i++) ++ log(level, "info_struct.%s is %u\n", field_meta[i].name, info_struct->fields[i]); + } + + static bool is_variable_existing(char *name, char *guid) +@@ -317,7 +314,7 @@ static int write_fault_info_to_flash(const struct hisi_common_error_section *err + // get guid + struct fault_addr_info info_struct; + parse_fault_addr_info(&info_struct, fault_addr); +- guid_index = get_guid_index(info_struct.processer_id, info_struct.error_type); ++ guid_index = get_guid_index(info_struct.fields[PROCESSOR_ID], info_struct.fields[ERROR_TYPE]); + if (guid_index < 0) { + log(LOG_ERROR, "invalid fault info\n"); + return -1; +@@ -469,33 +466,21 @@ static int notice_BMC(const struct hisi_common_error_section *err, uint8_t repai + struct fault_addr_info info_struct; + parse_fault_addr_info(&info_struct, fault_addr); + +- log(LOG_DEBUG, "info_struct.processer_id is %u\n", info_struct.processer_id); +- log(LOG_DEBUG, "info_struct.die_id is %u\n", info_struct.die_id); +- log(LOG_DEBUG, "info_struct.stack_id is %u\n", info_struct.stack_id); +- log(LOG_DEBUG, "info_struct.sid is %u\n", info_struct.sid); +- log(LOG_DEBUG, "info_struct.channel_id is %u\n", info_struct.channel_id); +- log(LOG_DEBUG, "info_struct.bankgroup_id is %u\n", info_struct.bankgroup_id); +- log(LOG_DEBUG, "info_struct.bank_id is %u\n", info_struct.bank_id); +- log(LOG_DEBUG, "info_struct.row_id is %u\n", info_struct.row_id); +- log(LOG_DEBUG, "info_struct.column_id is %u\n", info_struct.column_id); +- log(LOG_DEBUG, "info_struct.error_type is %u\n", info_struct.error_type); +- log(LOG_DEBUG, "info_struct.repair_type is %u\n", info_struct.repair_type); +- log(LOG_DEBUG, "info_struct.reserved is %u\n", info_struct.reserved); +- log(LOG_DEBUG, "info_struct.crc8 is %u\n", info_struct.crc8); ++ log_fault_addr_info(LOG_DEBUG, &info_struct); + + snprintf(bmc_msg, sizeof(BMC_REPORT_FORMAT), BMC_REPORT_FORMAT, + repair_type_code, + repair_result_code, + isolation_type_code, +- info_struct.processer_id, +- info_struct.die_id, +- info_struct.stack_id, +- info_struct.sid, +- info_struct.channel_id, +- info_struct.bankgroup_id, +- info_struct.bank_id, +- info_struct.row_id, +- info_struct.column_id ++ info_struct.fields[PROCESSOR_ID], ++ info_struct.fields[DIE_ID], ++ info_struct.fields[STACK_ID], ++ info_struct.fields[SID], ++ info_struct.fields[CHANNEL_ID], ++ info_struct.fields[BANKGROUP_ID], ++ info_struct.fields[BANK_ID], ++ info_struct.fields[ROW_ID], ++ info_struct.fields[COLUMN_ID] + ); + + log(LOG_DEBUG, "Send msg to sysSentry, bmc msg is %s\n", bmc_msg); +diff --git a/src/c/hbm_online_repair/non-standard-hbm-repair.h b/src/c/hbm_online_repair/non-standard-hbm-repair.h +index ecb04fe..19db161 100644 +--- a/src/c/hbm_online_repair/non-standard-hbm-repair.h ++++ b/src/c/hbm_online_repair/non-standard-hbm-repair.h +@@ -46,6 +46,23 @@ + #define ROW_FAULT 1 + #define SINGLE_ADDR_FAULT 6 + ++enum fault_field_index { ++ PROCESSOR_ID, ++ DIE_ID, ++ STACK_ID, ++ SID, ++ CHANNEL_ID, ++ BANKGROUP_ID, ++ BANK_ID, ++ ROW_ID, ++ COLUMN_ID, ++ ERROR_TYPE, ++ REPAIR_TYPE, ++ RESERVED, ++ CRC8, ++ FAULT_FIELD_NUM ++}; ++ + #define FAULT_ADDR_PROCESSOR_ID_LEN 2 + #define FAULT_ADDR_DIE_ID_LEN 1 + #define FAULT_ADDR_STACK_ID_LEN 3 +@@ -60,19 +77,7 @@ + #define FAULT_ADDR_RESERVED_LEN 2 + #define FAULT_ADDR_CRC8_LEN 8 + +-#define FAULT_ADDR_PROCESSOR_ID_MASK ((1 << FAULT_ADDR_PROCESSOR_ID_LEN ) - 1) +-#define FAULT_ADDR_DIE_ID_MASK ((1 << FAULT_ADDR_DIE_ID_LEN ) - 1) +-#define FAULT_ADDR_STACK_ID_MASK ((1 << FAULT_ADDR_STACK_ID_LEN ) - 1) +-#define FAULT_ADDR_SID_MASK ((1 << FAULT_ADDR_SID_LEN ) - 1) +-#define FAULT_ADDR_CHANNEL_ID_MASK ((1 << FAULT_ADDR_CHANNEL_ID_LEN ) - 1) +-#define FAULT_ADDR_BANKGROUP_ID_MASK ((1 << FAULT_ADDR_BANKGROUP_ID_LEN ) - 1) +-#define FAULT_ADDR_BANK_ID_MASK ((1 << FAULT_ADDR_BANK_ID_LEN ) - 1) +-#define FAULT_ADDR_ROW_ID_MASK ((1 << FAULT_ADDR_ROW_ID_LEN ) - 1) +-#define FAULT_ADDR_COLUMN_ID_MASK ((1 << FAULT_ADDR_COLUMN_ID_LEN ) - 1) +-#define FAULT_ADDR_ERROR_TYPE_MASK ((1 << FAULT_ADDR_ERROR_TYPE_LEN ) - 1) +-#define FAULT_ADDR_REPAIR_TYPE_MASK ((1 << FAULT_ADDR_REPAIR_TYPE_LEN ) - 1) +-#define FAULT_ADDR_RESERVED_MASK ((1 << FAULT_ADDR_RESERVED_LEN ) - 1) +-#define FAULT_ADDR_CRC8_MASK ((1 << FAULT_ADDR_CRC8_LEN ) - 1) ++#define FAULT_ADDR_FIELD_MASK(field_len) ((1 << field_len) - 1) + + #define EFI_VARIABLE_NON_VOLATILE 0x1 + #define EFI_VARIABLE_BOOTSERVICE_ACCESS 0x2 +-- +2.43.0 + diff --git a/sysSentry.spec b/sysSentry.spec index b71e9e6be95ee89d1320b74d6c86fa9566d3bb09..efcf1f4b804d6f2a11d8c3f626d6c59f42010b28 100644 --- a/sysSentry.spec +++ b/sysSentry.spec @@ -4,7 +4,7 @@ Summary: System Inspection Framework Name: sysSentry Version: 1.0.2 -Release: 22 +Release: 23 License: Mulan PSL v2 Group: System Environment/Daemons Source0: https://gitee.com/openeuler/sysSentry/releases/download/v%{version}/%{name}-%{version}.tar.gz @@ -33,6 +33,10 @@ Patch20: fix-write-file-return-code-bug.patch Patch21: update-the-commit-of-the-log-level-and-format-of-sys.patch Patch22: add-boundary-check-for-settings.patch Patch23: fix-xalarm-not-reject-alarm-msg-exceeds-max-length.patch +Patch24: hbm-online-repair-add-unload-driver.patch +Patch25: hbm-online-repair-add-pid-file-to-keep-single-instan.patch +Patch26: fix-sysSentry-plugin-env-bug.patch +Patch27: hbm-online-repair-refactor-fault_addr_info-parse-and.patch BuildRequires: cmake gcc-c++ BuildRequires: python3 python3-setuptools @@ -222,6 +226,16 @@ rm -rf %{buildroot} %attr(0550,root,root) %{python3_sitelib}/syssentry/bmc_alarm.py %changelog +* Tue Nov 26 2024 luckky - 1.0.2-23 +- Type:bugfix +- CVE:NA +- SUG:NA +- DESC: fix some known issues: + 1. hbm_online_repair: unload driver after program running + 2. hbm_online_repair: add pid file to keep single instance running + 3. sysSentry: fix plugin env bug + 4. hbm_online_repair: refactor fault_addr_info parse + * Thu Nov 7 2024 caixiaomeng - 1.0.2-22 - Type:bugfix - CVE:NA