next_ip = regs->nip;
                        lr = regs->link;
                        level = 0;
-                       perf_callchain_store(entry, PERF_CONTEXT_KERNEL);
+                       perf_callchain_store_context(entry, PERF_CONTEXT_KERNEL);
 
                } else {
                        if (level == 0)
                            read_user_stack_64(&uregs[PT_R1], &sp))
                                return;
                        level = 0;
-                       perf_callchain_store(entry, PERF_CONTEXT_USER);
+                       perf_callchain_store_context(entry, PERF_CONTEXT_USER);
                        perf_callchain_store(entry, next_ip);
                        continue;
                }
                            read_user_stack_32(&uregs[PT_R1], &sp))
                                return;
                        level = 0;
-                       perf_callchain_store(entry, PERF_CONTEXT_USER);
+                       perf_callchain_store_context(entry, PERF_CONTEXT_USER);
                        perf_callchain_store(entry, next_ip);
                        continue;
                }
 
 
 extern int sysctl_perf_event_max_stack;
 
+#define perf_callchain_store_context(ctx, context) perf_callchain_store(ctx, context)
+
 static inline int perf_callchain_store(struct perf_callchain_entry_ctx *ctx, u64 ip)
 {
        if (ctx->nr < ctx->max_stack) {
 
 
        if (kernel && !user_mode(regs)) {
                if (add_mark)
-                       perf_callchain_store(&ctx, PERF_CONTEXT_KERNEL);
+                       perf_callchain_store_context(&ctx, PERF_CONTEXT_KERNEL);
                perf_callchain_kernel(&ctx, regs);
        }
 
                                goto exit_put;
 
                        if (add_mark)
-                               perf_callchain_store(&ctx, PERF_CONTEXT_USER);
+                               perf_callchain_store_context(&ctx, PERF_CONTEXT_USER);
                        perf_callchain_user(&ctx, regs);
                }
        }