cpumf: Convert S390_CPUMF_XXX to util_path_sysfs()

Use util_path_sysfs() to form a fully qualified sysfs file name
for files S390_CPUMF_CF, S390_CPUMF_CFDIAG, S390_CPUMF_SF,
S390_SYSFS_PAI_CRYPTO and S390_SYSFS_PAI_EXT.
No functional change.

Signed-off-by: Thomas Richter <tmricht@linux.ibm.com>
Reviewed-by: Sumanth Korikkar <sumanthk@linux.ibm.com>
Reviewed-by: Jan Höppner <hoeppner@linux.ibm.com>
Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com>
This commit is contained in:
Thomas Richter
2025-04-07 15:23:19 +02:00
committed by Jan Höppner
parent 8c1ffd8989
commit fed79474e4
4 changed files with 23 additions and 21 deletions

View File

@@ -243,7 +243,7 @@ static void make_painode(enum pai_types t)
node->base = pai_type_base(t);
/* Read PMU type number. */
path = util_path_sysfs(PAI_PATH, node->sysfs_name);
util_asprintf(&path, PAI_PATH, node->sysfs_name);
node->pmu = libcpumf_pmutype(path);
if (node->pmu < 0)
errx(EXIT_FAILURE, "Cannot open %s", path);

View File

@@ -10,13 +10,13 @@
#include <sched.h>
#include <stdbool.h>
#define S390_CPUMF_CF "/sys/devices/cpum_cf/"
#define S390_CPUMF_CFDIAG "/sys/devices/cpum_cf_diag/"
#define S390_CPUMF_SF "/sys/devices/cpum_sf/"
#define S390_CPUMF_CF "devices/cpum_cf/"
#define S390_CPUMF_CFDIAG "devices/cpum_cf_diag/"
#define S390_CPUMF_SF "devices/cpum_sf/"
#define S390_CPUS_ONLINE "devices/system/cpu/online"
#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_CRYPTO "devices/pai_crypto/"
#define S390_SYSFS_PAI_EXT "devices/pai_ext/"
#define S390_SYSFS_PAI_NNPA S390_SYSFS_PAI_EXT "events/NNPA_ALL"
#define CPUMF_CTRSET_NONE 0

View File

@@ -1,4 +1,4 @@
/* Copyright IBM Corp. 2022
/* Copyright IBM Corp. 2022, 2025
*
* s390-tools is free software; you can redistribute it and/or modify
* it under the terms of the MIT license. See LICENSE for details.
@@ -18,16 +18,13 @@
int libcpumf_pmutype(const char *dirname)
{
int ret = -1;
FILE *file;
char *fn;
int ret;
ret = asprintf(&fn, "%s/type", dirname);
if (ret == -1) /* No memory, errno set */
return ret;
fn = util_path_sysfs("%s/type", dirname);
file = fopen(fn, "r");
free(fn);
ret = -1; /* Errno set on file open error */
if (file) {
/* Read out a single number from that file */
if (fscanf(file, "%u", &ret) != 1)

View File

@@ -144,23 +144,28 @@ bool libcpumf_sfb_info(unsigned long *min, unsigned long *max)
return rc;
}
static bool libcpumf_have_pai_sysfs(char *p)
{
char *path;
bool ret;
path = util_path_sysfs(p);
ret = util_path_exists(path);
free(path);
return ret;
}
bool libcpumf_have_pai_crypto(void)
{
struct stat statbuf;
return (stat(S390_SYSFS_PAI_CRYPTO, &statbuf) == -1) ? false : true;
return libcpumf_have_pai_sysfs(S390_SYSFS_PAI_CRYPTO);
}
bool libcpumf_have_pai_ext(void)
{
struct stat statbuf;
return (stat(S390_SYSFS_PAI_EXT, &statbuf) == -1) ? false : true;
return libcpumf_have_pai_sysfs(S390_SYSFS_PAI_EXT);
}
bool libcpumf_have_pai_nnpa(void)
{
struct stat statbuf;
return (stat(S390_SYSFS_PAI_NNPA, &statbuf) == -1) ? false : true;
return libcpumf_have_pai_sysfs(S390_SYSFS_PAI_NNPA);
}