On Tue, Sep 17, 2013 at 12:58:34PM +0800, Yan, Zheng wrote:
> ---
> diff --git a/arch/x86/kernel/cpu/perf_event_intel_uncore.c 
> b/arch/x86/kernel/cpu/perf_event_intel_uncore.c
> index fd8011e..a12a22f 100644
> --- a/arch/x86/kernel/cpu/perf_event_intel_uncore.c
> +++ b/arch/x86/kernel/cpu/perf_event_intel_uncore.c
> @@ -2713,7 +2713,10 @@ struct intel_uncore_box *uncore_alloc_box(struct 
> intel_uncore_type *type, int cp
>  
>       size = sizeof(*box) + type->num_shared_regs * sizeof(struct 
> intel_uncore_extra_reg);
>  
> -     box = kzalloc_node(size, GFP_KERNEL, cpu_to_node(cpu));
> +     if (cpu < 0)
> +             box = kzalloc(size, GFP_KERNEL);
> +     else
> +             box = kzalloc_node(size, GFP_KERNEL, cpu_to_node(cpu));
>       if (!box)
>               return NULL;

I believe -1 is a valid node number for all allocators, in which case
they fall back to the current node.

>  
> @@ -3031,7 +3034,7 @@ static int uncore_validate_group(struct 
> intel_uncore_pmu *pmu,
>       struct intel_uncore_box *fake_box;
>       int ret = -EINVAL, n;
>  
> -     fake_box = uncore_alloc_box(pmu->type, smp_processor_id());
> +     fake_box = uncore_alloc_box(pmu->type, -1);
>       if (!fake_box)
>               return -ENOMEM;
>  

Yes, much better indeed.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to