diff options
author | Paul Mundt <lethal@linux-sh.org> | 2009-08-13 14:06:13 -0400 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2009-08-13 14:06:13 -0400 |
commit | bf43a160ff2d67a21b076286bab6f5e2c993bd0a (patch) | |
tree | fbfd62c12ab7e4c72804ac271548e950b268562c /arch/sh | |
parent | 3497447f15485b479366ec86effaac16fc82411b (diff) |
sh: unwinder: Restore put_unaligned() for an unaligned destination.
The destination address might be unaligned, so set it with
put_unaligned() for safety. This restores the previous behaviour, albeit
through the proper API.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh')
-rw-r--r-- | arch/sh/kernel/dwarf.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/sh/kernel/dwarf.c b/arch/sh/kernel/dwarf.c index d1d8536e5ba3..49d039f19426 100644 --- a/arch/sh/kernel/dwarf.c +++ b/arch/sh/kernel/dwarf.c | |||
@@ -89,7 +89,8 @@ static void dwarf_frame_alloc_regs(struct dwarf_frame *frame, | |||
89 | */ | 89 | */ |
90 | static inline int dwarf_read_addr(unsigned long *src, unsigned long *dst) | 90 | static inline int dwarf_read_addr(unsigned long *src, unsigned long *dst) |
91 | { | 91 | { |
92 | *dst = get_unaligned(src); | 92 | u32 val = get_unaligned(src); |
93 | put_unaligned(val, dst); | ||
93 | return sizeof(unsigned long *); | 94 | return sizeof(unsigned long *); |
94 | } | 95 | } |
95 | 96 | ||