From 8dd74edfb6af556fd69a38abcad5bac793e76b3f Mon Sep 17 00:00:00 2001 From: luckky Date: Tue, 24 Dec 2024 18:58:23 +0800 Subject: [PATCH] hbm_online_repair: add unload driver --- hbm_online_repair-add-unload-driver.patch | 107 ++++++++++++++++++++++ sysSentry.spec | 9 +- 2 files changed, 115 insertions(+), 1 deletion(-) create mode 100644 hbm_online_repair-add-unload-driver.patch diff --git a/hbm_online_repair-add-unload-driver.patch b/hbm_online_repair-add-unload-driver.patch new file mode 100644 index 0000000..dd7a269 --- /dev/null +++ b/hbm_online_repair-add-unload-driver.patch @@ -0,0 +1,107 @@ +From 74f18b0e1fd4f99fa7d1d95e08894b408dcafe51 Mon Sep 17 00:00:00 2001 +From: luckky +Date: Wed, 18 Dec 2024 14:31:04 +0800 +Subject: [PATCH] hbm_online_repair add unload driver + +--- + src/c/hbm_online_repair/hbm_online_repair.c | 47 +++++++++++++-------- + 1 file changed, 29 insertions(+), 18 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..6783485 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,31 @@ 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"); +- if (ret < 0) { +- log(LOG_ERROR, "load repair driver failed\n"); +- return ret; +- } +- ret = execute_command("modprobe page_eject 2>&1"); +- if (ret < 0) { +- log(LOG_ERROR, "load page driver failed\n"); ++ char command[DRIVER_COMMAND_LEN]; ++ ++ snprintf(command, DRIVER_COMMAND_LEN, "%s %s 2>&1", load ? "modprobe" : "rmmod", driver_name); ++ ret = execute_command(command); ++ log(ret < 0 ? LOG_ERROR : LOG_DEBUG, "%s %s %s\n", load ? "load" : "unload", driver_name, ret < 0 ? "failed" : "success"); ++ 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 +124,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 +150,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/sysSentry.spec b/sysSentry.spec index 3e8e30e..5161702 100644 --- a/sysSentry.spec +++ b/sysSentry.spec @@ -4,7 +4,7 @@ Summary: System Inspection Framework Name: sysSentry Version: 1.0.2 -Release: 24 +Release: 25 License: Mulan PSL v2 Group: System Environment/Daemons Source0: https://gitee.com/openeuler/sysSentry/releases/download/v%{version}/%{name}-%{version}.tar.gz @@ -35,6 +35,7 @@ Patch22: add-boundary-check-for-settings.patch Patch23: fix-xalarm-not-reject-alarm-msg-exceeds-max-length.patch Patch24: change-status-of-period-task-and-sort-mod-file.patch Patch25: set-logrotate.patch +Patch26: hbm_online_repair-add-unload-driver.patch BuildRequires: cmake gcc-c++ BuildRequires: python3 python3-setuptools @@ -236,6 +237,12 @@ rm -rf %{buildroot} %attr(0550,root,root) %{python3_sitelib}/syssentry/bmc_alarm.py %changelog +* Wed Dec 18 2024 luckky - 1.0.2-25 +- Type:bugfix +- CVE:NA +- SUG:NA +- DESC: add boundary check for settings + * Wed Dec 18 2024 shixuantong - 1.0.2-24 - Type:enhancement - CVE:NA -- Gitee