--- /dev/null
+From cb57a2b4cff7edf2a4e32c0163200e9434807e0a Mon Sep 17 00:00:00 2001
+From: "H. Peter Anvin" <hpa@linux.intel.com>
+Date: Tue, 20 Nov 2012 22:21:02 -0800
+Subject: x86-32: Export kernel_stack_pointer() for modules
+
+From: "H. Peter Anvin" <hpa@linux.intel.com>
+
+commit cb57a2b4cff7edf2a4e32c0163200e9434807e0a upstream.
+
+Modules, in particular oprofile (and possibly other similar tools)
+need kernel_stack_pointer(), so export it using EXPORT_SYMBOL_GPL().
+
+Cc: Yang Wei <wei.yang@windriver.com>
+Cc: Robert Richter <robert.richter@amd.com>
+Cc: Jun Zhang <jun.zhang@intel.com>
+Link: http://lkml.kernel.org/r/20120912135059.GZ8285@erda.amd.com
+Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
+Cc: Robert Richter <rric@kernel.org>
+Cc: Herton Ronaldo Krzesinski <herton.krzesinski@canonical.com>
+Cc: Philip Müller <philm@manjaro.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/x86/kernel/ptrace.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/arch/x86/kernel/ptrace.c
++++ b/arch/x86/kernel/ptrace.c
+@@ -21,6 +21,7 @@
+ #include <linux/signal.h>
+ #include <linux/perf_event.h>
+ #include <linux/hw_breakpoint.h>
++#include <linux/module.h>
+
+ #include <asm/uaccess.h>
+ #include <asm/pgtable.h>
+@@ -191,6 +192,7 @@ unsigned long kernel_stack_pointer(struc
+
+ return (unsigned long)regs;
+ }
++EXPORT_SYMBOL_GPL(kernel_stack_pointer);
+
+ static unsigned long *pt_regs_access(struct pt_regs *regs, unsigned long regno)
+ {