diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-04-03 19:22:16 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-04-03 19:22:16 -0400 |
commit | 76ca7d1cca761bb9712dfcad9a27d70b520874ae (patch) | |
tree | 4af495beaeee26b126e3dc6f0aa644e8e0b9e24e /arch/sh/kernel | |
parent | d0cb5f71c5cde8e1ef6d03983641366800ceabdb (diff) | |
parent | 8d81e29fae18b93ab51f308b31babe1a6eb04314 (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/kernel')
-rw-r--r-- | arch/sh/kernel/cpu/sh4a/clock-sh7757.c | 2 | ||||
-rw-r--r-- | arch/sh/kernel/dumpstack.c | 2 | ||||
-rw-r--r-- | arch/sh/kernel/entry-common.S | 15 | ||||
-rw-r--r-- | arch/sh/kernel/signal_32.c | 12 | ||||
-rw-r--r-- | arch/sh/kernel/sys_sh32.c | 7 | ||||
-rw-r--r-- | arch/sh/kernel/traps_32.c | 23 |
6 files changed, 26 insertions, 35 deletions
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 | ||
138 | int __init arch_clk_init(void) | 138 | int __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 | */ |
116 | static void print_trace_address(void *data, unsigned long addr, int reliable) | 116 | static 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 | ||
151 | asmlinkage int sys_sigreturn(unsigned long r4, unsigned long r5, | 151 | asmlinkage 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 | ||
183 | asmlinkage int sys_rt_sigreturn(unsigned long r4, unsigned long r5, | 181 | asmlinkage 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 | */ |
24 | asmlinkage int sys_sh_pipe(unsigned long r4, unsigned long r5, | 24 | asmlinkage 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 |
597 | asmlinkage void do_divide_error(unsigned long r4, unsigned long r5, | 597 | asmlinkage 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 | ||
616 | asmlinkage void do_reserved_inst(unsigned long r4, unsigned long r5, | 614 | asmlinkage 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 | ||
704 | asmlinkage void do_illegal_slot_inst(unsigned long r4, unsigned long r5, | 700 | asmlinkage 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 | ||
733 | asmlinkage void do_exception_error(unsigned long r4, unsigned long r5, | 727 | asmlinkage 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 | ||
744 | void per_cpu_trap_init(void) | 735 | void per_cpu_trap_init(void) |