aboutsummaryrefslogtreecommitdiffstats
path: root/fs/proc/base.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/proc/base.c')
-rw-r--r--fs/proc/base.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/fs/proc/base.c b/fs/proc/base.c
index af128b374143..ef3f7df50023 100644
--- a/fs/proc/base.c
+++ b/fs/proc/base.c
@@ -239,12 +239,12 @@ static ssize_t proc_pid_cmdline_read(struct file *file, char __user *buf,
239 goto out_mmput; 239 goto out_mmput;
240 } 240 }
241 241
242 down_read(&mm->mmap_sem); 242 spin_lock(&mm->arg_lock);
243 arg_start = mm->arg_start; 243 arg_start = mm->arg_start;
244 arg_end = mm->arg_end; 244 arg_end = mm->arg_end;
245 env_start = mm->env_start; 245 env_start = mm->env_start;
246 env_end = mm->env_end; 246 env_end = mm->env_end;
247 up_read(&mm->mmap_sem); 247 spin_unlock(&mm->arg_lock);
248 248
249 BUG_ON(arg_start > arg_end); 249 BUG_ON(arg_start > arg_end);
250 BUG_ON(env_start > env_end); 250 BUG_ON(env_start > env_end);
@@ -927,10 +927,10 @@ static ssize_t environ_read(struct file *file, char __user *buf,
927 if (!mmget_not_zero(mm)) 927 if (!mmget_not_zero(mm))
928 goto free; 928 goto free;
929 929
930 down_read(&mm->mmap_sem); 930 spin_lock(&mm->arg_lock);
931 env_start = mm->env_start; 931 env_start = mm->env_start;
932 env_end = mm->env_end; 932 env_end = mm->env_end;
933 up_read(&mm->mmap_sem); 933 spin_unlock(&mm->arg_lock);
934 934
935 while (count > 0) { 935 while (count > 0) {
936 size_t this_len, max_len; 936 size_t this_len, max_len;