Commit e2bcf62a authored by Sean Christopherson's avatar Sean Christopherson
Browse files

KVM: selftests: Move Intel and AMD module param helpers to x86/processor.h

Move the x86 specific helpers for getting kvm_{amd,intel} module params to
x86 where they belong.  Expose the module-agnostic helpers globally, there
is nothing secret about the logic.

Link: https://lore.kernel.org/r/20250806225159.1687326-1-seanjc@google.com


Signed-off-by: default avatarSean Christopherson <seanjc@google.com>
parent a585b876
Loading
Loading
Loading
Loading
+11 −6
Original line number Diff line number Diff line
@@ -260,13 +260,18 @@ int __open_path_or_exit(const char *path, int flags, const char *enoent_help);
int open_path_or_exit(const char *path, int flags);
int open_kvm_dev_path_or_exit(void);

bool get_kvm_param_bool(const char *param);
bool get_kvm_intel_param_bool(const char *param);
bool get_kvm_amd_param_bool(const char *param);
int kvm_get_module_param_integer(const char *module_name, const char *param);
bool kvm_get_module_param_bool(const char *module_name, const char *param);

int get_kvm_param_integer(const char *param);
int get_kvm_intel_param_integer(const char *param);
int get_kvm_amd_param_integer(const char *param);
static inline bool get_kvm_param_bool(const char *param)
{
	return kvm_get_module_param_bool("kvm", param);
}

static inline int get_kvm_param_integer(const char *param)
{
	return kvm_get_module_param_integer("kvm", param);
}

unsigned int kvm_check_cap(long cap);

+20 −0
Original line number Diff line number Diff line
@@ -1314,6 +1314,26 @@ static inline uint8_t xsetbv_safe(uint32_t index, uint64_t value)

bool kvm_is_tdp_enabled(void);

static inline bool get_kvm_intel_param_bool(const char *param)
{
	return kvm_get_module_param_bool("kvm_intel", param);
}

static inline bool get_kvm_amd_param_bool(const char *param)
{
	return kvm_get_module_param_bool("kvm_amd", param);
}

static inline int get_kvm_intel_param_integer(const char *param)
{
	return kvm_get_module_param_integer("kvm_intel", param);
}

static inline int get_kvm_amd_param_integer(const char *param)
{
	return kvm_get_module_param_integer("kvm_amd", param);
}

static inline bool kvm_is_pmu_enabled(void)
{
	return get_kvm_param_bool("enable_pmu");
+2 −32
Original line number Diff line number Diff line
@@ -95,7 +95,7 @@ static ssize_t get_module_param(const char *module_name, const char *param,
	return bytes_read;
}

static int get_module_param_integer(const char *module_name, const char *param)
int kvm_get_module_param_integer(const char *module_name, const char *param)
{
	/*
	 * 16 bytes to hold a 64-bit value (1 byte per char), 1 byte for the
@@ -119,7 +119,7 @@ static int get_module_param_integer(const char *module_name, const char *param)
	return atoi_paranoid(value);
}

static bool get_module_param_bool(const char *module_name, const char *param)
bool kvm_get_module_param_bool(const char *module_name, const char *param)
{
	char value;
	ssize_t r;
@@ -135,36 +135,6 @@ static bool get_module_param_bool(const char *module_name, const char *param)
	TEST_FAIL("Unrecognized value '%c' for boolean module param", value);
}

bool get_kvm_param_bool(const char *param)
{
	return get_module_param_bool("kvm", param);
}

bool get_kvm_intel_param_bool(const char *param)
{
	return get_module_param_bool("kvm_intel", param);
}

bool get_kvm_amd_param_bool(const char *param)
{
	return get_module_param_bool("kvm_amd", param);
}

int get_kvm_param_integer(const char *param)
{
	return get_module_param_integer("kvm", param);
}

int get_kvm_intel_param_integer(const char *param)
{
	return get_module_param_integer("kvm_intel", param);
}

int get_kvm_amd_param_integer(const char *param)
{
	return get_module_param_integer("kvm_amd", param);
}

/*
 * Capability
 *