sh: unwinder: Restore put_unaligned() for an unaligned destination.
Paul Mundt [Thu, 13 Aug 2009 18:06:13 +0000 (03:06 +0900)]
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>

arch/sh/kernel/dwarf.c

index d1d8536..49d039f 100644 (file)
@@ -89,7 +89,8 @@ static void dwarf_frame_alloc_regs(struct dwarf_frame *frame,
  */
 static inline int dwarf_read_addr(unsigned long *src, unsigned long *dst)
 {
-       *dst = get_unaligned(src);
+       u32 val = get_unaligned(src);
+       put_unaligned(val, dst);
        return sizeof(unsigned long *);
 }