From 40258ee97d0d5e5c30a3d4b7acaf294fe82cd23f Mon Sep 17 00:00:00 2001 From: Paul Mundt Date: Thu, 24 Sep 2009 17:48:15 +0900 Subject: sh: Fix up uninitialized variable use caught by gcc 4.4. In the unaligned kernel exception fixup case the printk() was ordered before the copy_from_user(), resulting in a nonsensical instruction value. This fixes up the ordering properly. Signed-off-by: Paul Mundt --- arch/sh/kernel/traps_32.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'arch/sh') diff --git a/arch/sh/kernel/traps_32.c b/arch/sh/kernel/traps_32.c index f9760c5c234..69bb1652ecc 100644 --- a/arch/sh/kernel/traps_32.c +++ b/arch/sh/kernel/traps_32.c @@ -678,12 +678,6 @@ uspace_segv: } else { se_sys += 1; - if (se_kernmode_warn) - printk(KERN_NOTICE "Unaligned kernel access " - "on behalf of \"%s\" pid=%d pc=0x%p ins=0x%04hx\n", - current->comm, current->pid, (void *)regs->pc, - instruction); - if (regs->pc & 1) die("unaligned program counter", regs, error_code); @@ -697,6 +691,12 @@ uspace_segv: die("insn faulting in do_address_error", regs, 0); } + if (se_kernmode_warn) + printk(KERN_NOTICE "Unaligned kernel access " + "on behalf of \"%s\" pid=%d pc=0x%p ins=0x%04hx\n", + current->comm, current->pid, (void *)regs->pc, + instruction); + handle_unaligned_access(instruction, regs, &user_mem_access, 0); set_fs(oldfs); -- cgit v1.2.3-70-g09d2