summaryrefslogtreecommitdiffstats
path: root/arch/ia64/kernel
diff options
context:
space:
mode:
authorRussell King <rmk@dyn-67.arm.linux.org.uk>2008-10-09 21:31:58 +0100
committerRussell King <rmk+kernel@arm.linux.org.uk>2008-10-09 21:31:58 +0100
commit9e165acf1b9e37af7c0fa39399b43d0bd8600039 (patch)
tree7ffdb0ad4c35ac9c19c4096b4f22ccc9b1eeefad /arch/ia64/kernel
parent6a4690c22f5da1eb1c898b61b6a80da52fbd976f (diff)
parent791ccf2e4deeea8426b389fd0f5bb0e9167bb75d (diff)
Merge branch 'at91' into devel
Diffstat (limited to 'arch/ia64/kernel')
-rw-r--r--arch/ia64/kernel/module.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/arch/ia64/kernel/module.c b/arch/ia64/kernel/module.c
index 29aad349e0c..545626f66a4 100644
--- a/arch/ia64/kernel/module.c
+++ b/arch/ia64/kernel/module.c
@@ -31,9 +31,11 @@
#include <linux/elf.h>
#include <linux/moduleloader.h>
#include <linux/string.h>
+#include <linux/uaccess.h>
#include <linux/vmalloc.h>
#include <asm/patch.h>
+#include <asm/sections.h>
#include <asm/unaligned.h>
#define ARCH_MODULE_DEBUG 0
@@ -941,3 +943,13 @@ module_arch_cleanup (struct module *mod)
if (mod->arch.core_unw_table)
unw_remove_unwind_table(mod->arch.core_unw_table);
}
+
+void *dereference_function_descriptor(void *ptr)
+{
+ struct fdesc *desc = ptr;
+ void *p;
+
+ if (!probe_kernel_address(&desc->ip, p))
+ ptr = p;
+ return ptr;
+}