aboutsummaryrefslogtreecommitdiff
path: root/arch/sparc64/kernel/unaligned.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@g5.osdl.org>2005-09-29 08:55:43 -0700
committerLinus Torvalds <torvalds@g5.osdl.org>2005-09-29 08:55:43 -0700
commit6dec3cf5cdb600f39b9eac3349f6bf50eab87731 (patch)
tree868cecce3567d1d63591d38c8086294deb07620d /arch/sparc64/kernel/unaligned.c
parent82810a906f8734ae6503ea11436a7164d2f86f2e (diff)
parent705747ab87c96f1b4b8e73ba617c323d9087f6ac (diff)
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
Diffstat (limited to 'arch/sparc64/kernel/unaligned.c')
-rw-r--r--arch/sparc64/kernel/unaligned.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/arch/sparc64/kernel/unaligned.c b/arch/sparc64/kernel/unaligned.c
index 42718f6a7d3..02af08ffec8 100644
--- a/arch/sparc64/kernel/unaligned.c
+++ b/arch/sparc64/kernel/unaligned.c
@@ -294,7 +294,7 @@ asmlinkage void kernel_unaligned_trap(struct pt_regs *regs, unsigned int insn, u
kernel_mna_trap_fault();
} else {
- unsigned long addr;
+ unsigned long addr, *reg_addr;
int orig_asi, asi;
addr = compute_effective_address(regs, insn,
@@ -319,11 +319,11 @@ asmlinkage void kernel_unaligned_trap(struct pt_regs *regs, unsigned int insn, u
};
switch (dir) {
case load:
- do_int_load(fetch_reg_addr(((insn>>25)&0x1f), regs),
- size, (unsigned long *) addr,
+ reg_addr = fetch_reg_addr(((insn>>25)&0x1f), regs);
+ do_int_load(reg_addr, size, (unsigned long *) addr,
decode_signedness(insn), asi);
if (unlikely(asi != orig_asi)) {
- unsigned long val_in = *(unsigned long *) addr;
+ unsigned long val_in = *reg_addr;
switch (size) {
case 2:
val_in = swab16(val_in);
@@ -339,7 +339,7 @@ asmlinkage void kernel_unaligned_trap(struct pt_regs *regs, unsigned int insn, u
BUG();
break;
};
- *(unsigned long *) addr = val_in;
+ *reg_addr = val_in;
}
break;