diff --git a/cpumf/chcpumf.c b/cpumf/chcpumf.c index 55094078..ef49366d 100644 --- a/cpumf/chcpumf.c +++ b/cpumf/chcpumf.c @@ -16,11 +16,11 @@ #include #include -#include "lib/util_opt.h" -#include "lib/util_prg.h" -#include "lib/util_base.h" - #include "lib/libcpumf.h" +#include "lib/util_base.h" +#include "lib/util_opt.h" +#include "lib/util_path.h" +#include "lib/util_prg.h" static unsigned int verbose; static unsigned long min_sdb, max_sdb; @@ -88,21 +88,22 @@ static long parse_buffersize(char *string) static int write_sfb(unsigned int min, unsigned int max) { int rc = EXIT_SUCCESS; - char text[64]; + char text[64], *path; size_t len; FILE *fp; - fp = fopen(S390_CPUMSF_BUFFERSZ, "w"); + path = util_path_sysfs(S390_CPUMSF_BUFFERSZ); + fp = fopen(path, "w"); if (!fp) - err(EXIT_FAILURE, S390_CPUMSF_BUFFERSZ); + err(EXIT_FAILURE, "%s", path); snprintf(text, sizeof(text), "%u,%u", min, max); len = strlen(text) + 1; if (fwrite(text, 1, len, fp) != len) { - warn(S390_CPUMSF_BUFFERSZ); + warn("%s", path); rc = EXIT_FAILURE; } if (fclose(fp)) { - warn(S390_CPUMSF_BUFFERSZ); + warn("%s", path); rc = EXIT_FAILURE; } if (verbose && rc != EXIT_FAILURE) @@ -110,6 +111,7 @@ static int write_sfb(unsigned int min, unsigned int max) " Minimum:%7d sample-data-blocks\n" " Maximum:%7d sample-data-blocks\n", min, max); + free(path); return rc; } diff --git a/include/lib/libcpumf.h b/include/lib/libcpumf.h index 3a338bd4..4f672b0c 100644 --- a/include/lib/libcpumf.h +++ b/include/lib/libcpumf.h @@ -14,7 +14,7 @@ #define S390_CPUMF_CFDIAG "/sys/devices/cpum_cf_diag/" #define S390_CPUMF_SF "/sys/devices/cpum_sf/" #define S390_CPUS_ONLINE "devices/system/cpu/online" -#define S390_CPUMSF_BUFFERSZ "/sys/module/kernel/parameters/cpum_sfb_size" +#define S390_CPUMSF_BUFFERSZ "module/kernel/parameters/cpum_sfb_size" #define S390_SYSFS_PAI_CRYPTO "/sys/devices/pai_crypto/" #define S390_SYSFS_PAI_EXT "/sys/devices/pai_ext/" #define S390_SYSFS_PAI_NNPA S390_SYSFS_PAI_EXT "events/NNPA_ALL" diff --git a/libcpumf/libcpumf_support.c b/libcpumf/libcpumf_support.c index 1a24d0f6..c32be93a 100644 --- a/libcpumf/libcpumf_support.c +++ b/libcpumf/libcpumf_support.c @@ -13,6 +13,7 @@ #include #include "lib/libcpumf.h" +#include "lib/util_path.h" #define SERVICELEVEL "/proc/service_levels" @@ -129,14 +130,17 @@ bool libcpumf_have_sfb(void) bool libcpumf_sfb_info(unsigned long *min, unsigned long *max) { int rc = false; + char *path; FILE *fp; - fp = fopen(S390_CPUMSF_BUFFERSZ, "r"); + path = util_path_sysfs(S390_CPUMSF_BUFFERSZ); + fp = fopen(path, "r"); if (!fp) - err(EXIT_FAILURE, "%s", S390_CPUMSF_BUFFERSZ); + err(EXIT_FAILURE, "%s", path); if (fscanf(fp, "%lu,%lu", min, max) == 2) rc = true; fclose(fp); + free(path); return rc; }