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: Rusty Russell <rusty@rustcorp.com.au> Signed-off-by: Avi Kivity <avi@redhat.com>
This commit is contained in:
parent
6ef7a1bc45
commit
7f59f492da
|
@ -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 @@ out_free_2:
|
|||
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);
|
||||
|
|
Loading…
Reference in New Issue