lkml.org 
[lkml]   [2008]   [Dec]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    Subject[PATCH 2/2] 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>
    ---
    virt/kvm/kvm_main.c | 20 ++++++++++++++------
    1 file changed, 14 insertions(+), 6 deletions(-)

    diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
    --- a/virt/kvm/kvm_main.c
    +++ b/virt/kvm/kvm_main.c
    @@ -63,7 +63,7 @@ DEFINE_SPINLOCK(kvm_lock);
    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);
    @@ -1796,9 +1796,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);
    }

    @@ -1806,9 +1806,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);
    }

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

    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,
    @@ -2103,6 +2108,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:
    @@ -2126,6 +2133,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);


    \
     
     \ /
      Last update: 2008-12-07 11:59    [W:0.026 / U:0.204 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site