From c3c25240312d92a088a9981b620e876e960313f8 Mon Sep 17 00:00:00 2001 From: "David S. Miller" Date: Tue, 19 Feb 2008 20:39:18 -0800 Subject: [SPARC64]: Fix sparse warnings wrt. machine_alt_power_off(). arch/sparc64/kernel/process.c:123:6: warning: symbol 'machine_alt_power_off' was not declared. Should it be static? Signed-off-by: David S. Miller --- arch/sparc64/kernel/power.c | 3 +-- arch/sparc64/kernel/process.c | 1 + include/asm-sparc64/reboot.h | 6 ++++++ 3 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 include/asm-sparc64/reboot.h diff --git a/arch/sparc64/kernel/power.c b/arch/sparc64/kernel/power.c index 850cdffdd69..eae8ca2a6ba 100644 --- a/arch/sparc64/kernel/power.c +++ b/arch/sparc64/kernel/power.c @@ -20,6 +20,7 @@ #include #include #include +#include #include @@ -39,8 +40,6 @@ static irqreturn_t power_handler(int irq, void *dev_id) return IRQ_HANDLED; } -extern void machine_halt(void); -extern void machine_alt_power_off(void); static void (*poweroff_method)(void) = machine_alt_power_off; void machine_power_off(void) diff --git a/arch/sparc64/kernel/process.c b/arch/sparc64/kernel/process.c index 6eceac51ae6..75c1408a664 100644 --- a/arch/sparc64/kernel/process.c +++ b/arch/sparc64/kernel/process.c @@ -47,6 +47,7 @@ #include #include #include +#include /* #define VERBOSE_SHOWREGS */ diff --git a/include/asm-sparc64/reboot.h b/include/asm-sparc64/reboot.h new file mode 100644 index 00000000000..3f3f43f5be5 --- /dev/null +++ b/include/asm-sparc64/reboot.h @@ -0,0 +1,6 @@ +#ifndef _SPARC64_REBOOT_H +#define _SPARC64_REBOOT_H + +extern void machine_alt_power_off(void); + +#endif /* _SPARC64_REBOOT_H */ -- cgit v1.2.3 From 5bbdb48d4c90f860861036978618ee1c7cec9d38 Mon Sep 17 00:00:00 2001 From: "David S. Miller" Date: Tue, 19 Feb 2008 20:42:11 -0800 Subject: [SPARC64]: Kill show_stackframe{,32}(). Noticed via sparse: arch/sparc64/kernel/process.c:215:6: warning: symbol 'show_stackframe' was not declared. Should it be static? arch/sparc64/kernel/process.c:243:6: warning: symbol 'show_stackframe32' was not declared. Should it be static? It is totally unused. Signed-off-by: David S. Miller --- arch/sparc64/kernel/process.c | 56 ------------------------------------------- 1 file changed, 56 deletions(-) diff --git a/arch/sparc64/kernel/process.c b/arch/sparc64/kernel/process.c index 75c1408a664..548af5d1f2c 100644 --- a/arch/sparc64/kernel/process.c +++ b/arch/sparc64/kernel/process.c @@ -212,62 +212,6 @@ static void show_regwindow(struct pt_regs *regs) print_symbol("I7: <%s>\n", rwk->ins[7]); } -void show_stackframe(struct sparc_stackf *sf) -{ - unsigned long size; - unsigned long *stk; - int i; - - printk("l0: %016lx l1: %016lx l2: %016lx l3: %016lx\n" - "l4: %016lx l5: %016lx l6: %016lx l7: %016lx\n", - sf->locals[0], sf->locals[1], sf->locals[2], sf->locals[3], - sf->locals[4], sf->locals[5], sf->locals[6], sf->locals[7]); - printk("i0: %016lx i1: %016lx i2: %016lx i3: %016lx\n" - "i4: %016lx i5: %016lx fp: %016lx ret_pc: %016lx\n", - sf->ins[0], sf->ins[1], sf->ins[2], sf->ins[3], - sf->ins[4], sf->ins[5], (unsigned long)sf->fp, sf->callers_pc); - printk("sp: %016lx x0: %016lx x1: %016lx x2: %016lx\n" - "x3: %016lx x4: %016lx x5: %016lx xx: %016lx\n", - (unsigned long)sf->structptr, sf->xargs[0], sf->xargs[1], - sf->xargs[2], sf->xargs[3], sf->xargs[4], sf->xargs[5], - sf->xxargs[0]); - size = ((unsigned long)sf->fp) - ((unsigned long)sf); - size -= STACKFRAME_SZ; - stk = (unsigned long *)((unsigned long)sf + STACKFRAME_SZ); - i = 0; - do { - printk("s%d: %016lx\n", i++, *stk++); - } while ((size -= sizeof(unsigned long))); -} - -void show_stackframe32(struct sparc_stackf32 *sf) -{ - unsigned long size; - unsigned *stk; - int i; - - printk("l0: %08x l1: %08x l2: %08x l3: %08x\n", - sf->locals[0], sf->locals[1], sf->locals[2], sf->locals[3]); - printk("l4: %08x l5: %08x l6: %08x l7: %08x\n", - sf->locals[4], sf->locals[5], sf->locals[6], sf->locals[7]); - printk("i0: %08x i1: %08x i2: %08x i3: %08x\n", - sf->ins[0], sf->ins[1], sf->ins[2], sf->ins[3]); - printk("i4: %08x i5: %08x fp: %08x ret_pc: %08x\n", - sf->ins[4], sf->ins[5], sf->fp, sf->callers_pc); - printk("sp: %08x x0: %08x x1: %08x x2: %08x\n" - "x3: %08x x4: %08x x5: %08x xx: %08x\n", - sf->structptr, sf->xargs[0], sf->xargs[1], - sf->xargs[2], sf->xargs[3], sf->xargs[4], sf->xargs[5], - sf->xxargs[0]); - size = ((unsigned long)sf->fp) - ((unsigned long)sf); - size -= STACKFRAME32_SZ; - stk = (unsigned *)((unsigned long)sf + STACKFRAME32_SZ); - i = 0; - do { - printk("s%d: %08x\n", i++, *stk++); - } while ((size -= sizeof(unsigned))); -} - #ifdef CONFIG_SMP static DEFINE_SPINLOCK(regdump_lock); #endif -- cgit v1.2.3 From 3ac1da338bea2f50c24f3c0cc54881e2b432e379 Mon Sep 17 00:00:00 2001 From: "David S. Miller" Date: Tue, 19 Feb 2008 20:48:58 -0800 Subject: [SPARC64]: Fix sparse warnings wrt. __show_regs(). arch/sparc64/kernel/process.c:219:6: warning: symbol '__show_regs' was not declared. Should it be static? Signed-off-by: David S. Miller --- arch/sparc64/kernel/kprobes.c | 2 -- arch/sparc64/kernel/traps.c | 2 -- include/asm-sparc64/ptrace.h | 1 + 3 files changed, 1 insertion(+), 4 deletions(-) diff --git a/arch/sparc64/kernel/kprobes.c b/arch/sparc64/kernel/kprobes.c index 34fc3ddd500..f43b5d75535 100644 --- a/arch/sparc64/kernel/kprobes.c +++ b/arch/sparc64/kernel/kprobes.c @@ -465,8 +465,6 @@ void __kprobes jprobe_return(void) extern void jprobe_return_trap_instruction(void); -extern void __show_regs(struct pt_regs * regs); - int __kprobes longjmp_break_handler(struct kprobe *p, struct pt_regs *regs) { u32 *addr = (u32 *) regs->tpc; diff --git a/arch/sparc64/kernel/traps.c b/arch/sparc64/kernel/traps.c index 2b6abf63334..007f5317c0d 100644 --- a/arch/sparc64/kernel/traps.c +++ b/arch/sparc64/kernel/traps.c @@ -1791,8 +1791,6 @@ static const char *sun4v_err_type_to_str(u32 type) }; } -extern void __show_regs(struct pt_regs * regs); - static void sun4v_log_error(struct pt_regs *regs, struct sun4v_error_entry *ent, int cpu, const char *pfx, atomic_t *ocnt) { int cnt; diff --git a/include/asm-sparc64/ptrace.h b/include/asm-sparc64/ptrace.h index 67341cff2e6..6da197803ef 100644 --- a/include/asm-sparc64/ptrace.h +++ b/include/asm-sparc64/ptrace.h @@ -109,6 +109,7 @@ extern unsigned long profile_pc(struct pt_regs *); #define profile_pc(regs) instruction_pointer(regs) #endif extern void show_regs(struct pt_regs *); +extern void __show_regs(struct pt_regs *); #endif #else /* __ASSEMBLY__ */ -- cgit v1.2.3 From 02947ecb0de7a011215568263fd48f3d5b0f8573 Mon Sep 17 00:00:00 2001 From: "David S. Miller" Date: Tue, 19 Feb 2008 21:18:08 -0800 Subject: [SPARC64]: Kill show_regs32(). Unused, noticed via sparse. Signed-off-by: David S. Miller --- arch/sparc64/kernel/process.c | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/arch/sparc64/kernel/process.c b/arch/sparc64/kernel/process.c index 548af5d1f2c..6c00f1e5c92 100644 --- a/arch/sparc64/kernel/process.c +++ b/arch/sparc64/kernel/process.c @@ -299,24 +299,6 @@ void show_regs(struct pt_regs *regs) #endif } -void show_regs32(struct pt_regs32 *regs) -{ - printk("PSR: %08x PC: %08x NPC: %08x Y: %08x %s\n", regs->psr, - regs->pc, regs->npc, regs->y, print_tainted()); - printk("g0: %08x g1: %08x g2: %08x g3: %08x ", - regs->u_regs[0], regs->u_regs[1], regs->u_regs[2], - regs->u_regs[3]); - printk("g4: %08x g5: %08x g6: %08x g7: %08x\n", - regs->u_regs[4], regs->u_regs[5], regs->u_regs[6], - regs->u_regs[7]); - printk("o0: %08x o1: %08x o2: %08x o3: %08x ", - regs->u_regs[8], regs->u_regs[9], regs->u_regs[10], - regs->u_regs[11]); - printk("o4: %08x o5: %08x sp: %08x ret_pc: %08x\n", - regs->u_regs[12], regs->u_regs[13], regs->u_regs[14], - regs->u_regs[15]); -} - unsigned long thread_saved_pc(struct task_struct *tsk) { struct thread_info *ti = task_thread_info(tsk); -- cgit v1.2.3 From 6ca94a13392363d75126029ca7d936825bb16f4e Mon Sep 17 00:00:00 2001 From: "David S. Miller" Date: Tue, 19 Feb 2008 21:18:51 -0800 Subject: [SPARC64]: Fix sparse warning wrt. fault_in_user_windows. arch/sparc64/kernel/process.c:467:6: warning: symbol 'fault_in_user_windows' was not declared. Should it be static? Signed-off-by: David S. Miller --- include/asm-sparc64/system.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/asm-sparc64/system.h b/include/asm-sparc64/system.h index 1faefa6d370..ed91a5d8d4f 100644 --- a/include/asm-sparc64/system.h +++ b/include/asm-sparc64/system.h @@ -117,6 +117,7 @@ do { __asm__ __volatile__("ba,pt %%xcc, 1f\n\t" \ extern void sun_do_break(void); extern int stop_a_enabled; +extern void fault_in_user_windows(void); extern void synchronize_user_stack(void); extern void __flushw_user(void); -- cgit v1.2.3 From b1422401f2491ecb7579c8d241e1f924b35e6b67 Mon Sep 17 00:00:00 2001 From: "David S. Miller" Date: Tue, 19 Feb 2008 21:25:50 -0800 Subject: [SPARC64]: More sparse warning fixes in process.c arch/sparc64/kernel/process.c:504:17: warning: symbol 'sparc_do_fork' was not declared. Should it be static? arch/sparc64/kernel/process.c:655:5: warning: symbol 'dump_fpu' was not declared. Should it be static? arch/sparc64/kernel/process.c:708:16: warning: symbol 'sparc_execve' was not declared. Should it be static? Signed-off-by: David S. Miller --- arch/sparc64/kernel/process.c | 2 ++ include/asm-sparc64/syscalls.h | 13 +++++++++++++ 2 files changed, 15 insertions(+) create mode 100644 include/asm-sparc64/syscalls.h diff --git a/arch/sparc64/kernel/process.c b/arch/sparc64/kernel/process.c index 6c00f1e5c92..2aafce7dfc0 100644 --- a/arch/sparc64/kernel/process.c +++ b/arch/sparc64/kernel/process.c @@ -30,6 +30,7 @@ #include #include #include +#include #include #include @@ -48,6 +49,7 @@ #include #include #include +#include /* #define VERBOSE_SHOWREGS */ diff --git a/include/asm-sparc64/syscalls.h b/include/asm-sparc64/syscalls.h new file mode 100644 index 00000000000..45a43f637a1 --- /dev/null +++ b/include/asm-sparc64/syscalls.h @@ -0,0 +1,13 @@ +#ifndef _SPARC64_SYSCALLS_H +#define _SPARC64_SYSCALLS_H + +struct pt_regs; + +extern asmlinkage long sparc_do_fork(unsigned long clone_flags, + unsigned long stack_start, + struct pt_regs *regs, + unsigned long stack_size); + +extern asmlinkage int sparc_execve(struct pt_regs *regs); + +#endif /* _SPARC64_SYSCALLS_H */ -- cgit v1.2.3 From 0f7f22d9a46261e310b32c61eb11977a7cc83f7b Mon Sep 17 00:00:00 2001 From: Sam Ravnborg Date: Wed, 20 Feb 2008 22:22:16 -0800 Subject: [SPARC64]: Fix cpu trampoline et al. mismatch warnings. Signed-off-by: Sam Ravnborg Signed-off-by: David S. Miller --- arch/sparc64/kernel/hvtramp.S | 4 +++- arch/sparc64/kernel/smp.c | 2 +- arch/sparc64/kernel/trampoline.S | 4 +++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/arch/sparc64/kernel/hvtramp.S b/arch/sparc64/kernel/hvtramp.S index b692e044a46..0236c43772f 100644 --- a/arch/sparc64/kernel/hvtramp.S +++ b/arch/sparc64/kernel/hvtramp.S @@ -3,6 +3,8 @@ * Copyright (C) 2007 David S. Miller */ +#include + #include #include #include @@ -13,7 +15,7 @@ #include #include - .text + __CPUINIT .align 8 .globl hv_cpu_startup, hv_cpu_startup_end diff --git a/arch/sparc64/kernel/smp.c b/arch/sparc64/kernel/smp.c index a8052b76df4..cc454731d87 100644 --- a/arch/sparc64/kernel/smp.c +++ b/arch/sparc64/kernel/smp.c @@ -86,7 +86,7 @@ extern void setup_sparc64_timer(void); static volatile unsigned long callin_flag = 0; -void __devinit smp_callin(void) +void __cpuinit smp_callin(void) { int cpuid = hard_smp_processor_id(); diff --git a/arch/sparc64/kernel/trampoline.S b/arch/sparc64/kernel/trampoline.S index 04e81dda13d..4ae2e525d68 100644 --- a/arch/sparc64/kernel/trampoline.S +++ b/arch/sparc64/kernel/trampoline.S @@ -4,6 +4,8 @@ * Copyright (C) 1997 David S. Miller (davem@caip.rutgers.edu) */ +#include + #include #include #include @@ -36,7 +38,7 @@ dtlb_load: tramp_stack: .skip TRAMP_STACK_SIZE - .text + __CPUINIT .align 8 .globl sparc64_cpu_startup, sparc64_cpu_startup_end sparc64_cpu_startup: -- cgit v1.2.3 From 89c94f2f70d093f59b55d3ea8042d13889169346 Mon Sep 17 00:00:00 2001 From: FUJITA Tomonori Date: Wed, 20 Feb 2008 22:56:42 -0800 Subject: [SPARC64]: make IOMMU code respect the segment boundary limits Signed-off-by: FUJITA Tomonori Signed-off-by: David S. Miller --- arch/sparc64/kernel/iommu.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/sparc64/kernel/iommu.c b/arch/sparc64/kernel/iommu.c index 0e347ff812a..fbaab3497bf 100644 --- a/arch/sparc64/kernel/iommu.c +++ b/arch/sparc64/kernel/iommu.c @@ -134,7 +134,8 @@ unsigned long iommu_range_alloc(struct device *dev, else boundary_size = ALIGN(1UL << 32, 1 << IO_PAGE_SHIFT); - n = iommu_area_alloc(arena->map, limit, start, npages, 0, + n = iommu_area_alloc(arena->map, limit, start, npages, + iommu->page_table_map_base >> IO_PAGE_SHIFT, boundary_size >> IO_PAGE_SHIFT, 0); if (n == -1) { if (likely(pass < 1)) { -- cgit v1.2.3