Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7f59f492 authored by Rusty Russell's avatar Rusty Russell Committed by Avi Kivity
Browse files

KVM: use cpumask_var_t for cpus_hardware_enabled



This changes cpus_hardware_enabled from a cpumask_t to a cpumask_var_t:
equivalent for CONFIG_CPUMASKS_OFFSTACK=n, otherwise dynamically allocated.

Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
Signed-off-by: default avatarAvi Kivity <avi@redhat.com>
parent 6ef7a1bc
Loading
Loading
Loading
Loading
+14 −6
Original line number Diff line number Diff line
@@ -70,7 +70,7 @@ module_param(msi2intx, bool, 0);
DEFINE_SPINLOCK(kvm_lock);
LIST_HEAD(vm_list);

static cpumask_t cpus_hardware_enabled;
static cpumask_var_t cpus_hardware_enabled;

struct kmem_cache *kvm_vcpu_cache;
EXPORT_SYMBOL_GPL(kvm_vcpu_cache);
@@ -1965,9 +1965,9 @@ static void hardware_enable(void *junk)
{
	int cpu = raw_smp_processor_id();

	if (cpu_isset(cpu, cpus_hardware_enabled))
	if (cpumask_test_cpu(cpu, cpus_hardware_enabled))
		return;
	cpu_set(cpu, cpus_hardware_enabled);
	cpumask_set_cpu(cpu, cpus_hardware_enabled);
	kvm_arch_hardware_enable(NULL);
}

@@ -1975,9 +1975,9 @@ static void hardware_disable(void *junk)
{
	int cpu = raw_smp_processor_id();

	if (!cpu_isset(cpu, cpus_hardware_enabled))
	if (!cpumask_test_cpu(cpu, cpus_hardware_enabled))
		return;
	cpu_clear(cpu, cpus_hardware_enabled);
	cpumask_clear_cpu(cpu, cpus_hardware_enabled);
	kvm_arch_hardware_disable(NULL);
}

@@ -2211,9 +2211,14 @@ int kvm_init(void *opaque, unsigned int vcpu_size,

	bad_pfn = page_to_pfn(bad_page);

	if (!alloc_cpumask_var(&cpus_hardware_enabled, GFP_KERNEL)) {
		r = -ENOMEM;
		goto out_free_0;
	}

	r = kvm_arch_hardware_setup();
	if (r < 0)
		goto out_free_0;
		goto out_free_0a;

	for_each_online_cpu(cpu) {
		smp_call_function_single(cpu,
@@ -2277,6 +2282,8 @@ int kvm_init(void *opaque, unsigned int vcpu_size,
	on_each_cpu(hardware_disable, NULL, 1);
out_free_1:
	kvm_arch_hardware_unsetup();
out_free_0a:
	free_cpumask_var(cpus_hardware_enabled);
out_free_0:
	__free_page(bad_page);
out:
@@ -2300,6 +2307,7 @@ void kvm_exit(void)
	kvm_arch_hardware_unsetup();
	kvm_arch_exit();
	kvm_exit_debug();
	free_cpumask_var(cpus_hardware_enabled);
	__free_page(bad_page);
}
EXPORT_SYMBOL_GPL(kvm_exit);