static void metag_pmu_start(struct perf_event *event, int flags)
 {
-       struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events);
+       struct cpu_hw_events *cpuc = this_cpu_ptr(&cpu_hw_events);
        struct hw_perf_event *hwc = &event->hw;
        int idx = hwc->idx;
 
 
 static int metag_pmu_add(struct perf_event *event, int flags)
 {
-       struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events);
+       struct cpu_hw_events *cpuc = this_cpu_ptr(&cpu_hw_events);
        struct hw_perf_event *hwc = &event->hw;
        int idx = 0, ret = 0;
 
 
 static void metag_pmu_del(struct perf_event *event, int flags)
 {
-       struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events);
+       struct cpu_hw_events *cpuc = this_cpu_ptr(&cpu_hw_events);
        struct hw_perf_event *hwc = &event->hw;
        int idx = hwc->idx;
 
 
 static void metag_pmu_enable_counter(struct hw_perf_event *event, int idx)
 {
-       struct cpu_hw_events *events = &__get_cpu_var(cpu_hw_events);
+       struct cpu_hw_events *events = this_cpu_ptr(&cpu_hw_events);
        unsigned int config = event->config;
        unsigned int tmp = config & 0xf0;
        unsigned long flags;
 
 static void metag_pmu_disable_counter(struct hw_perf_event *event, int idx)
 {
-       struct cpu_hw_events *events = &__get_cpu_var(cpu_hw_events);
+       struct cpu_hw_events *events = this_cpu_ptr(&cpu_hw_events);
        unsigned int tmp = 0;
        unsigned long flags;
 
 
 static void metag_pmu_write_counter(int idx, u32 val)
 {
-       struct cpu_hw_events *events = &__get_cpu_var(cpu_hw_events);
+       struct cpu_hw_events *events = this_cpu_ptr(&cpu_hw_events);
        u32 tmp = 0;
        unsigned long flags;
 
 static irqreturn_t metag_pmu_counter_overflow(int irq, void *dev)
 {
        int idx = (int)dev;
-       struct cpu_hw_events *cpuhw = &__get_cpu_var(cpu_hw_events);
+       struct cpu_hw_events *cpuhw = this_cpu_ptr(&cpu_hw_events);
        struct perf_event *event = cpuhw->events[idx];
        struct hw_perf_event *hwc = &event->hw;
        struct pt_regs *regs = get_irq_regs();