diff --git a/arch/sparc/include/asm/setup.h b/arch/sparc/include/asm/setup.h index 622145bf2e9a0c833bab996a7edc26bbd12968a9..fb54505e008ec22f543e2c6e08355e1d42f8daee 100644 --- a/arch/sparc/include/asm/setup.h +++ b/arch/sparc/include/asm/setup.h @@ -42,6 +42,9 @@ extern unsigned long cmdline_memory_size; /* devices.c */ void __init device_scan(void); +/* unaligned_32.c */ +unsigned long safe_compute_effective_address(struct pt_regs *, unsigned int); + #endif extern void sun_do_break(void); diff --git a/arch/sparc/kernel/kernel.h b/arch/sparc/kernel/kernel.h index 2c312a20e2a5953925ad129c2bb678dfea89a234..4f2203808008392c28d045dc567a10f2a95b0f24 100644 --- a/arch/sparc/kernel/kernel.h +++ b/arch/sparc/kernel/kernel.h @@ -113,6 +113,10 @@ asmlinkage int do_sys_sigstack(struct sigstack __user *ssptr, /* ptrace_32.c */ asmlinkage int syscall_trace(struct pt_regs *regs, int syscall_exit_p); +/* unaligned_32.c */ +asmlinkage void kernel_unaligned_trap(struct pt_regs *regs, unsigned int insn); +asmlinkage void user_unaligned_trap(struct pt_regs *regs, unsigned int insn); + /* windows.c */ void try_to_clear_window_buffer(struct pt_regs *regs, int who); diff --git a/arch/sparc/kernel/unaligned_32.c b/arch/sparc/kernel/unaligned_32.c index c0ec897861934f3457f73237f533cfe65f630adf..c5c61b3c6b56f30d40165179e1e851d8859f6bd3 100644 --- a/arch/sparc/kernel/unaligned_32.c +++ b/arch/sparc/kernel/unaligned_32.c @@ -16,6 +16,10 @@ #include #include +#include + +#include "kernel.h" + enum direction { load, /* ld, ldd, ldh, ldsh */ store, /* st, std, sth, stsh */ diff --git a/arch/sparc/mm/fault_32.c b/arch/sparc/mm/fault_32.c index 775181003fd8fd2180f7fa63968e555fef5ebdc8..908e8c17c902bef419877cd1bedcc896b9627636 100644 --- a/arch/sparc/mm/fault_32.c +++ b/arch/sparc/mm/fault_32.c @@ -26,6 +26,7 @@ #include #include #include +#include #include #include #include @@ -140,9 +141,6 @@ static void __do_fault_siginfo(int code, int sig, struct pt_regs *regs, force_sig_info (sig, &info, current); } -extern unsigned long safe_compute_effective_address(struct pt_regs *, - unsigned int); - static unsigned long compute_si_addr(struct pt_regs *regs, int text_fault) { unsigned int insn;