aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2015-04-14 18:31:03 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2015-04-14 18:31:03 -0400
commitca2ec32658db160745990496f0f4580056a5dc9f (patch)
treed211f239219c85214da46dc1cbad4184a81d0248 /arch
parent6c8a53c9e6a151fffb07f8b4c34bd1e33dddd467 (diff)
parentfdc81f45e9f57858da6351836507fbcf1b7583ee (diff)
Merge branch 'for-linus-1' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Pull vfs update from Al Viro: "Part one: - struct filename-related cleanups - saner iov_iter_init() replacements (and switching the syscalls to use of those) - ntfs switch to ->write_iter() (Anton) - aio cleanups and splitting iocb into common and async parts (Christoph) - assorted fixes (me, bfields, Andrew Elble) There's a lot more, including the completion of switchover to ->{read,write}_iter(), d_inode/d_backing_inode annotations, f_flags race fixes, etc, but that goes after #for-davem merge. David has pulled it, and once it's in I'll send the next vfs pull request" * 'for-linus-1' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (35 commits) sg_start_req(): use import_iovec() sg_start_req(): make sure that there's not too many elements in iovec blk_rq_map_user(): use import_single_range() sg_io(): use import_iovec() process_vm_access: switch to {compat_,}import_iovec() switch keyctl_instantiate_key_common() to iov_iter switch {compat_,}do_readv_writev() to {compat_,}import_iovec() aio_setup_vectored_rw(): switch to {compat_,}import_iovec() vmsplice_to_user(): switch to import_iovec() kill aio_setup_single_vector() aio: simplify arguments of aio_setup_..._rw() aio: lift iov_iter_init() into aio_setup_..._rw() lift iov_iter into {compat_,}do_readv_writev() NFS: fix BUG() crash in notify_change() with patch to chown_common() dcache: return -ESTALE not -EBUSY on distributed fs race NTFS: Version 2.1.32 - Update file write from aio_write to write_iter. VFS: Add iov_iter_fault_in_multipages_readable() drop bogus check in file_open_root() switch security_inode_getattr() to struct path * constify tomoyo_realpath_from_path() ...
Diffstat (limited to 'arch')
-rw-r--r--arch/arc/kernel/process.c2
-rw-r--r--arch/c6x/kernel/process.c1
-rw-r--r--arch/frv/kernel/signal.c4
-rw-r--r--arch/hexagon/kernel/process.c2
-rw-r--r--arch/m32r/kernel/signal.c2
-rw-r--r--arch/metag/include/asm/processor.h1
-rw-r--r--arch/microblaze/kernel/signal.c2
-rw-r--r--arch/nios2/kernel/process.c1
-rw-r--r--arch/openrisc/kernel/process.c1
-rw-r--r--arch/s390/hypfs/inode.c2
-rw-r--r--arch/sh/kernel/signal_32.c4
-rw-r--r--arch/sh/kernel/signal_64.c4
-rw-r--r--arch/xtensa/kernel/signal.c5
13 files changed, 1 insertions, 30 deletions
diff --git a/arch/arc/kernel/process.c b/arch/arc/kernel/process.c
index 98c00a2d4dd9..f46efd14059d 100644
--- a/arch/arc/kernel/process.c
+++ b/arch/arc/kernel/process.c
@@ -155,8 +155,6 @@ int copy_thread(unsigned long clone_flags,
155 */ 155 */
156void start_thread(struct pt_regs * regs, unsigned long pc, unsigned long usp) 156void start_thread(struct pt_regs * regs, unsigned long pc, unsigned long usp)
157{ 157{
158 set_fs(USER_DS); /* user space */
159
160 regs->sp = usp; 158 regs->sp = usp;
161 regs->ret = pc; 159 regs->ret = pc;
162 160
diff --git a/arch/c6x/kernel/process.c b/arch/c6x/kernel/process.c
index 57d2ea8d1977..3ae9f5a166a0 100644
--- a/arch/c6x/kernel/process.c
+++ b/arch/c6x/kernel/process.c
@@ -101,7 +101,6 @@ void start_thread(struct pt_regs *regs, unsigned int pc, unsigned long usp)
101 */ 101 */
102 usp -= 8; 102 usp -= 8;
103 103
104 set_fs(USER_DS);
105 regs->pc = pc; 104 regs->pc = pc;
106 regs->sp = usp; 105 regs->sp = usp;
107 regs->tsr |= 0x40; /* set user mode */ 106 regs->tsr |= 0x40; /* set user mode */
diff --git a/arch/frv/kernel/signal.c b/arch/frv/kernel/signal.c
index 336713ab4745..85ca6727ca07 100644
--- a/arch/frv/kernel/signal.c
+++ b/arch/frv/kernel/signal.c
@@ -176,8 +176,6 @@ static int setup_frame(struct ksignal *ksig, sigset_t *set)
176 struct sigframe __user *frame; 176 struct sigframe __user *frame;
177 int rsig, sig = ksig->sig; 177 int rsig, sig = ksig->sig;
178 178
179 set_fs(USER_DS);
180
181 frame = get_sigframe(ksig, sizeof(*frame)); 179 frame = get_sigframe(ksig, sizeof(*frame));
182 180
183 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame))) 181 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame)))
@@ -257,8 +255,6 @@ static int setup_rt_frame(struct ksignal *ksig, sigset_t *set)
257 struct rt_sigframe __user *frame; 255 struct rt_sigframe __user *frame;
258 int rsig, sig = ksig->sig; 256 int rsig, sig = ksig->sig;
259 257
260 set_fs(USER_DS);
261
262 frame = get_sigframe(ksig, sizeof(*frame)); 258 frame = get_sigframe(ksig, sizeof(*frame));
263 259
264 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame))) 260 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame)))
diff --git a/arch/hexagon/kernel/process.c b/arch/hexagon/kernel/process.c
index 0a0dd5c05b46..a9ebd471823a 100644
--- a/arch/hexagon/kernel/process.c
+++ b/arch/hexagon/kernel/process.c
@@ -37,8 +37,6 @@
37 */ 37 */
38void start_thread(struct pt_regs *regs, unsigned long pc, unsigned long sp) 38void start_thread(struct pt_regs *regs, unsigned long pc, unsigned long sp)
39{ 39{
40 /* Set to run with user-mode data segmentation */
41 set_fs(USER_DS);
42 /* We want to zero all data-containing registers. Is this overkill? */ 40 /* We want to zero all data-containing registers. Is this overkill? */
43 memset(regs, 0, sizeof(*regs)); 41 memset(regs, 0, sizeof(*regs));
44 /* We might want to also zero all Processor registers here */ 42 /* We might want to also zero all Processor registers here */
diff --git a/arch/m32r/kernel/signal.c b/arch/m32r/kernel/signal.c
index 7736c6660a15..8c25e0c8f6a5 100644
--- a/arch/m32r/kernel/signal.c
+++ b/arch/m32r/kernel/signal.c
@@ -214,8 +214,6 @@ static int setup_rt_frame(struct ksignal *ksig, sigset_t *set,
214 regs->r2 = (unsigned long)&frame->uc; 214 regs->r2 = (unsigned long)&frame->uc;
215 regs->bpc = (unsigned long)ksig->ka.sa.sa_handler; 215 regs->bpc = (unsigned long)ksig->ka.sa.sa_handler;
216 216
217 set_fs(USER_DS);
218
219#if DEBUG_SIG 217#if DEBUG_SIG
220 printk("SIG deliver (%s:%d): sp=%p pc=%p\n", 218 printk("SIG deliver (%s:%d): sp=%p pc=%p\n",
221 current->comm, current->pid, frame, regs->pc); 219 current->comm, current->pid, frame, regs->pc);
diff --git a/arch/metag/include/asm/processor.h b/arch/metag/include/asm/processor.h
index 13272fd5a5ba..0838ca699764 100644
--- a/arch/metag/include/asm/processor.h
+++ b/arch/metag/include/asm/processor.h
@@ -111,7 +111,6 @@ struct thread_struct {
111 */ 111 */
112#define start_thread(regs, pc, usp) do { \ 112#define start_thread(regs, pc, usp) do { \
113 unsigned int *argc = (unsigned int *) bprm->exec; \ 113 unsigned int *argc = (unsigned int *) bprm->exec; \
114 set_fs(USER_DS); \
115 current->thread.int_depth = 1; \ 114 current->thread.int_depth = 1; \
116 /* Force this process down to user land */ \ 115 /* Force this process down to user land */ \
117 regs->ctx.SaveMask = TBICTX_PRIV_BIT; \ 116 regs->ctx.SaveMask = TBICTX_PRIV_BIT; \
diff --git a/arch/microblaze/kernel/signal.c b/arch/microblaze/kernel/signal.c
index a1cbaf90e2ea..20ccd4e2baa5 100644
--- a/arch/microblaze/kernel/signal.c
+++ b/arch/microblaze/kernel/signal.c
@@ -236,8 +236,6 @@ static int setup_rt_frame(struct ksignal *ksig, sigset_t *set,
236 /* Offset to handle microblaze rtid r14, 0 */ 236 /* Offset to handle microblaze rtid r14, 0 */
237 regs->pc = (unsigned long)ksig->ka.sa.sa_handler; 237 regs->pc = (unsigned long)ksig->ka.sa.sa_handler;
238 238
239 set_fs(USER_DS);
240
241#ifdef DEBUG_SIG 239#ifdef DEBUG_SIG
242 pr_info("SIG deliver (%s:%d): sp=%p pc=%08lx\n", 240 pr_info("SIG deliver (%s:%d): sp=%p pc=%08lx\n",
243 current->comm, current->pid, frame, regs->pc); 241 current->comm, current->pid, frame, regs->pc);
diff --git a/arch/nios2/kernel/process.c b/arch/nios2/kernel/process.c
index 0e075b5ad2a5..2f8c74f93e70 100644
--- a/arch/nios2/kernel/process.c
+++ b/arch/nios2/kernel/process.c
@@ -94,7 +94,6 @@ void show_regs(struct pt_regs *regs)
94 94
95void flush_thread(void) 95void flush_thread(void)
96{ 96{
97 set_fs(USER_DS);
98} 97}
99 98
100int copy_thread(unsigned long clone_flags, 99int copy_thread(unsigned long clone_flags,
diff --git a/arch/openrisc/kernel/process.c b/arch/openrisc/kernel/process.c
index 386af258591d..7095dfe7666b 100644
--- a/arch/openrisc/kernel/process.c
+++ b/arch/openrisc/kernel/process.c
@@ -197,7 +197,6 @@ void start_thread(struct pt_regs *regs, unsigned long pc, unsigned long sp)
197{ 197{
198 unsigned long sr = mfspr(SPR_SR) & ~SPR_SR_SM; 198 unsigned long sr = mfspr(SPR_SR) & ~SPR_SR_SM;
199 199
200 set_fs(USER_DS);
201 memset(regs, 0, sizeof(struct pt_regs)); 200 memset(regs, 0, sizeof(struct pt_regs));
202 201
203 regs->pc = pc; 202 regs->pc = pc;
diff --git a/arch/s390/hypfs/inode.c b/arch/s390/hypfs/inode.c
index 99824ff8dd35..df7d8cbee377 100644
--- a/arch/s390/hypfs/inode.c
+++ b/arch/s390/hypfs/inode.c
@@ -21,7 +21,7 @@
21#include <linux/module.h> 21#include <linux/module.h>
22#include <linux/seq_file.h> 22#include <linux/seq_file.h>
23#include <linux/mount.h> 23#include <linux/mount.h>
24#include <linux/aio.h> 24#include <linux/uio.h>
25#include <asm/ebcdic.h> 25#include <asm/ebcdic.h>
26#include "hypfs.h" 26#include "hypfs.h"
27 27
diff --git a/arch/sh/kernel/signal_32.c b/arch/sh/kernel/signal_32.c
index 0b34f2a704fe..97292890b51b 100644
--- a/arch/sh/kernel/signal_32.c
+++ b/arch/sh/kernel/signal_32.c
@@ -329,8 +329,6 @@ static int setup_frame(struct ksignal *ksig, sigset_t *set,
329 if (err) 329 if (err)
330 return -EFAULT; 330 return -EFAULT;
331 331
332 set_fs(USER_DS);
333
334 pr_debug("SIG deliver (%s:%d): sp=%p pc=%08lx pr=%08lx\n", 332 pr_debug("SIG deliver (%s:%d): sp=%p pc=%08lx pr=%08lx\n",
335 current->comm, task_pid_nr(current), frame, regs->pc, regs->pr); 333 current->comm, task_pid_nr(current), frame, regs->pc, regs->pr);
336 334
@@ -408,8 +406,6 @@ static int setup_rt_frame(struct ksignal *ksig, sigset_t *set,
408 if (err) 406 if (err)
409 return -EFAULT; 407 return -EFAULT;
410 408
411 set_fs(USER_DS);
412
413 pr_debug("SIG deliver (%s:%d): sp=%p pc=%08lx pr=%08lx\n", 409 pr_debug("SIG deliver (%s:%d): sp=%p pc=%08lx pr=%08lx\n",
414 current->comm, task_pid_nr(current), frame, regs->pc, regs->pr); 410 current->comm, task_pid_nr(current), frame, regs->pc, regs->pr);
415 411
diff --git a/arch/sh/kernel/signal_64.c b/arch/sh/kernel/signal_64.c
index 71993c6a7d94..0462995d4d7f 100644
--- a/arch/sh/kernel/signal_64.c
+++ b/arch/sh/kernel/signal_64.c
@@ -457,8 +457,6 @@ static int setup_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs
457 457
458 regs->pc = neff_sign_extend((unsigned long)ksig->ka.sa.sa_handler); 458 regs->pc = neff_sign_extend((unsigned long)ksig->ka.sa.sa_handler);
459 459
460 set_fs(USER_DS);
461
462 /* Broken %016Lx */ 460 /* Broken %016Lx */
463 pr_debug("SIG deliver (#%d,%s:%d): sp=%p pc=%08Lx%08Lx link=%08Lx%08Lx\n", 461 pr_debug("SIG deliver (#%d,%s:%d): sp=%p pc=%08Lx%08Lx link=%08Lx%08Lx\n",
464 signal, current->comm, current->pid, frame, 462 signal, current->comm, current->pid, frame,
@@ -547,8 +545,6 @@ static int setup_rt_frame(struct ksignal *kig, sigset_t *set,
547 regs->regs[REG_ARG3] = (unsigned long long)(unsigned long)(signed long)&frame->uc.uc_mcontext; 545 regs->regs[REG_ARG3] = (unsigned long long)(unsigned long)(signed long)&frame->uc.uc_mcontext;
548 regs->pc = neff_sign_extend((unsigned long)ksig->ka.sa.sa_handler); 546 regs->pc = neff_sign_extend((unsigned long)ksig->ka.sa.sa_handler);
549 547
550 set_fs(USER_DS);
551
552 pr_debug("SIG deliver (#%d,%s:%d): sp=%p pc=%08Lx%08Lx link=%08Lx%08Lx\n", 548 pr_debug("SIG deliver (#%d,%s:%d): sp=%p pc=%08Lx%08Lx link=%08Lx%08Lx\n",
553 signal, current->comm, current->pid, frame, 549 signal, current->comm, current->pid, frame,
554 regs->pc >> 32, regs->pc & 0xffffffff, 550 regs->pc >> 32, regs->pc & 0xffffffff,
diff --git a/arch/xtensa/kernel/signal.c b/arch/xtensa/kernel/signal.c
index 3d733ba16f28..6b3790445cbe 100644
--- a/arch/xtensa/kernel/signal.c
+++ b/arch/xtensa/kernel/signal.c
@@ -405,11 +405,6 @@ static int setup_frame(struct ksignal *ksig, sigset_t *set,
405 regs->areg[8] = (unsigned long) &frame->uc; 405 regs->areg[8] = (unsigned long) &frame->uc;
406 regs->threadptr = tp; 406 regs->threadptr = tp;
407 407
408 /* Set access mode to USER_DS. Nomenclature is outdated, but
409 * functionality is used in uaccess.h
410 */
411 set_fs(USER_DS);
412
413#if DEBUG_SIG 408#if DEBUG_SIG
414 printk("SIG rt deliver (%s:%d): signal=%d sp=%p pc=%08x\n", 409 printk("SIG rt deliver (%s:%d): signal=%d sp=%p pc=%08x\n",
415 current->comm, current->pid, signal, frame, regs->pc); 410 current->comm, current->pid, signal, frame, regs->pc);