enable kexec
[linux-2.6.git] / arch / sparc / kernel / unaligned.c
index 3a1ccac..a40bbcf 100644 (file)
@@ -137,8 +137,8 @@ static inline unsigned long *fetch_reg_addr(unsigned int reg, struct pt_regs *re
        return &win->locals[reg - 16];
 }
 
-static inline unsigned long compute_effective_address(struct pt_regs *regs,
-                                                     unsigned int insn)
+static unsigned long compute_effective_address(struct pt_regs *regs,
+                                              unsigned int insn)
 {
        unsigned int rs1 = (insn >> 14) & 0x1f;
        unsigned int rs2 = insn & 0x1f;
@@ -153,8 +153,8 @@ static inline unsigned long compute_effective_address(struct pt_regs *regs,
        }
 }
 
-static inline unsigned long safe_compute_effective_address(struct pt_regs *regs,
-                                                          unsigned int insn)
+unsigned long safe_compute_effective_address(struct pt_regs *regs,
+                                            unsigned int insn)
 {
        unsigned int rs1 = (insn >> 14) & 0x1f;
        unsigned int rs2 = insn & 0x1f;
@@ -473,7 +473,7 @@ void user_mna_trap_fault(struct pt_regs *regs, unsigned int insn)
        info.si_signo = SIGBUS;
        info.si_errno = 0;
        info.si_code = BUS_ADRALN;
-       info.si_addr = (void *)safe_compute_effective_address(regs, insn);
+       info.si_addr = (void __user *)safe_compute_effective_address(regs, insn);
        info.si_trapno = 0;
        send_sig_info(SIGBUS, &info, current);
 }