summaryrefslogtreecommitdiff
path: root/arch/parisc/include
diff options
context:
space:
mode:
authorHelge Deller <deller@gmx.de>2016-04-08 16:32:52 (GMT)
committerHelge Deller <deller@gmx.de>2016-04-08 20:14:14 (GMT)
commit2ef4dfd9d9f288943e249b78365a69e3ea3ec072 (patch)
treeb2add375348d201853d93329c144159cf45b96ae /arch/parisc/include
parentef72f3110d8b19f4c098a0bff7ed7d11945e70c6 (diff)
downloadlinux-2ef4dfd9d9f288943e249b78365a69e3ea3ec072.tar.xz
parisc: Unbreak handling exceptions from kernel modules
Handling exceptions from modules never worked on parisc. It was just masked by the fact that exceptions from modules don't happen during normal use. When a module triggers an exception in get_user() we need to load the main kernel dp value before accessing the exception_data structure, and afterwards restore the original dp value of the module on exit. Noticed-by: Mikulas Patocka <mpatocka@redhat.com> Signed-off-by: Helge Deller <deller@gmx.de> Cc: stable@vger.kernel.org
Diffstat (limited to 'arch/parisc/include')
-rw-r--r--arch/parisc/include/asm/uaccess.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/parisc/include/asm/uaccess.h b/arch/parisc/include/asm/uaccess.h
index d4dd6e5..6f893d2 100644
--- a/arch/parisc/include/asm/uaccess.h
+++ b/arch/parisc/include/asm/uaccess.h
@@ -77,6 +77,7 @@ struct exception_table_entry {
*/
struct exception_data {
unsigned long fault_ip;
+ unsigned long fault_gp;
unsigned long fault_space;
unsigned long fault_addr;
};