summaryrefslogtreecommitdiff
path: root/packages/linux/linux-jlime-sh3-2.6.16.20/volatile-traps.c.patch
blob: dd432f58e568ac655636a9493acfb9b1f284b33f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
--- linux-2.6.16.20/arch/sh/kernel/traps.c_orig	2006-06-09 00:03:58.000000000 +0000
+++ linux-2.6.16.20/arch/sh/kernel/traps.c	2006-06-09 00:07:04.000000000 +0000
@@ -51,7 +51,7 @@
 #define DO_ERROR(trapnr, signr, str, name, tsk)				\
 asmlinkage void do_##name(unsigned long r4, unsigned long r5,		\
 			  unsigned long r6, unsigned long r7,		\
-			  struct pt_regs regs)				\
+			  volatile struct pt_regs regs)				\
 {									\
 	unsigned long error_code;					\
  									\
@@ -89,7 +89,7 @@
 
 DEFINE_SPINLOCK(die_lock);
 
-void die(const char * str, struct pt_regs * regs, long err)
+void die(const char * str, volatile struct pt_regs * regs, long err)
 {
 	static int die_counter;
 
@@ -102,7 +102,7 @@
 	do_exit(SIGSEGV);
 }
 
-static inline void die_if_kernel(const char * str, struct pt_regs * regs, long err)
+static inline void die_if_kernel(const char * str, volatile struct pt_regs * regs, long err)
 {
 	if (!user_mode(regs))
 		die(str, regs, err);
@@ -117,7 +117,7 @@
  * - other kernel errors are bad
  * - return 0 if fixed-up, -EFAULT if non-fatal (to the kernel) fault
  */
-static int die_if_no_fixup(const char * str, struct pt_regs * regs, long err)
+static int die_if_no_fixup(const char * str, volatile struct pt_regs * regs, long err)
 {
 	if (!user_mode(regs))
 	{
@@ -581,7 +581,7 @@
 
 asmlinkage void do_exception_error(unsigned long r4, unsigned long r5,
 				   unsigned long r6, unsigned long r7,
-				   struct pt_regs regs)
+				   volatile struct pt_regs regs)
 {
 	long ex;
 	asm volatile("stc	r2_bank, %0" : "=r" (ex));