]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/oprofile/cpu_buffer.c
Merge branch 'msm-video' of git://codeaurora.org/quic/kernel/dwalker/linux-msm
[mv-sheeva.git] / drivers / oprofile / cpu_buffer.c
index de82183bb9b36b1c7d226e6fb67b77527f61d4bd..219f79e2210a3fcd561b94456c4960a0a1fbacd9 100644 (file)
@@ -159,7 +159,7 @@ int op_cpu_buffer_write_commit(struct op_entry *entry)
 struct op_sample *op_cpu_buffer_read_entry(struct op_entry *entry, int cpu)
 {
        struct ring_buffer_event *e;
-       e = ring_buffer_consume(op_ring_buffer, cpu, NULL);
+       e = ring_buffer_consume(op_ring_buffer, cpu, NULL, NULL);
        if (!e)
                return NULL;
 
@@ -319,8 +319,16 @@ void oprofile_add_ext_sample(unsigned long pc, struct pt_regs * const regs,
 
 void oprofile_add_sample(struct pt_regs * const regs, unsigned long event)
 {
-       int is_kernel = !user_mode(regs);
-       unsigned long pc = profile_pc(regs);
+       int is_kernel;
+       unsigned long pc;
+
+       if (likely(regs)) {
+               is_kernel = !user_mode(regs);
+               pc = profile_pc(regs);
+       } else {
+               is_kernel = 0;    /* This value will not be used */
+               pc = ESCAPE_CODE; /* as this causes an early return. */
+       }
 
        __oprofile_add_ext_sample(pc, regs, event, is_kernel);
 }