summaryrefslogtreecommitdiff
path: root/module
diff options
context:
space:
mode:
Diffstat (limited to 'module')
-rw-r--r--module/sysprof-module.c25
1 files changed, 16 insertions, 9 deletions
diff --git a/module/sysprof-module.c b/module/sysprof-module.c
index 94a67ad..97b11b1 100644
--- a/module/sysprof-module.c
+++ b/module/sysprof-module.c
@@ -61,17 +61,24 @@ DECLARE_WAIT_QUEUE_HEAD (wait_for_trace);
/* Macro the names of the registers that are used on each architecture */
#if defined(CONFIG_X86_64)
-# define REG_FRAME_PTR rbp
-# define REG_INS_PTR rip
-# define REG_STACK_PTR rsp
-# define REG_STACK_PTR0 rsp0
+# define REG_FRAME_PTR rbp
+# define REG_INS_PTR rip
+# define REG_STACK_PTR rsp
+# define REG_STACK_PTR0 rsp0
#elif defined(CONFIG_X86)
-# define REG_FRAME_PTR ebp
-# define REG_INS_PTR eip
-# define REG_STACK_PTR esp
-# define REG_STACK_PTR0 esp0
+# if LINUX_VERSION_CODE >= KERNEL_VERSION (2,6,24)
+# define REG_FRAME_PTR bp
+# define REG_INS_PTR ip
+# define REG_STACK_PTR sp
+# define REG_STACK_PTR0 sp0
+# else
+# define REG_FRAME_PTR ebp
+# define REG_INS_PTR eip
+# define REG_STACK_PTR esp
+# define REG_STACK_PTR0 esp0
+# endif
#else
-# error Sysprof only supports the i386 and x86-64 architectures
+# error Sysprof only supports the i386 and x86-64 architectures
#endif
#define SAMPLES_PER_SECOND 250