aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sh
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-04-03 19:22:16 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2014-04-03 19:22:16 -0400
commit76ca7d1cca761bb9712dfcad9a27d70b520874ae (patch)
tree4af495beaeee26b126e3dc6f0aa644e8e0b9e24e /arch/sh
parentd0cb5f71c5cde8e1ef6d03983641366800ceabdb (diff)
parent8d81e29fae18b93ab51f308b31babe1a6eb04314 (diff)
Merge branch 'akpm' (incoming from Andrew)
Merge first patch-bomb from Andrew Morton: - Various misc bits - kmemleak fixes - small befs, codafs, cifs, efs, freexxfs, hfsplus, minixfs, reiserfs things - fanotify - I appear to have become SuperH maintainer - ocfs2 updates - direct-io tweaks - a bit of the MM queue - printk updates - MAINTAINERS maintenance - some backlight things - lib/ updates - checkpatch updates - the rtc queue - nilfs2 updates - Small Documentation/ updates * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (237 commits) Documentation/SubmittingPatches: remove references to patch-scripts Documentation/SubmittingPatches: update some dead URLs Documentation/filesystems/ntfs.txt: remove changelog reference Documentation/kmemleak.txt: updates fs/reiserfs/super.c: add __init to init_inodecache fs/reiserfs: move prototype declaration to header file fs/hfsplus/attributes.c: add __init to hfsplus_create_attr_tree_cache() fs/hfsplus/extents.c: fix concurrent acess of alloc_blocks fs/hfsplus/extents.c: remove unused variable in hfsplus_get_block nilfs2: update project's web site in nilfs2.txt nilfs2: update MAINTAINERS file entries fix nilfs2: verify metadata sizes read from disk nilfs2: add FITRIM ioctl support for nilfs2 nilfs2: add nilfs_sufile_trim_fs to trim clean segs nilfs2: implementation of NILFS_IOCTL_SET_SUINFO ioctl nilfs2: add nilfs_sufile_set_suinfo to update segment usage nilfs2: add struct nilfs_suinfo_update and flags nilfs2: update MAINTAINERS file entries fs/coda/inode.c: add __init to init_inodecache() BEFS: logging cleanup ...
Diffstat (limited to 'arch/sh')
-rw-r--r--arch/sh/boards/board-sh7757lcr.c2
-rw-r--r--arch/sh/drivers/pci/pcie-sh7786.h3
-rw-r--r--arch/sh/include/asm/syscalls_32.h12
-rw-r--r--arch/sh/include/asm/traps_32.h16
-rw-r--r--arch/sh/kernel/cpu/sh4a/clock-sh7757.c2
-rw-r--r--arch/sh/kernel/dumpstack.c2
-rw-r--r--arch/sh/kernel/entry-common.S15
-rw-r--r--arch/sh/kernel/signal_32.c12
-rw-r--r--arch/sh/kernel/sys_sh32.c7
-rw-r--r--arch/sh/kernel/traps_32.c23
-rw-r--r--arch/sh/math-emu/math.c18
11 files changed, 34 insertions, 78 deletions
diff --git a/arch/sh/boards/board-sh7757lcr.c b/arch/sh/boards/board-sh7757lcr.c
index 25c5a932f9fe..669df51a82e3 100644
--- a/arch/sh/boards/board-sh7757lcr.c
+++ b/arch/sh/boards/board-sh7757lcr.c
@@ -252,7 +252,7 @@ static struct sh_mobile_sdhi_info sdhi_info = {
252static struct resource sdhi_resources[] = { 252static struct resource sdhi_resources[] = {
253 [0] = { 253 [0] = {
254 .start = 0xffe50000, 254 .start = 0xffe50000,
255 .end = 0xffe501ff, 255 .end = 0xffe500ff,
256 .flags = IORESOURCE_MEM, 256 .flags = IORESOURCE_MEM,
257 }, 257 },
258 [1] = { 258 [1] = {
diff --git a/arch/sh/drivers/pci/pcie-sh7786.h b/arch/sh/drivers/pci/pcie-sh7786.h
index 1ee054e47eae..4a6ff55f759b 100644
--- a/arch/sh/drivers/pci/pcie-sh7786.h
+++ b/arch/sh/drivers/pci/pcie-sh7786.h
@@ -145,9 +145,6 @@
145/* PCIERMSGIER */ 145/* PCIERMSGIER */
146#define SH4A_PCIERMSGIER (0x004040) /* R/W - 0x0000 0000 32 */ 146#define SH4A_PCIERMSGIER (0x004040) /* R/W - 0x0000 0000 32 */
147 147
148/* PCIEPHYCTLR */
149#define SH4A_PCIEPHYCTLR (0x010000) /* R/W - 0x0000 0000 32 */
150
151/* PCIEPHYADRR */ 148/* PCIEPHYADRR */
152#define SH4A_PCIEPHYADRR (0x010004) /* R/W - 0x0000 0000 32 */ 149#define SH4A_PCIEPHYADRR (0x010004) /* R/W - 0x0000 0000 32 */
153#define BITS_ACK (24) // Rev1.171 150#define BITS_ACK (24) // Rev1.171
diff --git a/arch/sh/include/asm/syscalls_32.h b/arch/sh/include/asm/syscalls_32.h
index 4f97df87d7d5..4f643aa718e3 100644
--- a/arch/sh/include/asm/syscalls_32.h
+++ b/arch/sh/include/asm/syscalls_32.h
@@ -9,15 +9,9 @@
9 9
10struct pt_regs; 10struct pt_regs;
11 11
12asmlinkage int sys_sigreturn(unsigned long r4, unsigned long r5, 12asmlinkage int sys_sigreturn(void);
13 unsigned long r6, unsigned long r7, 13asmlinkage int sys_rt_sigreturn(void);
14 struct pt_regs __regs); 14asmlinkage int sys_sh_pipe(void);
15asmlinkage int sys_rt_sigreturn(unsigned long r4, unsigned long r5,
16 unsigned long r6, unsigned long r7,
17 struct pt_regs __regs);
18asmlinkage int sys_sh_pipe(unsigned long r4, unsigned long r5,
19 unsigned long r6, unsigned long r7,
20 struct pt_regs __regs);
21asmlinkage ssize_t sys_pread_wrapper(unsigned int fd, char __user *buf, 15asmlinkage ssize_t sys_pread_wrapper(unsigned int fd, char __user *buf,
22 size_t count, long dummy, loff_t pos); 16 size_t count, long dummy, loff_t pos);
23asmlinkage ssize_t sys_pwrite_wrapper(unsigned int fd, const char __user *buf, 17asmlinkage ssize_t sys_pwrite_wrapper(unsigned int fd, const char __user *buf,
diff --git a/arch/sh/include/asm/traps_32.h b/arch/sh/include/asm/traps_32.h
index cfd55ff9dff2..17e129fe459c 100644
--- a/arch/sh/include/asm/traps_32.h
+++ b/arch/sh/include/asm/traps_32.h
@@ -42,18 +42,10 @@ static inline void trigger_address_error(void)
42asmlinkage void do_address_error(struct pt_regs *regs, 42asmlinkage void do_address_error(struct pt_regs *regs,
43 unsigned long writeaccess, 43 unsigned long writeaccess,
44 unsigned long address); 44 unsigned long address);
45asmlinkage void do_divide_error(unsigned long r4, unsigned long r5, 45asmlinkage void do_divide_error(unsigned long r4);
46 unsigned long r6, unsigned long r7, 46asmlinkage void do_reserved_inst(void);
47 struct pt_regs __regs); 47asmlinkage void do_illegal_slot_inst(void);
48asmlinkage void do_reserved_inst(unsigned long r4, unsigned long r5, 48asmlinkage void do_exception_error(void);
49 unsigned long r6, unsigned long r7,
50 struct pt_regs __regs);
51asmlinkage void do_illegal_slot_inst(unsigned long r4, unsigned long r5,
52 unsigned long r6, unsigned long r7,
53 struct pt_regs __regs);
54asmlinkage void do_exception_error(unsigned long r4, unsigned long r5,
55 unsigned long r6, unsigned long r7,
56 struct pt_regs __regs);
57 49
58#define BUILD_TRAP_HANDLER(name) \ 50#define BUILD_TRAP_HANDLER(name) \
59asmlinkage void name##_trap_handler(unsigned long r4, unsigned long r5, \ 51asmlinkage void name##_trap_handler(unsigned long r4, unsigned long r5, \
diff --git a/arch/sh/kernel/cpu/sh4a/clock-sh7757.c b/arch/sh/kernel/cpu/sh4a/clock-sh7757.c
index e84a43229b9c..5c0e3c335161 100644
--- a/arch/sh/kernel/cpu/sh4a/clock-sh7757.c
+++ b/arch/sh/kernel/cpu/sh4a/clock-sh7757.c
@@ -132,7 +132,7 @@ static struct clk_lookup lookups[] = {
132 CLKDEV_CON_ID("usb_fck", &mstp_clks[MSTP103]), 132 CLKDEV_CON_ID("usb_fck", &mstp_clks[MSTP103]),
133 CLKDEV_DEV_ID("renesas_usbhs.0", &mstp_clks[MSTP102]), 133 CLKDEV_DEV_ID("renesas_usbhs.0", &mstp_clks[MSTP102]),
134 CLKDEV_CON_ID("mmc0", &mstp_clks[MSTP220]), 134 CLKDEV_CON_ID("mmc0", &mstp_clks[MSTP220]),
135 CLKDEV_CON_ID("rspi2", &mstp_clks[MSTP127]), 135 CLKDEV_DEV_ID("rspi.2", &mstp_clks[MSTP127]),
136}; 136};
137 137
138int __init arch_clk_init(void) 138int __init arch_clk_init(void)
diff --git a/arch/sh/kernel/dumpstack.c b/arch/sh/kernel/dumpstack.c
index b959f5592604..8dfe645bcc4b 100644
--- a/arch/sh/kernel/dumpstack.c
+++ b/arch/sh/kernel/dumpstack.c
@@ -115,7 +115,7 @@ static int print_trace_stack(void *data, char *name)
115 */ 115 */
116static void print_trace_address(void *data, unsigned long addr, int reliable) 116static void print_trace_address(void *data, unsigned long addr, int reliable)
117{ 117{
118 printk(data); 118 printk("%s", (char *)data);
119 printk_address(addr, reliable); 119 printk_address(addr, reliable);
120} 120}
121 121
diff --git a/arch/sh/kernel/entry-common.S b/arch/sh/kernel/entry-common.S
index ca46834294b7..13047a4facd2 100644
--- a/arch/sh/kernel/entry-common.S
+++ b/arch/sh/kernel/entry-common.S
@@ -193,10 +193,10 @@ syscall_trace_entry:
193 ! Reload R0-R4 from kernel stack, where the 193 ! Reload R0-R4 from kernel stack, where the
194 ! parent may have modified them using 194 ! parent may have modified them using
195 ! ptrace(POKEUSR). (Note that R0-R2 are 195 ! ptrace(POKEUSR). (Note that R0-R2 are
196 ! used by the system call handler directly 196 ! reloaded from the kernel stack by syscall_call
197 ! from the kernel stack anyway, so don't need 197 ! below, so don't need to be reloaded here.)
198 ! to be reloaded here.) This allows the parent 198 ! This allows the parent to rewrite system calls
199 ! to rewrite system calls and args on the fly. 199 ! and args on the fly.
200 mov.l @(OFF_R4,r15), r4 ! arg0 200 mov.l @(OFF_R4,r15), r4 ! arg0
201 mov.l @(OFF_R5,r15), r5 201 mov.l @(OFF_R5,r15), r5
202 mov.l @(OFF_R6,r15), r6 202 mov.l @(OFF_R6,r15), r6
@@ -357,8 +357,15 @@ syscall_call:
357 mov.l 3f, r8 ! Load the address of sys_call_table 357 mov.l 3f, r8 ! Load the address of sys_call_table
358 add r8, r3 358 add r8, r3
359 mov.l @r3, r8 359 mov.l @r3, r8
360 mov.l @(OFF_R2,r15), r2
361 mov.l @(OFF_R1,r15), r1
362 mov.l @(OFF_R0,r15), r0
363 mov.l r2, @-r15
364 mov.l r1, @-r15
365 mov.l r0, @-r15
360 jsr @r8 ! jump to specific syscall handler 366 jsr @r8 ! jump to specific syscall handler
361 nop 367 nop
368 add #12, r15
362 mov.l @(OFF_R0,r15), r12 ! save r0 369 mov.l @(OFF_R0,r15), r12 ! save r0
363 mov.l r0, @(OFF_R0,r15) ! save the return value 370 mov.l r0, @(OFF_R0,r15) ! save the return value
364 ! 371 !
diff --git a/arch/sh/kernel/signal_32.c b/arch/sh/kernel/signal_32.c
index 6af6e7c5cac8..594cd371aa28 100644
--- a/arch/sh/kernel/signal_32.c
+++ b/arch/sh/kernel/signal_32.c
@@ -148,11 +148,9 @@ restore_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc, int *r0_p
148 return err; 148 return err;
149} 149}
150 150
151asmlinkage int sys_sigreturn(unsigned long r4, unsigned long r5, 151asmlinkage int sys_sigreturn(void)
152 unsigned long r6, unsigned long r7,
153 struct pt_regs __regs)
154{ 152{
155 struct pt_regs *regs = RELOC_HIDE(&__regs, 0); 153 struct pt_regs *regs = current_pt_regs();
156 struct sigframe __user *frame = (struct sigframe __user *)regs->regs[15]; 154 struct sigframe __user *frame = (struct sigframe __user *)regs->regs[15];
157 sigset_t set; 155 sigset_t set;
158 int r0; 156 int r0;
@@ -180,11 +178,9 @@ badframe:
180 return 0; 178 return 0;
181} 179}
182 180
183asmlinkage int sys_rt_sigreturn(unsigned long r4, unsigned long r5, 181asmlinkage int sys_rt_sigreturn(void)
184 unsigned long r6, unsigned long r7,
185 struct pt_regs __regs)
186{ 182{
187 struct pt_regs *regs = RELOC_HIDE(&__regs, 0); 183 struct pt_regs *regs = current_pt_regs();
188 struct rt_sigframe __user *frame = (struct rt_sigframe __user *)regs->regs[15]; 184 struct rt_sigframe __user *frame = (struct rt_sigframe __user *)regs->regs[15];
189 sigset_t set; 185 sigset_t set;
190 int r0; 186 int r0;
diff --git a/arch/sh/kernel/sys_sh32.c b/arch/sh/kernel/sys_sh32.c
index 497bab3a0401..b66d1c62eb19 100644
--- a/arch/sh/kernel/sys_sh32.c
+++ b/arch/sh/kernel/sys_sh32.c
@@ -21,17 +21,14 @@
21 * sys_pipe() is the normal C calling standard for creating 21 * sys_pipe() is the normal C calling standard for creating
22 * a pipe. It's not the way Unix traditionally does this, though. 22 * a pipe. It's not the way Unix traditionally does this, though.
23 */ 23 */
24asmlinkage int sys_sh_pipe(unsigned long r4, unsigned long r5, 24asmlinkage int sys_sh_pipe(void)
25 unsigned long r6, unsigned long r7,
26 struct pt_regs __regs)
27{ 25{
28 struct pt_regs *regs = RELOC_HIDE(&__regs, 0);
29 int fd[2]; 26 int fd[2];
30 int error; 27 int error;
31 28
32 error = do_pipe_flags(fd, 0); 29 error = do_pipe_flags(fd, 0);
33 if (!error) { 30 if (!error) {
34 regs->regs[1] = fd[1]; 31 current_pt_regs()->regs[1] = fd[1];
35 return fd[0]; 32 return fd[0];
36 } 33 }
37 return error; 34 return error;
diff --git a/arch/sh/kernel/traps_32.c b/arch/sh/kernel/traps_32.c
index 68e99f09171d..ff639342a8be 100644
--- a/arch/sh/kernel/traps_32.c
+++ b/arch/sh/kernel/traps_32.c
@@ -594,9 +594,7 @@ int is_dsp_inst(struct pt_regs *regs)
594#endif /* CONFIG_SH_DSP */ 594#endif /* CONFIG_SH_DSP */
595 595
596#ifdef CONFIG_CPU_SH2A 596#ifdef CONFIG_CPU_SH2A
597asmlinkage void do_divide_error(unsigned long r4, unsigned long r5, 597asmlinkage void do_divide_error(unsigned long r4)
598 unsigned long r6, unsigned long r7,
599 struct pt_regs __regs)
600{ 598{
601 siginfo_t info; 599 siginfo_t info;
602 600
@@ -613,11 +611,9 @@ asmlinkage void do_divide_error(unsigned long r4, unsigned long r5,
613} 611}
614#endif 612#endif
615 613
616asmlinkage void do_reserved_inst(unsigned long r4, unsigned long r5, 614asmlinkage void do_reserved_inst(void)
617 unsigned long r6, unsigned long r7,
618 struct pt_regs __regs)
619{ 615{
620 struct pt_regs *regs = RELOC_HIDE(&__regs, 0); 616 struct pt_regs *regs = current_pt_regs();
621 unsigned long error_code; 617 unsigned long error_code;
622 struct task_struct *tsk = current; 618 struct task_struct *tsk = current;
623 619
@@ -701,11 +697,9 @@ static int emulate_branch(unsigned short inst, struct pt_regs *regs)
701} 697}
702#endif 698#endif
703 699
704asmlinkage void do_illegal_slot_inst(unsigned long r4, unsigned long r5, 700asmlinkage void do_illegal_slot_inst(void)
705 unsigned long r6, unsigned long r7,
706 struct pt_regs __regs)
707{ 701{
708 struct pt_regs *regs = RELOC_HIDE(&__regs, 0); 702 struct pt_regs *regs = current_pt_regs();
709 unsigned long inst; 703 unsigned long inst;
710 struct task_struct *tsk = current; 704 struct task_struct *tsk = current;
711 705
@@ -730,15 +724,12 @@ asmlinkage void do_illegal_slot_inst(unsigned long r4, unsigned long r5,
730 die_if_no_fixup("illegal slot instruction", regs, inst); 724 die_if_no_fixup("illegal slot instruction", regs, inst);
731} 725}
732 726
733asmlinkage void do_exception_error(unsigned long r4, unsigned long r5, 727asmlinkage void do_exception_error(void)
734 unsigned long r6, unsigned long r7,
735 struct pt_regs __regs)
736{ 728{
737 struct pt_regs *regs = RELOC_HIDE(&__regs, 0);
738 long ex; 729 long ex;
739 730
740 ex = lookup_exception_vector(); 731 ex = lookup_exception_vector();
741 die_if_kernel("exception", regs, ex); 732 die_if_kernel("exception", current_pt_regs(), ex);
742} 733}
743 734
744void per_cpu_trap_init(void) 735void per_cpu_trap_init(void)
diff --git a/arch/sh/math-emu/math.c b/arch/sh/math-emu/math.c
index b876780c1e1c..04aa55fa8c75 100644
--- a/arch/sh/math-emu/math.c
+++ b/arch/sh/math-emu/math.c
@@ -574,24 +574,6 @@ static int ieee_fpe_handler(struct pt_regs *regs)
574 return 0; 574 return 0;
575} 575}
576 576
577asmlinkage void do_fpu_error(unsigned long r4, unsigned long r5,
578 unsigned long r6, unsigned long r7,
579 struct pt_regs regs)
580{
581 struct task_struct *tsk = current;
582 siginfo_t info;
583
584 if (ieee_fpe_handler (&regs))
585 return;
586
587 regs.pc += 2;
588 info.si_signo = SIGFPE;
589 info.si_errno = 0;
590 info.si_code = FPE_FLTINV;
591 info.si_addr = (void __user *)regs.pc;
592 force_sig_info(SIGFPE, &info, tsk);
593}
594
595/** 577/**
596 * fpu_init - Initialize FPU registers 578 * fpu_init - Initialize FPU registers
597 * @fpu: Pointer to software emulated FPU registers. 579 * @fpu: Pointer to software emulated FPU registers.