| From 6bbe91c3a36d67e83199ba0d120df6a1a6c0ee17 Mon Sep 17 00:00:00 2001 |
| From: David S. Miller <davem@davemloft.net> |
| Date: Mon, 19 Apr 2010 13:46:48 -0700 |
| Subject: sparc64: Use correct pt_regs in decode_access_size() error paths. |
| |
| |
| From: David S. Miller <davem@davemloft.net> |
| |
| [ Upstream commit baa06775e224e9f74e5c2de894c95cd49678beff ] |
| |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| --- |
| arch/sparc/kernel/unaligned_64.c | 6 +++--- |
| 1 file changed, 3 insertions(+), 3 deletions(-) |
| |
| --- a/arch/sparc/kernel/unaligned_64.c |
| +++ b/arch/sparc/kernel/unaligned_64.c |
| @@ -49,7 +49,7 @@ static inline enum direction decode_dire |
| } |
| |
| /* 16 = double-word, 8 = extra-word, 4 = word, 2 = half-word */ |
| -static inline int decode_access_size(unsigned int insn) |
| +static inline int decode_access_size(struct pt_regs *regs, unsigned int insn) |
| { |
| unsigned int tmp; |
| |
| @@ -65,7 +65,7 @@ static inline int decode_access_size(uns |
| return 2; |
| else { |
| printk("Impossible unaligned trap. insn=%08x\n", insn); |
| - die_if_kernel("Byte sized unaligned access?!?!", current_thread_info()->kregs); |
| + die_if_kernel("Byte sized unaligned access?!?!", regs); |
| |
| /* GCC should never warn that control reaches the end |
| * of this function without returning a value because |
| @@ -289,7 +289,7 @@ static void log_unaligned(struct pt_regs |
| asmlinkage void kernel_unaligned_trap(struct pt_regs *regs, unsigned int insn) |
| { |
| enum direction dir = decode_direction(insn); |
| - int size = decode_access_size(insn); |
| + int size = decode_access_size(regs, insn); |
| int orig_asi, asi; |
| |
| current_thread_info()->kern_una_regs = regs; |