diff options
Diffstat (limited to 'arch/sparc/kernel')
-rw-r--r-- | arch/sparc/kernel/kernel.h | 10 | ||||
-rw-r--r-- | arch/sparc/kernel/sys_sparc_64.c | 1 | ||||
-rw-r--r-- | arch/sparc/kernel/traps_64.c | 7 | ||||
-rw-r--r-- | arch/sparc/kernel/unaligned_64.c | 2 |
4 files changed, 15 insertions, 5 deletions
diff --git a/arch/sparc/kernel/kernel.h b/arch/sparc/kernel/kernel.h index 0ce0f96f3f1b..e122b4bf00f0 100644 --- a/arch/sparc/kernel/kernel.h +++ b/arch/sparc/kernel/kernel.h | |||
@@ -23,6 +23,16 @@ static inline unsigned long kimage_addr_to_ra(const char *p) | |||
23 | 23 | ||
24 | return kern_base + (val - KERNBASE); | 24 | return kern_base + (val - KERNBASE); |
25 | } | 25 | } |
26 | |||
27 | /* sys_sparc_64.c */ | ||
28 | asmlinkage long sys_kern_features(void); | ||
29 | |||
30 | /* unaligned_64.c */ | ||
31 | asmlinkage void kernel_unaligned_trap(struct pt_regs *regs, unsigned int insn); | ||
32 | int handle_popc(u32 insn, struct pt_regs *regs); | ||
33 | void handle_lddfmna(struct pt_regs *regs, unsigned long sfar, unsigned long sfsr); | ||
34 | void handle_stdfmna(struct pt_regs *regs, unsigned long sfar, unsigned long sfsr); | ||
35 | |||
26 | #endif | 36 | #endif |
27 | 37 | ||
28 | #ifdef CONFIG_SPARC32 | 38 | #ifdef CONFIG_SPARC32 |
diff --git a/arch/sparc/kernel/sys_sparc_64.c b/arch/sparc/kernel/sys_sparc_64.c index beb0b5a5f21f..c85403d0496c 100644 --- a/arch/sparc/kernel/sys_sparc_64.c +++ b/arch/sparc/kernel/sys_sparc_64.c | |||
@@ -31,6 +31,7 @@ | |||
31 | #include <asm/unistd.h> | 31 | #include <asm/unistd.h> |
32 | 32 | ||
33 | #include "entry.h" | 33 | #include "entry.h" |
34 | #include "kernel.h" | ||
34 | #include "systbls.h" | 35 | #include "systbls.h" |
35 | 36 | ||
36 | /* #define DEBUG_UNIMP_SYSCALL */ | 37 | /* #define DEBUG_UNIMP_SYSCALL */ |
diff --git a/arch/sparc/kernel/traps_64.c b/arch/sparc/kernel/traps_64.c index 864847042ec4..fb6640ec8557 100644 --- a/arch/sparc/kernel/traps_64.c +++ b/arch/sparc/kernel/traps_64.c | |||
@@ -43,8 +43,10 @@ | |||
43 | #include <asm/prom.h> | 43 | #include <asm/prom.h> |
44 | #include <asm/memctrl.h> | 44 | #include <asm/memctrl.h> |
45 | #include <asm/cacheflush.h> | 45 | #include <asm/cacheflush.h> |
46 | #include <asm/setup.h> | ||
46 | 47 | ||
47 | #include "entry.h" | 48 | #include "entry.h" |
49 | #include "kernel.h" | ||
48 | #include "kstack.h" | 50 | #include "kstack.h" |
49 | 51 | ||
50 | /* When an irrecoverable trap occurs at tl > 0, the trap entry | 52 | /* When an irrecoverable trap occurs at tl > 0, the trap entry |
@@ -2431,9 +2433,6 @@ EXPORT_SYMBOL(die_if_kernel); | |||
2431 | #define VIS_OPCODE_MASK ((0x3 << 30) | (0x3f << 19)) | 2433 | #define VIS_OPCODE_MASK ((0x3 << 30) | (0x3f << 19)) |
2432 | #define VIS_OPCODE_VAL ((0x2 << 30) | (0x36 << 19)) | 2434 | #define VIS_OPCODE_VAL ((0x2 << 30) | (0x36 << 19)) |
2433 | 2435 | ||
2434 | extern int handle_popc(u32 insn, struct pt_regs *regs); | ||
2435 | extern int handle_ldf_stq(u32 insn, struct pt_regs *regs); | ||
2436 | |||
2437 | void do_illegal_instruction(struct pt_regs *regs) | 2436 | void do_illegal_instruction(struct pt_regs *regs) |
2438 | { | 2437 | { |
2439 | enum ctx_state prev_state = exception_enter(); | 2438 | enum ctx_state prev_state = exception_enter(); |
@@ -2484,8 +2483,6 @@ out: | |||
2484 | exception_exit(prev_state); | 2483 | exception_exit(prev_state); |
2485 | } | 2484 | } |
2486 | 2485 | ||
2487 | extern void kernel_unaligned_trap(struct pt_regs *regs, unsigned int insn); | ||
2488 | |||
2489 | void mem_address_unaligned(struct pt_regs *regs, unsigned long sfar, unsigned long sfsr) | 2486 | void mem_address_unaligned(struct pt_regs *regs, unsigned long sfar, unsigned long sfsr) |
2490 | { | 2487 | { |
2491 | enum ctx_state prev_state = exception_enter(); | 2488 | enum ctx_state prev_state = exception_enter(); |
diff --git a/arch/sparc/kernel/unaligned_64.c b/arch/sparc/kernel/unaligned_64.c index 3c1a7cb31579..bbead0d7671c 100644 --- a/arch/sparc/kernel/unaligned_64.c +++ b/arch/sparc/kernel/unaligned_64.c | |||
@@ -24,8 +24,10 @@ | |||
24 | #include <linux/context_tracking.h> | 24 | #include <linux/context_tracking.h> |
25 | #include <asm/fpumacro.h> | 25 | #include <asm/fpumacro.h> |
26 | #include <asm/cacheflush.h> | 26 | #include <asm/cacheflush.h> |
27 | #include <asm/setup.h> | ||
27 | 28 | ||
28 | #include "entry.h" | 29 | #include "entry.h" |
30 | #include "kernel.h" | ||
29 | 31 | ||
30 | enum direction { | 32 | enum direction { |
31 | load, /* ld, ldd, ldh, ldsh */ | 33 | load, /* ld, ldd, ldh, ldsh */ |