Signed-off-by: Zhouyi Zhou <yizhouz...@ict.ac.cn>
---
 arch/x86/kernel/cpu/perf_event_amd_uncore.c |   32 +++++++++++++++------------
 1 file changed, 18 insertions(+), 14 deletions(-)

diff --git a/arch/x86/kernel/cpu/perf_event_amd_uncore.c 
b/arch/x86/kernel/cpu/perf_event_amd_uncore.c
index 3bbdf4c..f60a50e 100644
--- a/arch/x86/kernel/cpu/perf_event_amd_uncore.c
+++ b/arch/x86/kernel/cpu/perf_event_amd_uncore.c
@@ -300,24 +300,28 @@ static void amd_uncore_cpu_up_prepare(unsigned int cpu)
 
        if (amd_uncore_nb) {
                uncore = amd_uncore_alloc(cpu);
-               uncore->cpu = cpu;
-               uncore->num_counters = NUM_COUNTERS_NB;
-               uncore->rdpmc_base = RDPMC_BASE_NB;
-               uncore->msr_base = MSR_F15H_NB_PERF_CTL;
-               uncore->active_mask = &amd_nb_active_mask;
-               uncore->pmu = &amd_nb_pmu;
-               *per_cpu_ptr(amd_uncore_nb, cpu) = uncore;
+               if (uncore) {
+                       uncore->cpu = cpu;
+                       uncore->num_counters = NUM_COUNTERS_NB;
+                       uncore->rdpmc_base = RDPMC_BASE_NB;
+                       uncore->msr_base = MSR_F15H_NB_PERF_CTL;
+                       uncore->active_mask = &amd_nb_active_mask;
+                       uncore->pmu = &amd_nb_pmu;
+                       *per_cpu_ptr(amd_uncore_nb, cpu) = uncore;
+               }
        }
 
        if (amd_uncore_l2) {
                uncore = amd_uncore_alloc(cpu);
-               uncore->cpu = cpu;
-               uncore->num_counters = NUM_COUNTERS_L2;
-               uncore->rdpmc_base = RDPMC_BASE_L2;
-               uncore->msr_base = MSR_F16H_L2I_PERF_CTL;
-               uncore->active_mask = &amd_l2_active_mask;
-               uncore->pmu = &amd_l2_pmu;
-               *per_cpu_ptr(amd_uncore_l2, cpu) = uncore;
+               if (uncore) {
+                       uncore->cpu = cpu;
+                       uncore->num_counters = NUM_COUNTERS_L2;
+                       uncore->rdpmc_base = RDPMC_BASE_L2;
+                       uncore->msr_base = MSR_F16H_L2I_PERF_CTL;
+                       uncore->active_mask = &amd_l2_active_mask;
+                       uncore->pmu = &amd_l2_pmu;
+                       *per_cpu_ptr(amd_uncore_l2, cpu) = uncore;
+               }
        }
 }
 
-- 
1.7.10.4

--
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